我想要执行以下操作:
- 需要从根目录找到所有可在全球范围内写入的文件和文件夹
/
。 - 如果找到,我需要检查粘滞位是否设置。
- 如果未设置粘滞位,则设置它。
我们能否为此类问题提出一个命令行解决方案?
答案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 {} \;