Linux 组权限未正确执行。

Linux 组权限未正确执行。

我正在运行 Ubuntu 10.04 服务器,在用户/组方面遇到了一些非常违反直觉的经历。例如:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

最后一行产生权限错误。

我已确保我的用户属于“测试”组(groups {my-user}确认这一点)。 test_file 的组也明确设置为“测试”,并且设置了组权限。

为什么我的用户无法写入文件测试文件?

答案1

将用户添加到新组时,该操作不会应用于任何当前正在运行的进程,只会应用于新进程。您需要注销然后重新登录。

答案2

注销和重新启动服务器的方法对我来说都不起作用。

但是这个方法对我有用:(参考这个回答

chmod g+rwxs <parent folder>

答案3

您可以使用newgrp命令来更改用户当前的组 ID。从man newgrp

newgrp 命令用于在登录会话期间更改当前组 ID。如果-给出了可选标志,则用户的环境将重新初始化,就像用户已登录一样,否则当前环境(包括当前工作目录)保持不变。

答案4

重新启动计算机,以确保没有卡住的进程阻止您的用户和组在注销和登录期间正确执行。

这些步骤应该授予您所在组用户的test写权限test_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

重启计算机或退出操作系统。重启终端是不够的。

touch test_file

用户可以写入该文件,因为它是“test”组的一部分,并且该组具有权限rwx。

相关内容