· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [推荐] 江民安全专家永久免费 立即下载  RSA 2010
· [专题] 参与多核UTM调查 赢购物卡 谷歌遭攻击事件
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 《拆弹部队》藏木马 看Xbox360与PS3背后秘密
· [热点] 报告:PDF漏洞远超微软 十款免费电子邮件程序

Linux系统进程的几个用户ID及其转换方法

发布时间:2009.06.24 05:02     来源:赛迪网    作者:fen

【赛迪网-IT技术报道】Linux为每个进程设置了3个ID:实际用户id,有效和用户id和保存的设置id

关于这3个id,需要注意以下几个方面:

1.只有root才能改变进程的实际用户id。例如,用户从终端login程序登陆,此时login程序的3个id都是root。然后正确输入用户名密码之后,login程序于是setuid到注册的id。于是3个id都被改成了注册的用户id。然后exec shell程序。非root用户注册进入shell之后,他的实际用户id是绝对不会被更改的。除非logout之后,重新注册shell。一些su改变用户的操作实际上都是改变shell进程的有效用户id,并不是shell进程的实际用户id。

2.exec程序时,可执行文件有一个设置id位,该位的设置与否与进程的有效用户id和保存的设置id有很大关系。可以用ll命令查看,如果有s标记的话说明设置了,否则没有。首先没有设置的情况,3个id均不会改变和调用者的进程的id一样。现在是设置了的情况,实际用户id仍然不会改变,有效用户id则设置为可执行文件的属主用户,保存的设置id设置成有效用户id一样。这样的程序有很多,比如passwd,su等。例如,passwd程序,一个普通用户foo通过shell执行passwd,首先shell进程fork产生一个子进程,然后子进程exec passwd程序。由于passwd设置了设置id位,并且passwd是属于root用户。于是子进程设置有效用户id位为root,保存的设置用户id也设置成了root。passwd执行完毕时,再改变有效用户id和保存的设置用户id为以前的实际用户id的值。

3.保存的设置-用户- ID 是由exec从有效用户I D复制的。在exec按文件用户I D设置了有效用户I D后,即进行这种复制,并将此副本保存起来。

(责任编辑:董建伟)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Linux操作系统下运行命令时CTRL+Z的作用 (06-23) · Linux操作系统下安装phpmyadmin方法介绍 (06-23)
· Linux下巧用tail命令 创建自解压tar文件 (06-22) · 在Linux文本模式下用Wget命令来浏览网页 (06-22)
· Linux系统日志记录到远程服务器简单配置 (06-22) · 解决Linux系统服务器下误删除文件的问题 (06-22)
· 实用技巧:Linux操作系统下磁盘配额管理 (06-22) · 实例解析:Linux之Alias导致覆盖提示问题 (06-22)
· 新手学堂:Linux操作系统下后台执行程序 (06-22) · Linux如何在系统运行过程中修改内核参数 (06-22)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
日系家电齐陷巨亏泥潭 转型能否翻盘?
·首家网媒网站人民网A股..
·京东当当老总对骂 不拼..
·专题:五一小假未到 家..
拒绝雷同 NEC携909e在华掀起硬朗风
·微软发布Windows Phone ..
·直播:2012中国绿色产业..
·2012MWC移动通信世界大..
直播:中国LED产业年会论坛
·专题:服务器教育行业案..
·专题:回顾2009 原装耗..
·专题:HP Photosmart Pl..
选择2012:零售业的网络翅膀
·赛门铁克互联网安全威胁..
·突破云障碍 掌控云端..
·2012天融信巡展..
访问人数过多,请稍候访问