我无法向我所属的文件夹写入内容

我无法向我所属的文件夹写入内容

我正在尝试设置一个组的文件夹访问权限,以便该组的所有成员都可以创建/编辑/删除文件夹中的文件。

# create my group and add a member
sudo addgroup dev
sudo adduser martyn dev

现在,以“martyn”身份登录,检查我的用户是否已添加到“dev”组

groups martyn
martyn : martyn dev

现在我想更改我的项目文件夹的组所有权,以便该组的所有成员都可以编辑它以及其中的文件/文件夹。

sudo chgrp -R dev myproject

只是为了检查:

martyn@localhost:/var/www$ ls -l
total 4
drwxrwxr-x 3 dev dev 4096 May 31 15:53 myproject

现在它失败了。我想在 myproject 中创建一个文件(以“martyn”的身份登录,“dev”成员):

vi myproject/test

..但是当我尝试保存文件时出现以下错误:

"myproject/test" E212: Can't open file for writing

为什么作为“dev”成员的用户“martyn”,我不能写入此文件?即使我创建了文件并使其存在,将所有权更改为“dev”,然后尝试编辑并保存 - 我还是会得到同样的错误。

答案1

您可以尝试使用以下命令更改/设置目录的所有权chown,如下所示:

chown -R dev:dev myproject/

然后使用以下chmod命令设置权限:

chmod -R 0775 myproject/

0775表示法将目录模式设置为rwxrwxr-x,这使用户devdev组内的所有成员rwx都可以访问该目录和文件。

尝试用这个命令代替chgrp。您也可以尝试重启机器,以防万一。祝你好运。

答案2

这在 Arch Linux 上对我有用:

$ sudo useradd martyn
$ sudo passwd martyn
$ sudo groupadd example 
$ sudo usermod --append --groups example martyn
$ sudo mkdir /var/www /var/www/myproject
$ sudo chgrp example /var/www/myproject
$ sudo chmod g+w /var/www/myproject
$ su - martyn
$ groups
example martyn
$ touch /var/www/myproject/file
$ ls -l /var/www/myproject/file
-rw-r--r-- 1 martyn martyn 0 May 31 11:13 /var/www/myproject/file

您确定没有启用(运行getenforce)SELinux 吗?

相关内容