本文主要是介绍Linux普通用户操作root资源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
了解了Linux下文件的SUID和SGID后我们就可以解释为什么普通用户也能调用/usr/bin/passwd命令来修改/etc/passwd了。
[root@RD224 uid_gid]# ll /usr/bin/passwd /etc/passwd
-rw-r--r-- 1 root root 1738 Dec 10 08:40 /etc/passwd
-r-s--x--x 1 root root 27728 Jun 17 2005 /usr/bin/passwd
如上/etc/passwd文件只有root用户才有写权限,其他用户只有读权限,但普通用户却可以passwd修改自己的密码。原因就在/usr/bin/passwd的属性s,见我另一篇博文
Linux uid gid。
一般情况下,如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置。比如我们自己开发的一个程序,里头有用到root才会操控的资源,比如让PC重启。我们可以在普通用户下开发编译,然后切到root用户下将可执行文件属主改为root,将其权限加上SUID,这样切到普通用户下运行这个程序就可以得到我们想要的功能了。
/* # ScriptName: transeuid.c # Author: JH Gao <gaopenghigh@gmail.com> # Create Date: 2012-06-05 # Function: transmit euid a
这篇关于Linux普通用户操作root资源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!