我了解到以下符号链接是不安全的,因为有时我使用 vim 通过 sudo 编辑文件:
xiaobai@dnxb:/tmp$ sudo find -L /root \! -user root
/root/.vimrc
xiaobai@dnxb:/tmp$ ls -lathi /root/.vimrc
25 lrwxrwxrwx 1 root root 20 Oct 3 23:22 /root/.vimrc -> /home/xiaobai/.vimrc
xiaobai@dnxb:/tmp$ ls -lathiL /root/.vimrc
12330229 -rw-r--r-- 1 xiaobai xiaobai 6.1K Oct 12 02:22 /root/.vimrc
xiaobai@dnxb:/tmp$
但是这个文件怎么样:
[xiaobai@localhost tmp]$ sudo find -L /bin \! -user root
/bin/sp-sc-auth
[xiaobai@localhost tmp]$ ls -lahi /bin/sp-sc-auth
1844640 lrwxrwxrwx. 1 root root 49 Aug 14 21:10 /bin/sp-sc-auth -> /home/xiaobai/note/src/sopcast/sp-auth/sp-sc-auth
[xiaobai@localhost tmp]$ ls -lahiL /bin/sp-sc-auth
6164581 -rwxrwxr-x. 1 xiaobai xiaobai 839K Aug 14 21:09 /bin/sp-sc-auth
[xiaobai@localhost tmp]$
我在没有 sudo/su 的情况下运行sopcast-player
,所以我应该担心吗?攻击者是否有可能利用位于系统 $PATH 中的普通用户拥有的此类文件,但不直接由 sudo/su 执行?如果 gid 是普通用户的同一组怎么办?
答案1
用户运行的任何程序或脚本,无论该用户是 root 还是普通帐户,都将以与运行该程序的帐户关联的权限运行。
当您以 root 身份运行程序时,该程序可以执行 root 可以执行的所有操作。
如果您有一个由普通用户拥有并由 root 执行的程序,则该用户因此隐式具有 root 访问权限,因为该程序可以执行用户编程的任何操作。