int*_*tar 8 linux files permissions
我有一个项目,其中包含在 Linux 中创建的许多文件。
我需要给另一个用户写权限。所以我创建了一个“开发”组,他和我都是其中的成员,并将文件的所有权更改为该组。
一个典型的文件现在具有以下权限:
-rw-rw-r-- 1 phil dev 5617 Jul 14 15:45 profile.html
Run Code Online (Sandbox Code Playgroud)
但是,当我编辑文件 profile.html 时,它会像这样还原给我,而我的同事就失去了编辑能力。
-rw-rw-r-- 1 phil phil 5617 Jul 14 15:45 profile.html
Run Code Online (Sandbox Code Playgroud)
我如何避免它像这样恢复?改变所有权是错误的做法吗?或者是用错误的选项完成的?还是这与我的编辑器(emacs)配置有关?
Fre*_*hie 17
在包含文件夹中,您需要将组更改为 dev,然后使用将其标记为 set-gid。
chgrp dev <containing-folder>
chmod g+ws <containing-folder>
Run Code Online (Sandbox Code Playgroud)
set gid 位使在该文件夹中创建的文件继承该文件夹的组,并在任何新文件夹上标记 setgid 位。将文件移动到目录时要小心,因为这将保留其现有权限。
您还可以使用 grpid 挂载选项挂载文件系统(假设 ext2/3 ),这样无论何时在目录中创建新文件,它都会使组所有者与父目录相同。那么你就可以让这些文件所在的目录归'dev'组所有。
如果它是根分区(示例),则重新挂载它:
sudo mount -o remount,grpid,rw,relatime,errors=remount-ro /
Run Code Online (Sandbox Code Playgroud)
来自'man mount 8':
Run Code Online (Sandbox Code Playgroud)grpid or bsdgroups / nogrpid or sysvgroups These options define what group id a newly created file gets.当设置 grpid 时,它采用创建它的目录的组 ID;否则(默认)它采用当前进程的 fsgid,除非目录设置了 setgid 位,在这种情况下,它从父目录中获取 gid,如果它是一个目录本身,它也会获取 setgid 位设置。
| 归档时间: |
|
| 查看次数: |
4722 次 |
| 最近记录: |