review-exp6-进程和作业管理

1、在远程终端里,用非root账户运行passwd命令,不要输入密码;然后开启另一个远程终端,在此终端内查看刚才被运行的passwd命令的euid,ruid,pid和命令名字。

答:命令:ps a -u weliteh -o cmd,euid,ruid,pid|grep 'passwd'

 

2、解释上一操作中所看到的euid和ruid的值所代表的意义和关系。

euid:effective user id,为有效用户ID,也就是说当用户做任何一个操作时,最终看它有没有权限,都是在判断有效用户ID是否有权限,如果有,则OK,否则报错不能执行。

ruid: real user ID,为实际用户ID,用于标识一个系统中用户是谁,一般是在登录之后,就被唯一确定的,就是登陆的用户的uid。永远不会变,从该根shell产生的所有进程都会继承ruid,即该用户。

关系:euid和ruid通常情况下是一样的,只有在某可执行文件设置了suid位,然后由非owner用户来执行时不一样:如果user1的可执行文件设置了suid位,且该文件可被user2执行,那么user2执行时,该进程的euid是user1,而ruid是user2.因为user2登录后去执行,所以ruid是user2; 因为user1设置了suid位且该文件是user1的,所以euid是user1.另外特权进程(即euid=0,即euid=root)可以设置euid和ruid为非0值(正如login,su和sudo所做的那样)。一般,一个特权进程一旦将其ruid和euid变成非0值,它就变不回root了。

上述命令(passwd)的解释:

  • weliteh用户有权限执行passwd,weliteh登录后执行passwd
  • 执行时,ruid仍是weliteh值为1000,而euid是root,特权进程,值为0
  • Weliteh之所以能够改变他自己的密码,是因为passwd内部会检查ruid是否是root,若不是,则其行为会局限于修改ruid的密码
  • 让euid变成root是必须的,因为密码的改变必然要求写 /etc/shadow 文件,而该文件权限位是 640,即只有root能写,所以euid必须是root.

当普通用户执行passwd命令时,shell会fork出一个子进程,此时进程有效用户ID还是普通用户ID,然后exec程序执行/usr/bin/passwd。在上次实验举例中我们就已知道/usr/bin/passwd有SUID位,于是会把进程的有效用户ID设成设置成文件用户ID,显然就是root, 此时这个进程都获得了root权限, 得到了读写/etc/shadow文件的权限, 从而普通用户可完成密码的修改。exec进程退出后会恢复普通用户的EUID为普通用户ID.这样就不会使普通用户一直拥有root权限。 这就是我们设置用户ID位的作用,它的存在就是为了普通用户在某些需要特权权限时,去临时的改变有效用户ID而获得特权权限。

 

3、用ps命令以树状结构列出所有sshd程序对应的进程以及子进程。

答:命令:ps –axjf | grep sshd

 

4、列出系统上所有sshd进程的进程号,用英文的分号 ‘;’ 作为进程号之间的分隔符号。

答:命令:pidof sshd | sed 's/ /;/g'

 

5、用完整格式显示当前用户的所有进程。

答:命令:ps auw –U $USER

 

6、用完整格式,结合树状结构,显示当前用户的所有进程

答:命令:ps auwf –U $USER

 

7、用nohup启动ping命令来查找到www.bing.com的网络响应时间,请确保ping长时间运行,直到其被停止运行。

答:命令:nohup ping www.bing.com &

 

8、输出该ping命令的执行结果

答:命令:cat nohup.out

 

9、显示该ping进程的命令名字、PID、nice值

答:命令:ps ao cmd,pid,nice -U $USER | grep 'ping www.bing.com'

 

10、调整该ping进程的的nice值为5

答:命令:sudo renice 5 -p 16263

 

11、再次显示该ping进程的命令名字、PID、nice值

答:命令:ps ao cmd,pid,nice -U $USER | grep 'ping www.bing.com'

 

12、结合ps命令和其他命令, 结束这个ping进程

答:命令:ps ao cmd,pid,nice -U $USER | grep 'ping www.bing.com' ,kill -9 16263

 

13、运行命令:ping www.bing.com > /dev/null

 

14、在shell按下ctrl-z,截图

 

15、列出当前tty里该ping进程的状态(stat,下同)

答:命令:ps –eo cmd,stat,tty | 'ping www.bing.com'

 

16、用jobs命令列出当前暂停的作业

答:jobs –s

 

17、用bg命令结合合适的参数将该ping进程转为后台作业

答:命令:bg 1

 

18、列出当前tty里该ping进程的状态

 

19、用fg命令结合合适的参数将该ping进程转为前台作业

答:命令:fg 1

 

20、新起一个shell,用ps命令列出该ping进程的状态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值