考虑在一台 Linux 机器上有两个用户user1
帐户user2
。我希望user2
能够对user1
主目录中的文件夹进行读写访问。
到目前为止,为两个用户创建了一个组并添加了两个用户
groupadd twousers
usermod -a -G twousers user1
usermod -a -G twousers user2
Run Code Online (Sandbox Code Playgroud)
然后更改组和路径并更改权限
chgrp twousers /home/user1/folder
chmod g+rwx /home/user1/folder
Run Code Online (Sandbox Code Playgroud)
不幸的user2
是仍然无法访问该文件夹/home/user1/folder
。这似乎很简单,但不知何故我迷失了。我缺少什么?
Par*_*dox 10
您遇到的问题是预期的。事实上,您正在尝试共享另一个用户home
文件夹内的文件夹,出于明显的安全原因,该文件夹(并且应该)只能由所有者访问(并且root
,但这是另一个故事)。
为了解决您的问题,您应该创建另一个文件夹,其中潜在的父文件夹将对两个用户具有相同的权限,例如/data/shared_folder
.
这是一个简短的分步示例:
创建一个父文件夹(不是必需的,但这是为了示例):
# cd /
# mkdir data
Run Code Online (Sandbox Code Playgroud)
创建共享子文件夹:
# cd data
# mkdir shared_folder
Run Code Online (Sandbox Code Playgroud)
可选:在此阶段您可以将未来共享文件夹的内容复制到shared_folder
.
# cp -p /path/to/folder/* /data/shared_folder/
Run Code Online (Sandbox Code Playgroud)
创建一个组shared
和两个用户bob
并向alice
其添加:
# groupadd shared
# usermod -aG shared bob
# usermod -aG shared alice
Run Code Online (Sandbox Code Playgroud)
递归更改组文件夹所有权:
# chgrp -R shared /data
Run Code Online (Sandbox Code Playgroud)
为组添加读、写和执行(仅适用于已经可执行的文件)权限shared
:
# chmod -R g+rwX /data
Run Code Online (Sandbox Code Playgroud)
Bob
现在可以Alice
在文件夹内做任何他们想做的事情shared
,但也可以在data
.
根据您的使用案例,您可能只有一个级别,但此示例显示了父文件夹权限如何影响文件系统更深处的文件夹,并允许更高的可扩展性和粒度。