相关疑难解决方法(0)

什么关系将 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万
查看次数

在 bash 中的文件中执行原子写操作

通过庆典会后文件这个问题,一个它仍然不是很清楚,我哪能执行原子写入(追加)操作在bash文件。我有一个在多个实例中运行的脚本,并且在某些时候必须将数据写入文件:

echo "$RESULT" >> `pwd`/$TEMP_DIR/$OUT_FILE
Run Code Online (Sandbox Code Playgroud)

如何使所有并发运行的脚本的所有写入操作都原子化(以便来自一个实例的数据不会与来自另一个实例的数据重叠)?

linux command-line semaphore bash

16
推荐指数
2
解决办法
8336
查看次数

为什么 POSIX.1e 被撤回?

提议的 POSIX.1e 标准定义了一些被广泛支持的东西,比如 ACL。但提案本身被撤回。怎么来的?我在网上找到的唯一推理是来自http://wt.tuxomania.net/topics/1999_06_Posix_1e/ 的这句话:

从今天(2014 年 7 月)的角度来看,为什么放弃 Posix.1e 是很难理解的。Solaris、Irix、Linux 和其他可能的 Unices 似乎都认可该标准。另一方面,FreeBSD 项目发现了相反的论点,并且默认情况下没有集成功能(“细粒度特权”)。

另一方面,Jörg Schilling 在这个站点上说了这个(文件系统 ACL 中 `mask` 的确切目的是什么?

顺便说一句:ACL 的 POSIX-1003.1 草案已于 1997 年被参考实现(ag Solaris)撤回,因为事实证明,客户想要一种更强大的方法,该方法后来被标准化为 NVSv4 ACL。

有没有更详细的描述发生了什么?

acl history posix

11
推荐指数
1
解决办法
647
查看次数

setfacl 错误地更改了组权限

为了备份服务器的“/home”目录树,我创建了一个“备份”帐户并使用 setfacl 使其可以读取整个目录。我的 cron 作业每晚都以 root 身份运行此命令:

setfacl -R -m u:backup:rx,d:u:backup:rx /home
Run Code Online (Sandbox Code Playgroud)

很好,除了一个问题:每当我运行此命令时,它都会更改我的 ssh 密钥的组权限。

me@myserver:~/.ssh$ ls /home/me/.ssh/id_rsa -l
-rw-r-x---+ 1 me me 1679 Jan  8 18:35 /home/me/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

好吧,这会导致我的 ssh 程序停止运行,因为它现在是组可读的。奇怪的是,getfacl 不同意这些权限。

me@myserver:~/.ssh$ getfacl /home/me/.ssh/id_rsa
getfacl: Removing leading '/' from absolute path names
# file: home/me/.ssh/id_rsa
# owner: me
# group: me
user::r--
user:backup:r-x
group::---
mask::r-x
other::---
Run Code Online (Sandbox Code Playgroud)

getfacl 认为该文件不是组可读的。如果我运行明显的命令

chmod 400 id_rsa
Run Code Online (Sandbox Code Playgroud)

权限是固定的,但每次我重新运行原始命令时都会恢复(setfacl -R -mu:backup:rx,d:u:backup:rx /home)。这是怎么回事?

注意:我确实希望我的 id_rsa 备份,所以我们不用担心这些安全隐患。

acl backup permissions

7
推荐指数
2
解决办法
3654
查看次数

在 ls -l 输出中查看带有“+”的文件的扩展 ACL

ls -l列表中的文件具有以下权限:

-rw-r-----+
Run Code Online (Sandbox Code Playgroud)

如何找到由+?表示的扩展访问控制列表 (ACL) 权限?

ls acl permissions

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

标签 统计

acl ×4

permissions ×3

backup ×1

bash ×1

command-line ×1

files ×1

history ×1

linux ×1

ls ×1

posix ×1

semaphore ×1