您的位置 首页 编程

Linux体系进程的几个用户ID及其转化办法

Linux为每个进程设置了3个ID:实际用户id,有效和用户id和保存的设置id。关于这3个id,需要注意以下几个方面:1.只有root才能改变进程的实际用户id。例

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后,即进行这种仿制,并将此副本保存起来。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/297908.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部