如何实现用户权限隔离?

/opt/software /home/user1/file /home/user2/file 
  1. user1可以rwx到/ home / user1 /文件
  2. user2可以rwx到/ home / user2 /文件
  3. softwarecan rwx到/ home / user1 / file和/ home / user2 / file
  4. user1不能rwx到/ home / user2 /文件
  5. user2不能rwx到/ home / user1 /文件

如何实现这个设置?

听起来像是实现你想要做的最好的方法,就是ACL。

ext3和ext4都支持,但需要启用才能工作。

为了不仅显示我做了什么,而且还显示了我testing的文件结构,我把它全部粘贴了。 我正在使用RHEL 6.2进行testing。

创build所需的用户

 root # useradd -d /opt/software/ software root # useradd user1 root # useradd user2 

在用户家中创build“文件”。 在它上面设置组权限 – ACL需要这个,尽pipe这个组可以是用户自己的。

 root # touch /home/user1/file && touch /home/user2/file root # chmod 770 /home/user1/file /home/user2/file root # chown user1:user1 /home/user1/file root # chown user2:user2 /home/user2/file 

设置ACL。 -m =修改。 你=用户。 软件=用户名。 rwx =权限。

 root # setfacl -mu:software:rwx /home/user1/file root # setfacl -mu:software:rwx /home/user2/file 

获取ACL以检查它是否正确。

 root # getfacl /home/user1/file getfacl: Removing leading '/' from absolute path names # file: home/user1/file # owner: user1 # group: user1 user::rwx user:software:rwx group::rwx mask::rwx other::--- 

使可执行文件做一些有用的事情。

 root # echo "echo horse" > /home/user1/file root # echo "echo horse" > /home/user2/file 

在用户的主目录上设置ACL

 root # setfacl -mu:software:rx /home/user1 root # setfacl -mu:software:rx /home/user2 

再次确保该组具有所需的权限。

 root # chmod 750 /home/user1 /home/user2 

testing的时间!

 root # su - software -bash-4.1$ /home/user1/file hest -bash-4.1$ vi /home/user1/file -bash-4.1$ /home/user1/file hest moo -bash-4.1$ logout root # su - user1 [user1@tutsrv01 ~]$ /home/user2/file -bash: /home/user2/file: Permission denied 

有一点关于ACL

要工作,该组必须至less具有与ACL条目相同的权限。 如果您创build了rwx ACL条目,但是unix权限组条目仅为rw,则ACL的有效权限将限制为rw。