测试人学linux

《Linux从入门到精通》之用户与用户组管理、进程管理

2018-03-16  本文已影响12人  Tomandy

添加用户

linux为每一个用户启动一个进程,然后由这个进程接受用户的各种请求,在创建用户时,需限定其权限。把几个用户归在一起,这样的组称为“用户组”。
默认情况下,不带-m参数的useradd命令不会为新用户建立主目录,这类用户可以登录到系统的shell,但是不能登录到图形界面。

useradd.png
用户列表.png
Linux所作的一切最终都反应到配置文件中,所有的用户信息登记在/etc/passwd文件中,而/etc/shadow文件则保存着用户的登录密码。etc/group文件保存系统中的组信息。
使用参数-g可以指定用户所属的组,如下建立用户tom,并指定属于tomgrp组,注意需先使用groupadd命令建立用户组。不带-g参数默认建立一个与用户名同名的组。
useradd-g.png
useradd -s用于指定用户登录所使用的shell。可以在/bin目录下找到特定的shell,常用的有BASH、SH等。如果不指定-s参数,默认使用SH登录系统。以下命令指定tom用户登录后使用bash作为shell。
$useradd -s /bin/bash tom

记录用户操作历史:history

history命令仅在bash中适用,用户操作历史信息存放在用户主目录的.bash_history中,该文件默认可以存储1000条命令记录。

history.png
管理员需要查看用户的历史命令的话,可以切换到对应用户目录,然后查看.bash_history文件。

删除用户:userdel

userdel用于删除用户,该命令默认不会删除用户的主目录,除非加上-r选项。

$userdel tom    //删除用户但不删除用户主目录

$userdel -r tom //删除用户且删除用户主目录

管理用户账号:usermod

可以使用usermod命令修改已有的用户账户,常用选项如下表所示。

选项 含义
-d 修改用户主目录
-e 修改账号的有效期限,以MM/DD/YY表示
-g 修改用户所属组
-l 修改用户名称
-s 修改用户登录后所使用的shell

以下命令将tom改名为mike,主目录改为/home/mike,并设置账号有效期至2018/12/31。

usermod.png

查看用户信息:id

id命令用于查看用户的uid,gid及所属组。不加任何参数id命令显示当前用户的信息。

id.png

用户口令文件详解

/etc/shadow存放用户口令,文件每一行代表一个用户,以冒号分隔每个字段。

shadow文件.png
以上各个字段的含义如下:

在shadow文件中,绝对日期是从1970年1月1日至今的天数,一般使用usermod -e来设定过期字段。


sudo 和su命令的区别

不带任何参数的su命令会将用户提升至root权限,需提供root口令。通过su所获得特权一直持续到使用exit命令退出为止。Ubuntu不允许使用su。
sudo 命令比 su 命令更安全. su 命令需要其他用户也知道 root 密码, 而 sudo 只需要配置 etc/sudoers 即可, 而且可以随时删除特定用户的权限,sudo命令使用的是当前用户的密码。
sudo 仅仅是提高当前执行命令的权限. 而 su 命令可以执行 root 的所有权限. 所以在一定意义上讲, 使用su 命令是很危险的。


监控进程:ps        top

ps aux命令用于显示当前系统上运行的所有进程的信息。ps lax命令提供父进程ID和谦让度,但不会显示进程属主的用户名。

ps-aux.png
ps-lax.png
top命令用于即时跟踪当前系统进程的情况,默认情况下每10s更新一次。
top.png

查看占用文件的进程:lsof

lsof命令可以查看某个特定的文件被哪些进程使用。

$lsof test.txt

向进程发送信号:kill

kill命令用于向进程发送一个信号,可以使用-l选项显示所有的信号及其编号。

kill-l.png
常用的信号有以下几个。
信号编号 信号名 用途描述
0 EXIT 程序退出时收到该信号
1 HUP 挂起
2 INT 中断
3 QUIT 退出
9 KILL 杀死
11 SEGV 段错误
15 TERM 软件终止

默认情况下,kill命令向进程发送TERM信号。

$kill 12345
等价于
$kill -TERM 12345

kill发送的部分信号可以被程序捕捉,从而使命令失效,比如一个在一个shell脚本里加入 trap "" TERM ,可以用于忽略TERM信号。
但KILL信号永远不能被程序捕捉,KILL可以在内核级别杀死一个进程。比如杀死id为12345的进程。

$kill -KILL 12345
或者

$kill -9 12345

调整进程优先级:nice renice

通过nice命令的帮助,用户可以设置和改变进程的优先级。提高一个进程的优先级,内核会分配更多CPU时间片给这个进程。默认情况下,进程以0的优先级启动。进程优先级可以通过top命令显示的NI(nice value)列查看。进程优先级值的范围从-20到19。值越低,优先级越高。
通过给定的优先值启动一个程序:nice <优先值> <进程名>
renice命令类似nice命令,使用这个命令可以改变正在运行的进程优先值。用户只能改变属于他们自己的进程的优先级。
renice -n -p - 改变指定进程的优先值。
renice -u -g - 通过指定用户和组来改变进程优先值。

上一篇下一篇

猜你喜欢

热点阅读