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

添加用户

linux为每一个用户启动一个进程,然后由这个进程接受用户的各种请求,在创建用户时,需限定其权限。把几个用户归在一起,这样的组称为“用户组”。

默认情况下,不带-m参数的useradd命令不会为新用户建立主目录,这类用户可以登录到系统的shell,但是不能登录到图形界面。

b4beb658f309

useradd.png

b4beb658f309

用户列表.png

Linux所作的一切最终都反应到配置文件中,所有的用户信息登记在/etc/passwd文件中,而/etc/shadow文件则保存着用户的登录密码。etc/group文件保存系统中的组信息。

使用参数-g可以指定用户所属的组,如下建立用户tom,并指定属于tomgrp组,注意需先使用groupadd命令建立用户组。不带-g参数默认建立一个与用户名同名的组。

b4beb658f309

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条命令记录。

b4beb658f309

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。

b4beb658f309

usermod.png

查看用户信息:id

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

b4beb658f309

id.png

用户口令文件详解

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

b4beb658f309

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和谦让度,但不会显示进程属主的用户名。

b4beb658f309

ps-aux.png

b4beb658f309

ps-lax.png

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

b4beb658f309

top.png

查看占用文件的进程:lsof

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

$lsof test.txt

向进程发送信号:kill

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

b4beb658f309

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 - 通过指定用户和组来改变进程优先值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值