有两个帐户user1
和user2
。我希望共享并授予 rwx 对我的user1
/home/user1/Documents/ 文件夹的访问权限user2
。为此,我创建了一个名为 的新组sharedDocs
。这些是我按顺序执行的命令:
groupadd sharedDocs
usermod -aG share user1
usermod -aG share user2
chgrp -R sharedDocs /home/user1/Documents
sudo chmod -R g+rwX /home/user1/Documents
从这里,我切换到 user2 来访问文档。su
重新加载。
su user2
user2: touch 1.txt
su
如果我之前位于该/home/user1/Documents
文件夹中,则此命令有效。但是,以下命令不起作用,并且一旦离开目录就无法返回到该目录。
user2: touch /home/user1/Documents/1.txt
touch: cannot touch '/home/user1/Documents/1.txt': Permission denied
user2: cd /home/user1/Documents/
bash: cd: /home/user1/Documents: Permission denied
我遵循了这两个指南:
答案1
您需要具有执行权限才能进入该/home/user1/
文件夹及其中的任何子文件夹,或访问其中的任何文件。
默认情况下,linux 将用户主文件夹设置为750
、 或rwxr-x---
,这意味着不是该文件夹所有者或属于该文件夹所属组的用户不允许进入该文件夹。
拥有对 user1 主目录中的子文件夹或文件的权限是不够的,您还需要拥有进入/通过该目录以获取其中对象的权限。
文件的执行权限授予您运行该文件的权限(如果它是脚本或应用程序),目录的执行权限授予您进入该目录或通过该目录访问其中的文件和文件夹的权限。
您可以将user2
其所有者放入一个组中/home/user1
,也可以使用setfacl
命令设置附加权限,赋予刚刚的执行权限,user2
以便/home/user1
他可以进入该文件夹访问/home/user1/Documents
像这样的东西会给 user2 在 /home/user1 上执行权限
setfacl -m user2:x /home/user1/
然后您可以使用getfacl
命令查看文件夹上的 acl 规则
getfacl /home/user1
对于目录来说,读权限意味着用户可以看到目录的内容。写权限意味着用户可以在目录中创建文件或文件夹。执行权限是指用户可以进入该目录。