使用ps命令时,发现部分用户显示的是用户名,有些用户显示的是UID,例如nmon程序的运行时webmaster,但是ps显示的不是直接显示uid 500。
通过man发现:8位用户名的账户能够显示完整的用户名,9位用户名的账户就显示了UID使用下面的命令来解决
ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd
注意:“userForLongName”是随便填写的,Linux会自动检查此字符串的长度,为15,则15位以下的用户名都可以正常显示。
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。
ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。
使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
可以使用whoami.具体参考如下:
命 令:whoami 或者 who am i
功能说明:显示用户名称。
语法:whoami [--help][--version]
补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。
whoami 命令显示登录名。与使用命令 who 并指定 am i
不同,whoami 命令在有 root 用户权限时也有效,因为它不检查 /etc/utmp 文件。
该命令只出现在windows系列中的
windows 2000中。
参数:
--help 在线帮助。
--version 显示版本信息。
附:whoami
与who am i 的区别
who这个命令重点是用来查看当前有哪些用户登录到了本台机器上。
who -m的作用和who am
i的作用是一样的。
who -q用来显示当前登录用户的个数。
who am i
显示的是实际用户的用户名,即用户登陆的时候的用户ID。此命令相当于who -m。
who am i显示的是“登录用户”的用户名。
用Linux的术语来解释就是:(实际用户=uid,即user id。有效用户=euid,即effective user id)
whoami 显示的是有效用户ID.
whoami显示的是当前“ *** 作用户”的用户名。
先看看这三个命令的输出信息:
[jb51@jb51 ~]$ whoami
jb51
[jb51@jb51 ~]$ who am i
jb51
pts/3 2011-07-25 13:17 (:0.0)
[jb51@jb51 ~]$ who
jb51 :0 2011-07-25
09:54
jb51 pts/0 2011-07-25 09:55 (:0.0)
jb51 pts/1 2011-07-25 09:57
(:0.0)
jb51 pts/3 2011-07-25 13:17 (:0.0)
当我用sudo su(或者sudo su
-)更换到root用户之后,你再看看:
[jb51@jb51 ~]$ sudo su
[root@jb51 jb51]# whoami
root
[root@jb51 jb51]# who am i
jb51 pts/3 2011-07-25 13:17 (:0.0)
[root@jb51 jb51]# who
jb51 :0 2011-07-25 09:54
jb51 pts/0 2011-07-25
09:55 (:0.0)
jb51 pts/1 2011-07-25 09:57 (:0.0)
jb51 pts/3 2011-07-25
13:17 (:0.0)
Linux系统中,每个用户的ID都有两种,即用户ID(User ID,简称UID)和组ID(GroupID,简称GID),这与文件拥有者和拥有群组两种属性所对应。
文章开头也提到了,Linux系统并不认识我们的用户名和密码,那问题来了,文件是如何判别它的拥有者名称及群组名称的呢?
每个文件都有自己的拥有者ID和群组ID,在显示文件属性时,系统会根据/etc/passwd和/etc/group文件中的内容,分别找到UID和GID所对应的用户名和群组名,最终显示出来。
在/etc/passwd文件中,利用UID可以找到所对应的用户名,在/etc/group文件中,利用GID可以找到所对应的群组名。
可以做个小实验,在Linux *** 作系统中,常用的有两个账户,分别为root超级管理员账户和普通账户,我们可以先使用root账号登录并执行命令vim
/etc/passwd,在该文件中找到普通用户并将其UID随意改一个数字,这是你会发现,当你查看普通账户所拥有的文件时,你会发现所有文件的拥有者并不是普通用户,而是数字。
一般情况下,当登录Linux *** 作系统后,会先寻找/etc/passwd是否有输入账号,如果没有,则跳出,如果有,则读取对应的UID与GID,随后进入/etc/shadow核对密码,一切完成后,则进入shell管控。
由此可见,UID与GID在日常的账户管理中,发挥着非常重要的作用,因为一不小心就可能访问不了自己的文件,所以温馨提示大家,不要随便改动自己的/etc/passwd与/etc/group文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)