我在Linux下工作,我有一个目录, /data/history/export ,它有一个用户captain和crew 。 我希望用户mike , joe和steve总是以用户captain写入这个目录。 我知道我可以使用一个普通的组来做到这一点,但我可以这样做,这样写入这个目录的所有东西都成为captain吗?
Linux忽略目录suid,我从来没有真正明白为什么。 其他系统(fbsd,hpux,solaris)足够聪明,可以处理后续的安全问题(如二进制suid strip)。
如果John的答案( chmod g+s /data/history/export )不够用,你可以尝试setfacl -RP -md:u:captain:rwX /data/history/export来让队长访问其中创build的文件和目录只要粘性位(o + s)未被设置。
setfacl选项说明:
-R apply recursively, -P physical only, do not exit physical tree via symlink, -m modify/create, d: add an inherited default to directories, u: user specific ACL, rwX add read and write privs to everything and execute for directories
您无法预先确定文件的用户所有者,但是您可以通过chmod g+s <dirname>或其function等同设置该目录上的guid位,强制给定目录中所有新创build文件的组所有权。