Linux普通用户操作root资源

本文探讨了在Linux环境下,通过SUID和SGID机制,普通用户如何能够执行需要root权限的命令,例如修改密码。通过设置可执行文件的属主为root并启用SUID权限,即使在普通用户下运行程序,也能实现对root资源的操作,如重启PC等。
摘要由CSDN通过智能技术生成

了解了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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值