我有一个带有GoDaddy的虚拟CentOS服务器,在设置/var/www/html
的权限时遇到问题。
用户不允许以root
的身份登录,甚至不允许将自己添加到root
组,所以我把自己画成了一个角落:
-
我使用以下命令更改了它的所有者(我使用了
httpd.conf
中的user:group):chown -R apache:apache /var/www/html
-
我将自己的用户添加到
apache
组:usermod -a -G apache myuser
-
我更改了权限:
chmod 777 /var/www/html -R
这是让我的SFTP帐户能够在/var/www/html
中创建、更改、和删除文件的唯一方法。777!(SFTP帐户使用与ssh帐户相同的凭据,这意味着它们在所有意图和目的上都是相同的,对吧?)
我显然是Linux服务器管理员的新手,但这似乎非常不安全。有更好的方法来做这一切吗?
注意我计划在这里建立的网站将允许文件上传、cron作业等,所以我猜这也会使必要的权限复杂化。这是正确的吗?
更新使用775似乎不起作用;我可以上传/覆盖文件,但当我只是试图删除它们时,FileZilla会给我这个错误:
rm/var/www/html/index.php:拒绝权限
我不知道为什么,但改回777"解决"了这个问题。
只要以myuser身份登录,/var/www/html
就只需要775
。中间的7
八进制(用于"组"acl)确保该组具有读取/写入/执行的权限。只要您属于拥有这些文件的组,"myuser"就应该能够写入这些文件。您可能需要为docuemnt根目录中的所有文件授予组权限,不过:
chmod -R g+w /var/www/html
我刚刚在apache网站托管目录上设置777权限方面处于类似的位置。经过一点修改,将文件夹的组所有权更改为"apache"组似乎允许基于用户组访问文件夹。
1) 确保文件夹的组所有权设置为apacheused/generates组以供使用。(check/etc/groups,我的是Ubuntu上的www数据)
2) 将文件夹权限设置为774,以阻止"每个人"拥有任何更改访问权限,但允许所需的所有者和组权限。
3) 将你的用户帐户添加到对文件夹有权限的组中(我的是www数据)。
以root用户身份登录:
sudo su
password:
然后去做你想在var/www-