灵魂腐蚀 发表于 2015-1-16 15:10:33

给大家带来Linux历程的几个用户ID转换办法

开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人。
Linux为每一个历程设置了3个ID:实践用户id,无效和用户id和保留的设置id
关于这3个id,必要注重以下几个方面:
1.只要root才干改动历程的实践用户id。比方,用户从终端login程序上岸,此时login程序的3个id都是root。然后准确输出用户名暗码以后,login程序因而setuid到注册的id。因而3个id都被改成了注册的用户id。然后execshell程序。非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发生一个子历程,然后子历程execpasswd程序。因为passwd设置了设置id位,而且passwd是属于root用户。因而子历程设置无效用户id位为root,保留的设置用户id也设置成了root。passwd实行终了时,再改动无效用户id和保留的设置用户id为之前的实践用户id的值。
3.保留的设置-用户-ID是由exec从无效用户ID复制的。在exec按文件用户ID设置了无效用户ID后,即举行这类复制,并将此正本保留起来
</p>
使用gcc或g++进行编译,使用gdb进行调试;

再现理想 发表于 2015-1-18 15:41:32

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

若天明 发表于 2015-1-18 15:41:32

学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。

灵魂腐蚀 发表于 2015-1-25 08:41:45

Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。

海妖 发表于 2015-2-2 20:13:09

眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。

小妖女 发表于 2015-2-8 05:16:47

上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.

只想知道 发表于 2015-2-24 17:56:08

对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。

谁可相欹 发表于 2015-3-7 13:14:02

在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。

分手快乐 发表于 2015-3-15 07:30:00

一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。

再见西城 发表于 2015-3-21 22:51:45

Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
页: [1]
查看完整版本: 给大家带来Linux历程的几个用户ID转换办法