权限 - 列出 uid

权限 - 列出 uid

两部分问题:

  • 什么是全球可写的目录和文件?
  • 我正在寻找一个脚本,可以显示服务器所有分区上不属于 root 或系统帐户的目录。在我们的环境中,所有可全局写入的目录都应属于 root 或其他系统帐户。

答案1

  1. 全球可写文件是任何人都可以写入的文件。无论他们是谁。这被认为是一个安全问题,因为世界另一端有权访问您系统的某个随机人员可能会滥用它。想象一下,某个使用 /tmp(设计为全球可写)的软件也在监听 /tmp 中的传入数据。

    不过还有一件事:粘着位。如今粘性位最常见的用途是在目录中。设置粘性位后,只有项目的所有者、目录的所有者或超级用户可以重命名或删除文件。如果不设置粘性位,任何对目录具有写入和执行权限的用户都可以重命名或删除其中包含的文件,无论所有者是谁。

  2. 这将打印所有未设置粘滞位的全球可写文件。

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

    这也将打印所有世界可写文件:

    find / -perm -2 ! -type l -ls
    

答案2

我认为你想要这个脚本

#!/bin/bash
uids=`awk -F ":" '{print $3}' /etc/passwd`
for i in $uids; do
    if [ $i -gt 500 ]; then
            find / -uid $i -perm -002 -type d 2>/dev/null
    fi
done

它从 passwd 文件中获取 uid,然后循环遍历它们,如果 uid 大于 500,它将启动对具有该 uid 和其他可写位设置的目录的查找。

相关内容