系统管理指南:安全性服务

Procedure如何使用特殊文件权限查找文件

应对系统中未经授权在程序中使用 setuidsetgid 权限的情况进行监视。使用 setuidsetgid 权限,普通用户可以获取超级用户功能。可疑可执行文件为用户而不是 rootbin 授予拥有权。

  1. 承担主管理员角色,或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 使用 find 命令查找拥有 setuid 权限的文件


    # find directory -user root -perm -4000 -exec ls -ldb {} \; >/tmp/filename
    
    find directory

    检查以指定的 directory(可以是 root (/)、sys binmail)开头的所有挂载路径。

    -user root

    仅显示由 root 拥有的文件。

    -perm -4000

    仅显示权限被设置为 4000 的文件。

    -exec ls -ldb

    ls -ldb 格式显示 find 命令的输出。

    >/tmp/filename

    包含 find 命令的结果的文件。

  3. /tmp/filename 中显示结果。


    # more /tmp/filename
    

    有关 setuid 权限的背景信息,请参见setuid 权限


示例 6–12 使用 setuid 权限查找文件

以下示例的输出显示,名为 rar 的用户创建了一份 /usr/bin/sh 的个人副本,并将权限设置为 rootsetuid。因此,/usr/rar/bin/sh 程序将使用 root 权限运行。

通过将文件从 /tmp 目录中移出,可以保存此输出以供将来参考。


# find / -user root -perm -4000 -exec ls -ldb {} \; > /var/tmp/ckprm

# cat /var/tmp/ckprm

-r-sr-xr-x 1 root bin 38836 Aug 10 16:16 /usr/bin/at

-r-sr-xr-x 1 root bin 19812 Aug 10 16:16 /usr/bin/crontab

---s--x--x 1 root sys 46040 Aug 10 15:18 /usr/bin/ct

-r-sr-xr-x 1 root sys 12092 Aug 11 01:29 /usr/lib/mv_dir

-r-sr-sr-x 1 root bin 33208 Aug 10 15:55 /usr/lib/lpadmin

-r-sr-sr-x 1 root bin 38696 Aug 10 15:55 /usr/lib/lpsched

---s--x--- 1 root rar 45376 Aug 18 15:11 /usr/rar/bin/sh

-r-sr-xr-x 1 root bin 12524 Aug 11 01:27 /usr/bin/df

-rwsr-xr-x 1 root sys 21780 Aug 11 01:27 /usr/bin/newgrp

-r-sr-sr-x 1 root sys 23000 Aug 11 01:27 /usr/bin/passwd

-r-sr-xr-x 1 root sys 23824 Aug 11 01:27 /usr/bin/su

# mv /var/tmp/ckprm /export/sysreports/ckprm