Linux下su的效果就是换成其他用户的真实身份。除用户外,必须输入用户的登录密码。那么苏命令的主要目的是什么?应用su命令后,其他用户还在吗?我来看看Linux下su命令的案例解读。
问:在linux中,以root身份登录和以另一个用户身份登录然后使用su命令切换到root有什么区别?如果是一样的,我执行苏命令后,其他用户还没有系统软件吗?实现su后,尝试删除其他用户,linux提醒,其他用户登录?为什么
回应:我来表达给你听!在unix系统软件中,当用户登录时,会为每个用户设置一个shell进程来显示交互。如果应用bash,那么这个shell进程就是bash,应用的ksh,这个进程就是ksh,其他shell也是。
至于进程,其进程PCB(进程控制块)中有两个值:特定用户ID和合理用户ID。说白了,特定用户ID是指进程的真实身份,比如我今天是root用户,我创建的进程的特定用户ID是rootID,一般为0。合理的用户ID是指今天对该流程拥有应用管理权限的用户的ID。比如它是我的一辆车,我把它分组出来了。这辆车的车主是我,但申请管理权限不是我的。
一般情况下,特定用户ID和合理用户ID都是一样的,su命令就有那个功能,让一个进程可以用命令所有者的管理权限来 *** 作,也就是可以让进程的特定用户ID和合理用户ID不一样。您可以使用ls-l来查询命令su。必须在它的主人X管理权的界限上写一个S(小s)。passwd命令是相同的。它们具有相同的功能。这个S位意味着执行命令的用户可以用所有者的管理权限来执行它。如果取消这个S位,的主人只有苏。
现在我们来进一步解释一下。希望你能理解。
当我们用root实现su时,su命令将建立一个新的shell进程,当前的shell进程作为父进程。这个shell进程说明了我们要su申请哪个用户,但是根shell进程还是存在的,反过来也是一样。这就是你提出难题的原因。由于前一个用户的shell进程尚未关闭,您可以使用exit退出。如您所见,您并没有注销,而只是返回到上一个用户。因为它们与父子进程相关,所以子进程的完成自然不容易危及父进程的实现。但是,如果强行杀死父进程,就会立即退出。
其实很多人都不知道whoami和我是谁的区别,功效是不一样的。
显示当前shell进程的特定用户ID。
麦展示了如今果壳进程的合理用户ID。
很多时候这两个输出是一样的,以至于大家都以为这两个命令的效果是一样的。
案例:root@yunww-aspire-4750g:~#我是谁
根pts/02011-12-1013:13(:0.0)
root@yunww-Aspire-4750g:~#whoami
根
root@yunww-Aspire-4750g:~#PS-ef
root29392935013:18pts/000:00:00bash
root@yunww-Aspire-4750g:~#su-yunww
yunww@yunww-Aspire-4750g:~$我是谁
根pts/02011-12-1013:13(:0.0)
yunww@yunww-Aspire-4750g:~$whoami
云
root@yunww-Aspire-4750g:~#PS-ef
root29392935013:18pts/000:00:00bash
29582939013:19pts/000:00:00
yunw29662958713:19pts/000:00:00-su
root@yunww-Aspire-4750g:~#sudokill-92939
这个命令一执行,就彻底收回。
以上是我对Linux下su命令用法的总结。根据对su命令应用问题的解读,我给大家详细讲解一下它的实际用法,也给遇到这个问题的用户做个参考。你学会了吗?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)