我可以&如何以同一用户身份将标准文件写入目录,无论我以哪个用户身份写入文件?

我可以&如何以同一用户身份将标准文件写入目录,无论我以哪个用户身份写入文件?

我在 Linux 下工作,我有一个目录,/data/history/export其中有用户captain和组crew。我希望用户mikejoesteve始终以用户身份写入此目录captain。我知道我可以使用通用组来执行此操作,但我可以这样做,以便写入此目录的所有内容都变成吗captain

答案1

Linux 忽略目录 suid,我始终不明白为什么。其他系统(fbsd、hpux、solaris)足够智能,可以处理后续的安全问题(例如二进制 suid strip)。

如果约翰的回答(chmod g+s /data/history/export)不够充分,您可以尝试setfacl -RP -m d:u:captain:rwX /data/history/export始终允许 captain 访问其中创建的文件和目录,只要粘滞位(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

答案2

chmod g+s <dirname>您无法预先确定文件的用户所有者,但是您可以通过在该目录上设置 guid 位或其功能等效项来强制对给定目录中所有新创建的文件进行组所有权。

相关内容