原问:linux中,我以root登录,和以其他用户登录然后使用su命令切换至root用户,有什么不一样,如果一样的话,我执行su命令之后,其他的用户还在不在系统中?本人在执行su后,试图删除其他用户,linux提示,其他用户logged in?why 回答:我来为你解释吧! unix系统里,当用户登录时会为每个用户创建一个shell进程,提供交互功能,如果你使用的是bash,那么这个shell进程就是bash,使用的ksh,这个进程就是ksh,其他shell也是一样。 而对于进程而言,在它的进程PCB(进程控制块)里,有实际用户ID和有效用户ID这两个值,所谓实际用户ID是指该进程是以什么身份创建的,比如:我当前是root用户,我创建的进程的实际用户ID就是root的ID,一般为0。而有效用户ID是指对该进程当前拥有使用权限的用户的ID,比如我有一辆车,我把它组出去了,这个车的拥有者是我,但是使用权限却不是我的。 一般情况下实际用户ID和有效用户ID都是相同的,su命令就是拥有这样的功能,让一个进程可以以命令拥有者的权限运行,即可以使进程的实际用户ID和有效用户ID不相同。你可以用ls -l去查看su这个命令,在它的拥有者的x权限位上写的一定是个s(小s),passwd命令也是一样,他们拥有相同的功能。这个s位的意思是 执行该命令的用户可以以该命令的拥有者权限来执行,如果你把这个s位取消了,也就只有su的拥有者可以su了。 现在来进一步解释下吧,希望你能看的懂。 当我们以root执行su时,su命令会以当前shell进程为父进程来创建一个新的shell进程,这个shell进程是提供给我们所要su到的那个用户使用的,而root的shell进程仍然存在,反过来也是一样的,这就是你所问的问题的原因,因为之前那个用户的shell进程还没关闭,你可以使用exit退出一下,可以看到,并不是退出登录了,而是回到之前的那个用户去了。因为它们是父子进程的关系,子进程的结束当然 不会影响到父进程的执行了。但是我们如果强行杀死父进程,那就直接退出了。 其实很多人并不了解,whoami和who am i的区别,他们的作用是不同的。 who am i 显示当前shell进程的实际用户ID。 whomai 显示当前shell进程的有效用户ID。 很多时候,这两个输出是一样的,以至于我们以为这两个命令的作用是相同的。 实例:root@yunhw-Aspire-G:~# who am i root pts/0 -- : (:0.0) root@yunhw-Aspire-G:~# whoami root root@yunhw-Aspire-G:~#ps -ef root 0 : pts/0 :: bash root@yunhw-Aspire-G:~# su - yunhw yunhw@yunhw-Aspire-G:~$ who am i root pts/0 -- : (:0.0) yunhw@yunhw-Aspire-G:~$ whoami yunhw root@yunhw-Aspire-G:~#ps -ef root 0 : pts/0 :: bash yunhw 0 : pts/0 :: su - yunhw yunhw 7 : pts/0 :: -su root@yunhw-Aspire-G:~#sudo kill -9 这条命令一执行,也就完全退出了。
推荐整理分享linux su命令的真正含义(linuxsu命令作用),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sum linux,linux命令su-,linux中的su命令,sum linux,linux中su命令的用法,linux su命令详解,linux su命令详解,linuxsu命令作用,内容如对您有帮助,希望把文章链接给更多的朋友!
Linux交换空间的管理与技巧详解 本文详细介绍了Linux交换空间的管理与技巧,有助于读者深入了解Linux交换空间的原理与使用,具体详情如下:一、UNIX如何使用交换空间所有UNIX操作系
xfs文件系统提示没有磁盘空间错误的解决方法 日前,同事反馈一个问题:在一个大分区(T)中使用xfs文件系统,用来做历史文件备份,突然提示没有磁盘空间错误,先检查下:复制代码代码如下:[root
XFS文件系统简介 Linux中使用XFS文件系统的配置方法 XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件