如何找到世界可写的文件和文件夹并设置粘滞位?

sno*_*oop 16 permissions command-line find

我想做以下事情:

  1. 需要从/root 中找到所有世界可写的文件和文件夹。
  2. 如果找到,我需要检查是否设置了粘滞位。
  3. 如果粘滞位未设置,则设置它。

我们能否为此类问题提供命令行解决方案?

ter*_*don 15

您可以使用find's-perm -mode格式执行此操作。来自man find

-烫发模式

为文件设置了所有权限位模式。符号模式以这种形式被接受,这通常是使用它们的方式。u',如果使用符号模式,则必须指定g' 或 `o'。有关一些说明性示例,请参阅示例部分。

因此,要查找所有可写入的文件,而不管它们具有什么其他权限,您可以执行以下操作:

find / -perm -o+w 
Run Code Online (Sandbox Code Playgroud)

要设置粘滞位,请使用-exec

find . -perm -o+w -exec chmod +t {} + 
Run Code Online (Sandbox Code Playgroud)

  • 注意:如果您不希望输出也包含符号链接的名称,请使用 `find / -not -type l -perm -o+w`。 (2认同)