如何为每个用户授予不同的权限?

tru*_*ype 12 users permissions group files

所以,我已经使用 Linux 几年了,我真的应该知道这个答案,但我很难找到它。具体来说,我一直在使用基于 Debian 的发行版......主要是 Ubuntu。

如果我的服务器拥有三个以上的用户,我如何为每个用户设置不同的文件权限集。

例如:

如果我有一个具有这些权限和所有权的文件:

rwx rw_ r__ user1:group1 file1.txt

我有 3 个用户具有这些所需的权限....

  • 用户 1 rwx
  • 用户 2 rw_
  • 用户 3 r__

我所要做的就是让user1拥有该文件,user2group1 中,而user3两者都不能 - 对吗?

但是,如果我有user4user5 怎么办

  • 用户 4 _wx
  • 用户 5 __x

我该如何设置?

我以前不必这样做,但 Windows 管理员问我这个问题,老实说我无法回答。

Ste*_*ris 20

传统的 unix 权限只允许您发现的用户、组和其他权限。这些可能会导致需要创建一些笨拙的组组合......

因此添加了一种新形式的 ACL(访问控制列表)。这允许您指定具有不同权限的多个用户和多个组。这些是用setfacl命令设置的,并用getfacl

$ setfacl -m u:root:r-- file.txt
$ setfacl -m u:bin:-wx file.txt 
$ setfacl -m u:lp:--x file.txt 
$ getfacl file.txt
# file: file.txt
# owner: sweh
# group: sweh
user::rw-
user:root:r--
user:bin:-wx
user:lp:--x
group::r--
mask::rwx
other::r--
Run Code Online (Sandbox Code Playgroud)

您可以通过查看ls输出轻松判断文件是否具有 ACL :

$ ls -l file.txt
-rw-rwxr--+ 1 sweh sweh 0 Jul 26 10:33 file.txt
Run Code Online (Sandbox Code Playgroud)

+在许可的端部表示的ACL。