CentOS 文件所有者在编辑时发生更改

CentOS 文件所有者在编辑时发生更改

我有以下问题。在 Unix 服务器 (CentOS 5.5) 上,属于同一组的多个用户可以访问相同的文件(通过 ssh)。在某个特定用户(假设用户 A)编辑文件后,文件所有者更改为 A,组 (G) 和权限 (0664) 保持不变。一旦第二个用户 (B) 尝试修改同一文件,他就不允许这样做。另一方面,如果用户 B 修改了文件,那么 A 可以毫无问题地更改它(除了搞砸权限)。

我知道权限/组出了问题,但我不知道是什么。因此,任何帮助将不胜感激。

提供更多信息:

$ ls -l /path/file
-rwxrwxr-x 1 B G 42269 jan 14 10:30 file

$ getfacl /path/file
# file: file
# owner: B
# group: G
user::rwx
group::rwx
other::r-x

$ ls -ld /path
drwxrwxr-x 12 B G 4096 jan 14 10:24 .

$ getfacl /path
# file: .
# owner: B
# group: G
user::rwx
group::rwx
other::r-x

答案1

A 有权写入该目录,因此 A 的编辑器写入一个新文件/path/file.tmp(或一些类似的名称),然后将新文件移动到/path/file.由于 A 刚刚创建了该文件,因此该文件归 A 所有。

B 无权写入该目录,因此 B 的编辑器覆盖现有文件,这不会更改所有权。

(看如何编辑文件并保留其访问控制列表/SELinux 安全上下文?了解编辑们为什么会这样做。)

看起来A在G组,但B不在。解决这个问题最简单的方法是确保 A 和 B 要么都在 G 组中,要么都不在 G 组中。

相关内容