标签: acl

是否有 Linux 深度差异工具也可以比较文件属性?

是否有像 diff 这样的 Linux 工具可以递归比较文件和目录,但还增加了比较:扩展属性、acl、se 上下文?

linux acl diff

21
推荐指数
2
解决办法
7845
查看次数

什么关系将 ACL 掩码和文件的标准组权限联系起来?

首先我创建一个文件并检查它的标准权限和 ACL 条目:

$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
Run Code Online (Sandbox Code Playgroud)

然后我在文件上设置 ACL 掩码并再次检查它的标准权限和 ACL 条目:

$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
Run Code Online (Sandbox Code Playgroud)

请注意,随着 ACL 掩码标准组对文件的权限也发生了变化。

  1. ACL掩码和标准组权限有什么联系?
  2. ACL掩码和文件组权限耦合的原因是什么?背后隐藏着什么逻辑?

有问题的发行版是 Debian Linux 7.6 和 …

acl permissions files

19
推荐指数
2
解决办法
2万
查看次数

允许所有者创建和读取文件,但不能修改或删除

我想授予用户在特定目录中创建和读取文件的权限,但不能修改或删除文件。如果用户可以附加到文件,那是可以的,但我宁愿不这样做。这是在 Ubuntu Linux 上。

我认为这对于标准的 Unix 文件权限是不可能的,但也许使用 ACL 可以做到?用户将始终使用 SFTP 进行连接,因此如果有某种方法可以在 SFTP 中控制它(而不是操作系统权限),那就没问题了。

绝对清楚,我想要以下内容:

  • echo hello > test # 成功,因为test不存在,允许创建
  • echo hello >> test # 可以成功也可以失败,取决于是否允许追加
  • echo hello2 > test # 失败,因为test已经存在,不允许修改
  • cat test # 成功,因为允许读取
  • rm test # 失败,因为不允许删除

如果您想知道我为什么要这样做,那是为了使 Duplicati 备份系统能够抵御勒索软件。

linux acl permissions files

17
推荐指数
2
解决办法
1万
查看次数

umask 如何影响 ACL?

umask如果激活 ACL,有人可以向我解释如何影响新创建文件的默认掩码吗?是否有一些关于此的文档?

例子:

$ mkdir test_dir && cd test_dir
$ setfacl -m d:someuser:rwx -m u:someuser:rwx .  # give access to some user
$ getfacl .
# file: .
# owner: myUsername
# group: myGroup
user::rwx
user:someuser:rwx
group::---
mask::rwx
other::---
default:user::rwx
default:user:someuser:rwx
default:group::---
default:mask::rwx
default:other::---
$ umask # show my umask
077
$ echo "main(){}" > x.c # minimal C program
$ make x # build it
cc     x.c   -o x
$ getfacl x
# file: x
# owner: myUsername …
Run Code Online (Sandbox Code Playgroud)

linux acl permissions posix

14
推荐指数
1
解决办法
2万
查看次数

我如何知道我的文件系统支持 ACL?

看到getfacl没有错误就足够了,还是我必须检查其他地方以查看文件系统是否支持 ACL?

linux filesystems acl

14
推荐指数
3
解决办法
2万
查看次数

为目录中的文件设置默认用户名和组

使用这篇有用的帖子,我可以在文件夹中设置默认组和文件权限。

我在设置默认所有者 (teamlead uid 1234) 时遇到问题。

setfacl -d -m g::rwx /my/test/folder
setfacl -d -m o::rx /my/test/folder

getfacl /my/test/folder

# file: /my/test/folder
# owner: teamlead
# group: web_prod
# flags: -s-
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Run Code Online (Sandbox Code Playgroud)

接着就,随即:

[mary@boxen]# touch /my/test/folder/somefile
[mary@boxen]# ll /my/test/folder/somefile
-rw-rw-r--. 1 mary web_prod 0 Nov  6 08:58 somefile
Run Code Online (Sandbox Code Playgroud)

因此分配了正确的组,但新文件拥有创建文件的用户的所有权。我希望新创建的文件具有 teamlead:web_prod 所有者/组。

似乎setfacl也可以用来设置默认用户。使用现有文件夹 acl config(上图):

