如何通过终端授予所有用户(访客除外)特定目录的权限?

如何通过终端授予所有用户(访客除外)特定目录的权限?

我希望每个用户都对单个目录(及其所有内容)拥有完全权限。这可能吗?如何实现?谢谢。

答案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是现有的还是要创建以授予完全权限。

那么以下命令行信息可以帮助您:

  1. group1可以使用以下命令创建:

    sudo addgroup group1
    
  2. user1group1可以使用以下命令添加:

    sudo adduser pandya group1
    
  3. 现在可以使用以下命令应用权限:

    sudo chown :group1 -R dir1
    sudo chmod g+rwx group1
    

解释:

  • sudo chown :group1 -R dir1将会应用group1dir1 递归地(针对-R所有子目录和文件)
  • sudo chmod g+rwx group1将会应用读+写+执行权限group1
  • 就像user1这样group1,现在可以通过递归user1获得完全的权限!group1dir1

确认:

$ 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  

基于:https://askubuntu.com/a/329689/265974

相关内容