Linux/UNIX查找所有可写目录都设置了粘滞位

时间:2020-01-09 14:16:25  来源:igfitidea点击:

如何找出所有在CentOS Linux服务器下设置了粘性位的可写目录?
如果在目录上设置了粘性位,则只有给定文件的所有者可以从目录中删除该文件。
没有粘性位,具有对目录的写访问权的任何用户都可以删除目录中的任何文件。
设置粘性位可防止用户删除其他文件。
/tmp目录始终设置为启用位。

您可以轻松地找到所有可写且未设置粘性位的目录。
以下命令将在/webroot目录中发现并打印这些内容:

# find /webroot -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print

如果以上命令产生任何输出,请使用chmod命令修复每个报告的目录/dir(请谨慎使用以下命令):

# find /webroot -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print0| xargs -0 chmod +t

更好的解决方案是查看每个目录并根据要求设置权限:

# chmod +t /path/to/dir

就个人而言,我更喜欢从所有此类目录中删除权限,但必需的目录(例如/tmp)除外。
另外,某些应用程序需要世界可写目录。
因此,如果特定应用程序使用了目录,请查阅该应用程序文档,而不要使用xargs盲目更改模式。