2013-10-01 68 views
3

我在我的服务器上拥有root用户权限,我想为特定用户组和用户授予权限。有一个情况下,有目录树:如何将某些用户权限授予子文件夹

dir1 
    ├── subdir1 
    ├── subdir2 
    ├── subdir3 

我有三个用户(用户1,用户2,用户3) - 我想他们每个人有权限只有一个目录(用户1 - subdir1,用户2 - subdir2 ,user3 - subdir3)。 User1不应该能够看到什么int subdir2或subdir3,但他不能看到它们存在,与其他用户及其目录相同。

我使用getfacl和setfacl命令给出保留。

这些用户对dir1和subdirs有什么权限?

+0

(这个问题属于StackOverflow?投票将其移动到ServerFault或超级用户) – Jet

回答

5

要允许所有用户看到文件列表中dir1设置权限0755到这个文件夹

$ chmod dir1 0755 

要分隔访问子文件夹指定所有者的每个文件夹:

$ cd dir1 

$ chown user1:user1 -R subdir1 
$ chown user2:user2 -R subdir2 
$ chown user3:user3 -R subdir3 

现在让子文件夹只可读为他们的主人:

$ chmod user* 0700 

现在所有用户se e文件夹用户*存在,但他们只能在自己的文件夹中输入

更新 对不起,无法在评论中设置文本格式。

当我有更多的用户比这三个,我想只有这三个 能够进入dir1 - 那么呢?

然后,您必须为它们分配一个特殊组,并允许该组读取dir1的内容。

创建组specialusers

$ groupadd specialusers 

添加用户,这组

$ usermod -aG specialusers user1 
$ usermod -aG specialusers user2 
$ usermod -aG specialusers user3 

在允许specialusers读取文件夹

$ chown root:specialusers dir1 
$ chmod dir1 0750 

现在从组specialusers的用户才能看到列表文件夹下dir1

+0

当我有更多的用户比这三个,我只希望这三个能够进入dir1 - 那么呢? – pawel

+0

@pawel在这种情况下使用组。 – devnull

+0

然后,您必须为它们分配一个特殊组,并允许该组读取dir1的内容。 创建组'specialusers' '$ GROUPADD specialusers' 添加用户,这组 '$ usermod命令-ag specialusers user1' '$ usermod命令-ag specialusers user2' '$ usermod命令-ag specialusers user3' 允许'specialusers'读取文件夹 '$ chown root:specialusers dir1' '$ chmod dir1 0750' 现在只有来自组'specialusers'的用户才能看到dir1下的文件夹列表 – Nicolai