JD *_*cks 8 php permissions ftp chmod
我的 ubuntu 机器上安装了一个 php。网络根是/var/www
我为这个文件夹设置了权限,如下所示:
须藤 chown -R ftpuser:www-data /var/www
ftpuser 是我设置的用户,因此我可以从网络上的另一台机器 ftp 到 /var/www。www-data 是 php 使用的用户。我使用whoamiphp 进行了双重检查。
每当我 ftp 将新文件上传到机器时,该组对该文件没有权限。因此,当我尝试通过浏览器访问它时,我machine-name/new-file.php被告知权限被拒绝,我必须去访问chmod新文件。
我想知道是否有一种方法可以让 www-data 用户/组默认拥有对新文件的访问权限,这样我就不必保留 chmod 每个新文件?
小智 6
你可以使用ACL。要为 Ubuntu 10.10 设置 ACL,首先使用 /etc/fstab 中的 acl 选项挂载文件系统。
sudo vim /etc/fstab
Run Code Online (Sandbox Code Playgroud)
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 默认值,acl 0 1
sudo mount -o remount,acl /
Run Code Online (Sandbox Code Playgroud)
然后为此目的创建一个用户可能所属的组。
sudo groupadd developers
sudo usermod -a -G developers $username
Run Code Online (Sandbox Code Playgroud)
用户需要注销并再次登录才能成为开发者组的成员。
当然,如果您在 /var/www 目录中有您想要的内容,请不要这样做,只是为了说明设置它以启动:
sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root.developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public
Run Code Online (Sandbox Code Playgroud)
然后在配置文件中用“/var/www/public”替换对“/var/www”的引用并重新加载。
sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload
Run Code Online (Sandbox Code Playgroud)
如果我们想限制除创建文件的用户之外的所有人的删除和重命名:
sudo chmod +t /var/www/public
Run Code Online (Sandbox Code Playgroud)
这样,如果我们想为存在于 Apache 文档根目录之外的框架创建目录,或者可能创建服务器可写目录,这仍然很容易。
Apache 可写日志目录:
sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs
Run Code Online (Sandbox Code Playgroud)
Apache 可读库目录:
sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/lib
sudo chmod 0750 /var/www/lib
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37023 次 |
| 最近记录: |