[mary@boxen]# setfacl -d -m u:1234:rwx /my/test/folder
Run Code Online (Sandbox Code Playgroud)

现在以不同的用户身份创建一个文件。我希望它拥有 teamlead:web_prod 所有权。

[mary@boxen]# touch /my/test/folder/anotherfile
[mary@boxen]# ll /my/test/folder/anotherfile
-rw-rw-r--+ 1 mary …
Run Code Online (Sandbox Code Playgroud)

users acl permissions defaults group

13
推荐指数
3
解决办法
5万
查看次数

ACL 如何计算文件的有效权限?

我运行以下命令以授予wheelrwx对创建的新文件和子目录的权限:

[belmin@server1]$ ls -la
total 24
drwxr-sr-x+   2 guards guards  4096 Aug 27 15:30 .
drwxr-xr-x  104 root   root   12288 Aug 27 15:19 ..

[belmin@server1]$ sudo setfacl -m d:g:wheel:rwX .

[belmin@server1]$ getfacl .
# file: .
# owner: guards
# group: guards
# flags: -s-
user::rwx
group::r-x
group:wheel:rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:wheel:rwx
default:mask::rwx
default:other::r-x
Run Code Online (Sandbox Code Playgroud)

但是,当我以 root 身份创建文件时,我并不完全清楚effective权限是如何计算的:

[belmin@server1]$ sudo touch foo

[belmin@server1]$ getfacl foo
# file: foo
# owner: root
# group: guards
user::rw- …
Run Code Online (Sandbox Code Playgroud)

linux acl permissions files

13
推荐指数
2
解决办法
2万
查看次数

使用 setfacl 允许组成员写入目录中的任何文件

我想使用 setfacl 以便“app”组中的任何人都可以编辑 /usr/local/users/app 中包含的任何文件,而不管传统的 UNIX 权限是什么。我有两个用户约翰和本。我试图按照另一个问题说明进行操作,但 john 无法写入某些文件。看起来这是因为 acl 掩码。但是,我已经在 rwx 的目录上设置了默认掩码,所以其中的文件在创建时不应该继承吗?

例如,john 无法写入下面的文件,但他是“app”组的成员,该组在文件上写入了 acl,所以我很惊讶他无法编辑该文件。

ben@app1:/usr/local/users$ ls -la app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
-rw-r--r--+ 1 ben users 38326 Apr  2 10:21 app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar

ben@app1:/usr/local/users/app$ getfacl app-1.0-SNAPSHOT/lib/
# file: app-1.0-SNAPSHOT/lib/
# owner: ben
# group: users
user::rwx
group::rwx          #effective:r-x
group:app:rwx       #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::rwx
default:group:app:rwx
default:mask::rwx
default:other::r-x

ben@app1:/usr/local/users$ getfacl app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
# file: app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar
# owner: ben
# group: users
user::rw-
group::rwx          #effective:r--
group:app:rwx       #effective:r--
mask::r--
other::r--
Run Code Online (Sandbox Code Playgroud)

acl permissions

12
推荐指数
1
解决办法
2万
查看次数

为什么 getfacl 从绝对路径名中删除前导 / ?

我正在学习 CentOS/Red Hat 6 的 ACL;当我getfacl使用绝对路径运行时,我得到了输出:

getfacl:从绝对路径名中删除前导“/”

为什么需要这样做?在什么情况下需要使用-por--absolute-names开关?

我的 Wale Soyinka 和 Michael Jang 的书甚至没有提到这一点,我在手册页中没有看到任何线索,而且我似乎找不到任何直接解决此警告的网站。

linux acl filenames

12
推荐指数
1
解决办法
5036
查看次数

如何使用 setfacl 不允许访问“其他”用户?

该命令setfacl -dm g::rwx mydir将组的权限设置为读写执行。我想运行一个类似的命令,以便其他用户(即不是所有者)没有任何访问权限,但setfacl -dm o:: mydir抱怨该选项-m不完整。表达这一点的正确方式是什么?

acl permissions

12
推荐指数
1
解决办法
7351
查看次数

标签 统计

acl ×10

permissions ×7

linux ×6

files ×3

defaults ×1

diff ×1

filenames ×1

filesystems ×1

group ×1

posix ×1

users ×1