普通的 Unix 权限系统是否可以使组成员有权更改文件的权限?
换句话说,假设我们有一个由属于组 的awesome.rb
用户拥有的文件,并且用户(也是 的成员)需要使特定文件可执行。有没有办法让这成为可能?brandon
developers
darryl
developers
答案1
只要他们对文件所在的目录具有写入权限,他们就可以拥有删除文件的权限。只有所有者才能使用普通 Unix 权限更改权限。
笔记:如果您是某个组的成员并且对该文件的权限为rwx
,则该组的成员可以编辑该文件并执行它,仅此而已。其余权限与目录权限无关。
例子
$ groups
saml tmux vboxusers jupiter
# have write perms on dir
$ ls -dl ../somedir/
drwxrwx--- 2 root tmux 4096 May 14 15:36 ../somedir/
$ ls -l
-rw-rw---- 1 root tmux 0 May 14 15:36 somefile
# can delete file
$ rm somefile
$
# don't have write perms on dir
$ ls -ld ../somedir/
drwxr-x--- 2 root tmux 4096 May 14 15:39 ../somedir/
$ ls -l
-rw-rw---- 1 root tmux 0 May 14 15:39 somefile
# can't delete file
$ rm somefile
rm: cannot remove `somefile': Permission denied
# can't move file either
$ mv somefile /tmp/
mv: cannot remove `somefile': Permission denied
使用访问控制列表 (ACL),您可以创建更复杂、更灵活的权限。
参考
答案2
不幸的是,管理文件的安全性被认为是拥有用户的工作。如果没有执行chmod u+s /bin/chown
或给目标用户 CAP_CHOWN via pam_cap.so
(这两者都会赋予他们系统上所有文件的 root 级别 chowning 权限,这听起来很危险),拥有用户和 root 是唯一可以触摸的人它。