如何找到所有人可写的文件和文件夹并设置粘滞位?

如何找到所有人可写的文件和文件夹并设置粘滞位?

我想要执行以下操作:

  1. 需要从根目录找到所有可在全球范围内写入的文件和文件夹/
  2. 如果找到,我需要检查粘滞位是否设置。
  3. 如果未设置粘滞位,则设置它。

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

答案1

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

-perm -模式

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

因此,要找到所有可在全球范围内写入的文件,无论它们具有什么其他权限,您都可以执行以下操作:

find / -perm -o+w 

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

find . -perm -o+w -exec chmod +t {} + 

答案2

此命令应在一个命令中查找可写目录,我发现自己经常使用它。这是最佳命令!;) 希望它能为您带来好处:

find / -type d \( -perm -g+w -or -perm -o+w \) -exec ls -adl {} \;

答案3

这个命令可能对你有用:

find / -type f! -path "/ proc / *" -prune -perm o + w exec ls {} -lg /; 2> / dev / null

答案4

我最喜欢的是这个:

在本地磁盘上查找未设置粘滞位的所有人可写的文件夹并进行设置:

df --local -P 2> /dev/null | awk {'if (NR!=1) print $6'} | \
xargs -I '{}' find '{}' -xdev -type d \( -perm -0002 -a -perm -1000 \) exec chmod +t {} \;

相关内容