我已将/var/www/html
文件夹的所有者更改为www-data
。现在我想将所有权ubuntu
也授予 。
我该怎么做?我不知道他们属于哪个组。我ssh
使用ubuntu
用户名登录,我的 FTP 也可以与 ubuntu 一起使用,但现在由于这一变化,我在通过 ftp 编辑文件时遇到权限问题。
答案1
解决方案 1
如果只有一个用户需要访问权限,最简单的ubuntu
方法www-data
是
sudo chown ubuntu:www-data <path/to/file or directory>
这会将所有权赋予用户ubuntu
,但仍保留组的所有权www-data
。
因此,你可以通过以下方式控制 ubuntu 可以做什么
sudo chmod u<+|- permission> <path/to/file or directory>
并且你www-data
可以通过以下方式控制
sudo chmod g<+|- permission> <path/to/file or directory>
或者简单地使用完整的权限掩码(见下面的示例)。
例子:
用户ubuntu
应具有读(r
)、写(w
)、执行(e
)的权限;
www-data
应具有读(r
)、执行(e
)的权限,但不能具有写(w
)
other users
的权限;应不具有上述任何权限
sudo chmod u+rwx <path/to/file or directory>
sudo chmod g-w+rx <path/to/file or directory>
sudo chmod o-rwx <path/to/file or directory>
或使用权限掩码(有用的发电机)
sudo chmod 750 <path/to/file or directory>
对于您的案例来说,同样有趣的可能是这-R
两个命令的参数,将所有权和权限递归地应用于文件夹的内容。
解决方案 2
我宁愿不是按照评论中的建议将用户添加到系统功能用户组
sudo usermod -a -G www-data ubuntu
因为这是授予用户权限的一种非常肮脏的方式,因为他也可能会把事情搞砸……
相反,如果您愿意,可以使用以下方法添加一个全新的组groupadd
(请参阅男子组添加)
groupadd <group name>
将所有对文件有权限的用户添加到此组
sudo usermod -a -G <group name> ubuntu
sudo usermod -a -G <group name> www-data
(更多信息请参见用户修改程序)
然后将文件的所有权设置为该组
sudo chgrp <group name> <path/to/file or directory>
然后按照前面所述设置权限,但这次仅适用于
组(读取(r
)、写入(w
)、执行(e
))
sudo chmod g+rwx <path/to/file or directory>
sudo chmod u-rwx <path/to/file or directory>
sudo chmod o-rwx <path/to/file or directory>
或使用面膜
sudo chmod 070 <path/to/file or directory>
ubuntu
请注意,使用此解决方案,您将失去对和的不同权限的控制www-data
。