我希望每个用户都对单个目录(及其所有内容)拥有完全权限。这可能吗?如何实现?谢谢。
答案1
由于guest session
用户没有添加到users
组中,您可以简单地执行以下操作:
sudo chown -R $USER:users /var/privatefolder
sudo chmod -R 770 /var/privatefolder
访客会话用户无法访问/var/privatefolder
编辑
看起来在 GUI 中或安装时创建的用户不会自动添加到用户组。我认为这是真的。
你必须sudo usermod -a -G users username
这需要您手动将用户添加到组中,从而通过以下方式做出回答土库曼斯坦就这么简单。
答案2
你可以得到你想要的在特定组中添加用户进而向该组申请完全权限。
(echo $USER
&echo $LOGNAME
有助于获取用户名和日志名)
例子:
如果/让:
dir1
是您想要向用户应用完全权限的目录,
user1
是您想要授予完全权限的用户,
group1
是现有的还是要创建以授予完全权限。
那么以下命令行信息可以帮助您:
group1
可以使用以下命令创建:sudo addgroup group1
user1
group1
可以使用以下命令添加:sudo adduser pandya group1
现在可以使用以下命令应用权限:
sudo chown :group1 -R dir1 sudo chmod g+rwx group1
解释:
sudo chown :group1 -R dir1
将会应用group1
到dir1
递归地(针对-R
所有子目录和文件)sudo chmod g+rwx group1
将会应用读+写+执行权限group1
- 就像
user1
这样group1
,现在可以通过递归user1
获得完全的权限!group1
dir1
确认:
$ ls -ld dir1
drwxrwxr-x 3 pandya group1 4096 Aug 3 12:11 example
其中drwxrwxr-x
表示d
目录 1rwx
表示所有者( u=pandya
) 权限 2rwx
对于 group( g=group1
) 权限以及r-x
其他许可ugo
方式。
答案3
您可以为所有有权访问此文件夹的用户创建一个组。
创建新组:
sudo groupadd myNewGroup
将用户添加到组
sudo usermod -a -G myNewGroup username
更改目录的用户和组
sudo chown -R $USER:myNewGroup /path/to/dir/
更改目录的权限
sudo chmod -R 770 /path/to/dir/
或ug+rwx
获取更多权限信息http://permissions-calculator.org/
编辑:正如 Shutupsquare 建议的那样,您可以使用已经存在的用户组。要将所有人类用户添加到该组,您可以使用:
for u in $(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd); do sudo usermod -a -G users $u; done