Linux,即使我有组权限,为什么我不能写入?

我想在我所属的员工组拥有的目录中创build一个文件。 为什么我不能这样做?

bmccann@bmccann-htpc:~$ ls -l /usr/local/lib/R/ total 4 drwxrwsr-x 2 root staff 4096 2010-07-31 16:21 site-library bmccann@bmccann-htpc:~$ id -nG bmccann bmccann adm dialout cdrom plugdev staff lpadmin admin sambashare bmccann@bmccann-htpc:~$ touch /usr/local/lib/R/site-library/tmp touch: cannot touch `/usr/local/lib/R/site-library/tmp': Permission denied 

在更改组后,您是否注销并重新login? 看到:
涉及触摸权限失败的超级用户回答

为什么Linux用户不能编辑组中的文件?

我正在使用Ubuntu 12.04,并且遇到了同样的问题,即用户无法写入允许其访问的文件。 例如:

 whoami //I am user el el touch /foobar/test_file //make a new file sudo chown root:www-data /foobar/test_file //User=root group=www-data sudo chmod 474 /foobar/test_file //owner and others get only read, //group gets rwx sudo groupadd www-data //create group called www-data groups //take a look at the groups and see www-data //www-data exists. groups el //see that el is part of www-data el : www-data 

现在重新启动terminal,确保用户和组已经生效。 以el身份login。

 vi /foobar/test_file //try to edit the file. 

产生警告:

 Warning: W10: Warning: Changing a readonly file" 

什么? 我做的一切正确,为什么不起作用?

回答:

做一个完整的电脑重启。 停止terminal不足以解决这些问题。

我认为会发生什么是apache2也使用WWW数据组,所以这个任务是以某种方式防止用户和组被正确执行。 您不仅必须注销,还必须停止并重新启动使用您的组的任何服务。 如果重新启动没有得到它,你有更大的问题。

我有一个问题,当用户无法访问/foo/bar/baz目录时,即使他有权限,因为他没有访问bar目录。

使用Linux ACL(访问控制列表) – 它是更细粒度的权限系统版本,

 setfacl -R -m 'group:staff:rwx' -m 'd:group:staff:rwx' /usr/local/lib/R/ 

这为目录设置了活动权限,并为在其中创build的任何设置了默认权限。

如果您刚刚将自己添加到staff组,则无法重新login,但只能为当前会话设置权限。

我有同样的问题, 请检查文件夹是否有更多的ACL规则!

如果在列出文件夹时可以看到+(加号),则表示它有特殊的访问规则。 例如:

 [user_in_apache_group@web02 html]$ ls -l total 16 drwxrwxr-x 16 apache apache 4096 Sep 4 13:46 ilias drwxrwxr-x+ 15 apache apache 4096 Sep 4 13:46 ilias5 

查看权限:

 [user_in_apache_group@web02 html] getfacl ilias5 # file: ilias5 # owner: apache # group: apache user::rwx user:user_in_apache_group:rx group::rwx mask::rwx other::rx 

这意味着我的用户(user_in_apache_group)对该文件夹没有写入权限。

解决scheme是@techtonik所说的,为用户添加写权限:

 [user_in_apache_group@web02 html]$ sudo setfacl -mu:user_in_apache_group:rwx ./ilias5 

再次检查权限:

 [user_in_apache_group@web02 html] getfacl ilias5 ... user:user_in_apache_group:rwx ... 

希望能帮助到你。 ;)