我已经创建了 3 个用户adduser
。
如何example.txt
在没有 的情况下为每个用户授予对一个文件的不同权限()setfacl
?
例子:
- 第一个仅对文件具有读取权限的用户
- 第二要有读写权限
- 第三拥有该文件的所有权限。
答案1
这权限标签 wiki是关于经典 Linux 文件权限的简短参考。
为了简要演示这些权限在文件上的最简单用法,让我们创建一个文件,我将调用shiny
touch shiny
让我们看看我们刚刚创建的文件的权限
$ ls -l shiny
-rw-rw-r-- 1 zanna zanna 0 Feb 26 21:54 shiny
开头的字符串以三组为单位显示权限。权限字符串后面是一个我们不太感兴趣的数字,然后是zanna
重复两次的单词。zanna
是我的用户名。由于我创建了该文件,所以我是所有者,并且它也属于我的组。
r
= 读取w
= 写入,x
= 执行-
= 无权限
现在shiny
我们可以看到它是一个普通文件(-
在开始时),所有者zanna
可以读取和写入该文件。组成员zanna
也可以读取和写入该文件,任何其他用户可以读取,但不能写入。没有用户对此文件具有执行权限。
该stat
命令提供了有关文件元数据的更多详细信息,包括权限,我们可以用各种方式格式化其输出。例如,我最喜欢的方式:
$ stat -c "%n %a" shiny
shiny 664
这表明该文件具有八进制权限 664 - 所有者和组的读写权限,以及其他人只读的权限。
在我的系统上,我创建了三个用户帐户zanna
,pixie
和mermaid
让我们更改权限以shiny
授予每个用户不同级别的访问权限。
首先,我们将创建一个新组(我们可以只将用户添加到该zanna
组,但我不想这样做,因为这会让他们访问我的许多个人文件)
sudo addgroup unicorns
现在我们将使用该unicorns
组来控制访问,通过使该组拥有shiny
:
chown :unicorns shiny
请不要忘记此命令中的冒号:
,因为这允许我们仅更改组,并且在使用时始终小心输入chown
(频道安热自己的或chmod
(频道安热模式e),尤其是sudo
。
现在让一个用户成为该组的成员:
sudo adduser pixie unicorns
现在 pixie 是一只独角兽该团体的一名成员unicorns
。
现在我们只需要更改文件模式。有两种方法可以做到这一点,我更喜欢八进制方法:
chmod 764 shiny
以及象征性的方式:
chmod u+x shiny
我相信你会读修改模式wiki 以了解更多信息。运行其中一个命令后,您可以使用stat
或再次检查ls -l
。
$ ls -l shiny
-rwxrw-r-- 1 zanna unicorns 0 Feb 26 21:54 shiny
现在:
zanna
具有读取、写入和执行权限,因为她是所有者pixie
拥有读写权限,因为她属于该组unicorns
mermaid
具有读取权限,因为shiny
所有人都可以读取。