允许用户在另一个用户目录中创建文件

允许用户在另一个用户目录中创建文件

我有一个由用户 apache 和组 apache 拥有的网站,我希望允许其他用户能够在该网站上的文件夹中工作 - 我需要他们能够在该文件夹中编辑和创建新文件。

我添加了一个用户并为他们分配了一个密码,然后将他们的主目录更改为我想要授予他们访问权限的文件夹。

/etc/passwd
peter:x:1016:1017::/home/application/public_html/documents:/bin/bash

然后我将它们添加到 apache 组:

[root@app01 documents]# groups peter
peter : peter apache

然后确保我希望它们工作的文件夹 (a) 由 apache 所有,并且 (b) 允许该组读取和写入。 (我也尝试过777,但还是不行)

drwxrwxr-x+  6 apache apache     4096 Nov 16 09:03 documents

然后我以用户身份登录并尝试在文件夹中创建一个文件,但我得到以下信息:

-bash-4.2$ touch 123.txt
touch: cannot touch ‘123.txt’: Permission denied

[root@app01]# getfacl documents
# file: documents
# owner: apache
# group: apache
user::rwx
group::r-x
group:apache:rw-
mask::rwx
other::rwx
default:user::rwx
default:group::r-x
default:group:apache:rw-
default:mask::rwx
default:other::r-x

我可以编辑目录中的文件并毫无问题地保存它们,但不能创建新文件或文件夹 - 我还需要做什么才能使其正常工作?

答案1

通常,您需要在用户主页外创建共享/合作空间,建议使用 /var/www/website1/public_html。

创建一个名为website1的组和一个用户website1,同时创建一个组website1-admin。

然后您可以将目录设置为 775。

/var/www/website1 可以是 website1:website1-admin /var/www/website1/public_html 可以是 website1:website1

然后将所有需要写权限的用户添加到website1组,同时将apache添加到该组。

管理员可以放入组 website1-admin 中,这样就可以访问编辑 public_html 之外的文件。

这允许您将用户的主页 /home/wesbite1 锁定为 700。

相关内容