3.Linux的用户组管理以及进程权限


用户和组

uid(用户id)gid(组id)
/etc/passwd 看到用户

root:x\:0:0:root:/root:/bin/bash
用户名:密码:uid:gid:描述信息:主目录:默认shell

x表示设置密码但不是真正的密码,真正的保存在shadow里面,\表示转义,因为markdown语法问题,可以忽略

uid
0 超级用户
1-499 系统用户(伪用户,无法登陆,保留给系统)1-99系统自己创建的,100-499给有系统账号需求的账户
500-65535 普通用户

/etc/shadow
用户名:加密的密码(sha512):最后一次修改时间:最小修改时间间隔:密码有效期:密码过期后宽限时间:账号失效时间:保留字段

/etc/group 用户组配置文件
组名:组密码:组id:组用户

/etc/gshadow 组密码
组名:加密密码:组管理员:组附加用户list

# 新建用户到一个新的组
useradd haha
groupadd users1 
usermod -G users1 haha   //将users1作为haha的附加组
groups haha   //查看haha所在组
userdel -r haha   //删除用户

UGO权限

r = 4
w = 2
x = 1

  • = 0

rw- r-- r--
属主 属组 其他人
U G O

chmod [权限数字] [目标文件] 修改文件权限

chmod u+x [目标文件] 给目标文件的u属添加x权限

chown :[组名] [目标文件] 修改文件所属组

chown [属主]:[属组] [目标文件] 把文件过渡给某个人某个组

groupadd [组名] 添加组
groupadd users2 -g 9008 给组添加gid为9008

groupmod [新组名] [旧组名] 修改组名

groupdel [组名] 删除一个组

gpasswd [组名] 给组设置密码

gpasswd -A [用户名] [组名] 将用户设置为组管理员

gpasswd -a test2 users1 把test2拉到users1组里

进程管理

进程和程序

进程:正在执行的程序或者命令,都有运行的实体,即在内存中有具体的内存地址,一定会占用操作系统的资源
程序:程序员写出来的东西

进程的类型
守护进程:系统引导过程中的启动进程,和终端没关系
前台进程:和终端有关系,通过终端启动

< 表示高优先级的进程
N 表示低优先级的进程

  • 属于某个前台组的进程
    s 某个会话的leader进程
    l 线程加锁

进程状态
R 运行
S 睡眠
D 磁盘睡眠
T 停止
Z 僵尸进程
X 死亡进程

ps -aux 查看进程
a = 和终端相关的进程
u = 以用户为中心的进程
x = 和终端无关的进程

ps -ef
e = 显示所有进程
f = 显示完整格式的程序信息

查看指定进程的id
cat /run/sshd.pid
ps aux | grep sshd
pgrep -l sshd
pidof sshd

pstree 查看进程树

top动态显示系统相关进程
top 直接显示
top -d 1 每隔1s刷新一次
top -d 1 -p [进程id] 每隔1s刷新目标进程(进程id表示)
top -d 1 -u root 查看root用户的进程

信号控制

kill -l 查看所有信号控制
kill -1 [进程id] 给进程发送重新装载信号
kill -9 [进程id] 发送关闭进程信号

优先级

进程优先级0-99,实时优先级,数字越小越优先

静态优先级00-139 数字越小越优先

nice值 -20-19
默认启动nice为0,优先级120

ps axo pid,command,nice --sort=nice   通过nice排序显示pid

sleep 60 &
睡60s,放后台,告诉我pid

renice -20 [进程号] 调整nice值(优先级)

作业控制

screen -S 'ping [www.google.com](http://www.google.com/)'   后台执行ping命令
screen -list   列出所有后台执行的命令
pkill screen   删除所有后台执行的进程
nohup ./xxx.sh &   把程序放后台运行并反馈进程号