作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法。
1 使用w命令查看登录用户正在使用的进程信息
w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:
用户名称
用户的机器名称或tty号
远程主机地址
用户登录系统的时间
空闲时间(作用不大)
附加到tty(终端)的进程所用的时间(JCPU时间)
当前进程所用时间(PCPU时间)
用户当前正在使用的命令
w命令还可以使用以下选项
-h忽略头文件信息
-u显示结果的加载时间
-s不显示JCPU, PCPU, 登录时间
$ w
23:04:27 up 29 days, 7:51, 3 users, load average: 004, 006, 002
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 dev-db-server 22:57 800s 005s 001s sshd: ramesh [priv]
jason pts/1 dev-db-server 23:01 2:53 001s 001s -bash
john pts/2 dev-db-server 23:04 000s 000s 000s w
$ w -h
ramesh pts/0 dev-db-server 22:57 17:43 252s 001s sshd: ramesh [priv]
jason pts/1 dev-db-server 23:01 20:28 001s 001s -bash
john pts/2 dev-db-server 23:04 000s 003s 000s w -h
$ w -u
23:22:06 up 29 days, 8:08, 3 users, load average: 000, 000, 000
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 dev-db-server 22:57 17:47 252s 249s top
jason pts/1 dev-db-server 23:01 20:32 001s 001s -bash
john pts/2 dev-db-server 23:04 000s 003s 000s w -u
$ w -s
23:22:10 up 29 days, 8:08, 3 users, load average: 000, 000, 000
USER TTY FROM IDLE WHAT
ramesh pts/0 dev-db-server 17:51 sshd: ramesh [priv]
jason pts/1 dev-db-server 20:36 -bash
john pts/2 dev-db-server 100s w -s
2使用who命令查看(登录)用户名称及所启动的进程
who命令用于列举出当前已登录系统的用户名称。其输出为:用户名、tty号、时间日期、主机地址。
$ who
ramesh pts/0 2009-03-28 22:57 (dev-db-server)
jason pts/1 2009-03-28 23:01 (dev-db-server)
john pts/2 2009-03-28 23:04 (dev-db-server)
如果只希望列出用户,可以使用如下语句:
$ who | cut -d' ' -f1 | sort | uniq
john
jason
ramesh
补充 :users命令,可用于打印输出登录服务器的用户名称。该命令除了有help和version选项外,再没有其他选项。如果某用户使用了多个终端,则相应的会显示多个重复的用户名。
$ users
john
jason
ramesh
3 使用whoami命令查看你所使用的登录名称
whoami命令用于显示登入的用户名。
$ whoami
john
whoami命令的执行效果和id -un的效果完全一样,例如:
$ id -un
john
whoami命令能显示当前登入的用户名称,以及当前所使用的tty信息。该命令的输出结果包括如下内容:用户名、tty名、当前时间日期,同时还包括用户登录系统所使用的链接地址。
$ who am i
john pts/2 2009-03-28 23:04 (dev-db-server)
$ who mom likes
john pts/2 2009-03-28 23:04 (dev-db-server) Warning:
Don't try " who mom hates " command
当然,如果你使用su命令改变用户,则该命令(whoami)所显示的结果将随之改变。
4 随时查看系统的历史信息(曾经使用过系统的用户信息)
last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:
用户名称
tty设备号
历史登录时间日期
登出时间日期
总工作时间
$ last jason
jason pts/0 dev-db-server Fri Mar 27 22:57 still logged in
jason pts/0 dev-db-server Fri Mar 27 22:09 - 22:54 (00:45)
jason pts/0 dev-db-server Wed Mar 25 19:58 - 22:26 (02:28)
jason pts/1 dev-db-server Mon Mar 16 20:10 - 21:44 (01:33)
jason pts/0 19216820111 Fri Mar 13 08:35 - 16:46 (08:11)
jason pts/1 19216820112 Thu Mar 12 09:03 - 09:19 (00:15)
jason pts/0 dev-db-server Wed Mar 11 20:11 - 20:50 (00:39
转自: >Linux中查看总共有多少用户登录的命令是:who | wc -l,命令解释如下: 统计有多少行用wc命令加-l参数,wc命令可以统计出多少字、行、字符数,-l参数表示仅仅统计出行数。这个命令要和Linux的管道符结合使用,比如想知道一个文件有多少行可以这样用: cat /etc/passwd | wc -l 而查看当前有哪些用户登录可以用who命令,who命令的显示中一行结果就是一个已登录的用户,再加上wc -l命令就可以统计出有多少用户登录了,所以最终命令是: who | wc -l
1、添加用户首先用adduser命令添加普通用户命令: #adduser tommy //添加名tommy用户 #passwd tommy //修改密码 Changing password for user tommy New UNIX password: //输入新密码 Retype new UNIX password: //再输入新密码 passwd: all authentication tokens updated successfully 2、赋予root权限:修改/etc/sudoers 文件找面行前面注释(#)掉 ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL 修改用户使其属于root组(wheel)命令: #usermod -g root tommy 修改完毕现用tommy帐号登录用命令 su - 即获root权限进行 *** 作 二:修改/etc/sudoers 文件找面行root面添加行所示: ## Allow root to run any commands anywhere root ALL=(ALL) ALL tommy ALL=(ALL) ALL 修改完毕现用tommy帐号登录用命令 su - 即获root权限进行 *** 作 三:修改/etc/passwd 文件找行用户ID修改 0 所示: tommy:x:500:500:tommy:/home/tommy:/bin/bash修改tommy:x:0:500:tommy:/home/tommy:/bin/bash 保存用tommy账户登录直接获取root帐号权限 友情提醒:虽三看简单便般推荐使用推荐使用二下载:与本地终端当前用户相同,如你以root用户使用系统,然后用user用户登录ftp服务器,则你下载下来的文件属于root用户与root组,其中root组为root用户的主要组();属主与是哪个用户登录服务器没有关系。且读写权限为644。在下载时匿名用户是和这一样的上传:以本地用户user登录服务器,则上传的文件的用户就是user,而组也和user的主要组相同,权限为也为644;ftp(匿名用户)用户上传的文件的用户与组与ftp相同,但是权限为600欢迎分享,转载请注明来源:内存溢出
评论列表(0条)