11.用户和权限
简化的启动流程
- 1.开机BIOS自检测
- 2.MBR引导
- 3.grub引导菜单
- 4.加载内核kernel
- 5.启动init进程
- 6.读取inittab文件,执行rc sysinit.rc等脚本
- 7.启动mingetty,进入系统登录界面
环境变量
变量=值
$PATH:环境变量
set:显示当前设置的所有shell临时变量(变量=值)
env:显示shel所有的环境变量(export 变量)
alias 别名=’命令’:通过别名执行命令
unalias 别名:取消别名
unset 变量:取消临时变量
export -n 环境变量:取消环境变量
系统的环境配置文件:
- /etc/profile
普通用户环境配置文件:
- .bashrc
- .bash_profile
提示符环境变量:PS1
信息:
1 | \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" |
颜色:
格式:[\e[F;Bm]……..[\e[0m]
| F | B | 颜色 |
|---|---|---|
| 30 | 40 | 黑色 |
| 31 | 41 | 红色 |
| 32 | 42 | 绿色 |
| 33 | 43 | 黄色 |
| 34 | 44 | 蓝色 |
| 35 | 45 | 紫红色 |
| 36 | 46 | 青蓝色 |
| 37 | 47 | 白色 |
例如:
1 | PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\\$" |
1 | export PS1="\[\[\e[32;1m\]\u\[\e[36m\]@\[\e[35m\]\h \[\e[34m\]$(pwd) \[\e[0m\]\]\$ " |
恢复用户级的环境变量
1 | # 主要是.bashrc和.bash_profile |
用户管理
操作系统用户分类:
- root:管理员,拥有最高权限。UID:0
- 普通用户:普通用户,拥个人用户的最高权限。UID:1000+
- 进程用户:启动某UID:201-999
- 系统用户:启动进程必须使用一个用户来运行,该用户不需要登录,只是为了运行程序而存在。UID:1-200
/etc/passwd:
用户名,密码占位,UID,GID,简介,启动初始目录,默认shell程序(/bin/bash,/sbin/nologin)
/etc/group:
组名,密码占位,GID,组列表。
id:查看用户信息
su:新的用户,环境是指前的用户(比如之前用户的export的环境变量,可使用(如果还是当前bash))
su -:新用户与新用户的环境
sudo -i:root用户体验卡,与su -同
/etc/sudoers(visudo):sudo命令的主要配置文件,例如
组:%wheel ALL=(ALL:ALL) ALL,主机(以任何主机),用户(以任意其他用户),组(以任何组),命令(执行任何命令)
用户:user01 ALL=(ALL) ALL
user01 ALL=(ALL) NOPASSWD: ALL:提权不需要密码
/etc/sudoers.d/user01:对user01用户的一对一权限设置
例如:
1 | which cat # 查看路径 |
- 堡垒机(跳板机):先在这台登录用户再跳转到要操作的实体机,就可以记录用户操作日志信息信息
查看当前用户拥有的提权的命令
1 | sudo -l |
/etc/login.defs:用户默认选项(UID范围,密码过期。。。)
useradd
-r:系统用户
-d:家目录
-u:uid
-M:不创建家目录
passwd
echo “mypasswd” | passwd –stdin myuser # 修改myuser的密码
生成密码:
1 | openssl rand -base64 14 |
userdel:删除用户信息,家文件夹/home中文件还在
userdel -r:删除用户信息与用户文件夹
usermod
-a(append):加G
-c(comment):用户描述
-d(home):指定用户主目录
-g(gid):指定用户主要组(id和名称都行)
-G(groups):补充组;-G:重新定义组的列表(wheel,hr)来去除用户附加组
-L(lock):锁定用户账户
-m(move):与d移动家
-s(shell):提供交互的shell(/bin/bash,/sbin/nologin)
-U(unlock):解锁
usermod -s /sbin/nologin 主要是不提供shell服务,登录系统服务还是可以的。
groupadd:创建组(GID范围login.defs:GID_MIN - GID_MAX)
-g(gid):指定GID
-r(system):创建系统专用组(GID范围login.defs:SYS_GID_MIN - SYS_GID_MAX)
groupmod
-n(name):为组改新名称
-g(gid):改指定新组id
groupdel
newgrp+组名:暂时将该用户的主组为‘附属的一个组’,重登回复
gpasswd -d:删除用户指定附加组(对象是组名,选项对象是要移除用户)
/etc/shadow:
用户名1
密码(加密)2
最后一次密码更改日期3
密码最短使用期限(想要更改密码的间隔)4
密码最长使用期限(必须更改密码的期限)5
密码过期提前警告的天数6
密码过期后的宽限期(例如:会员卡过期宽限2天,能用,但2天后不续不行)7
账户过期日期8
保留字段9
chage
-m(mindays):密码想要更改的密码间隔4
-M(maxdays):密码过期日期5
-W(warndays):警告日期6
-I(inactive):宽限期7
-E(expiredate):账户过期日期8
-d(lastday):设置密码最后修改日期(设置重置密码的有效期起点)3
-l(list):显示用户账户密码信息
chage -d 0 用户:下次用户一定要更改密码
像过期这种距离日期的可以:
chage -E $(date -d "+30 days" +%F) 用户
MD5校验
1 | # 生成md5值 |
1 | # 路径问题,md5sum -c 校验的文件是相对路径 |
文件权限
sed批量创建用户
1 | # 添加 |
改变文件所有者和所有组
1 | chown user1:group1 file |
权限:
r:4
w:2
x:1
切换文件权限
- u,g,o,a
- +,-,=
- rwx
例如:
1 | chmod u+r test.txt |
特殊权限:
u+s(4):以拥有文件的身份执行文件(文件),例如root文件的rm命令,加上这个其他用户执行该rm命令相当于root执行
g+s(2):以拥有文件的组身份执行文件(文件)
该目录下创建的文件组为该组(目录)o+t(1):其他人在该目录下只能删除自己的文件(目录)
S:不存在可执行权限
s:特殊
1 | chmod u+s test.txt |
umask:限制创建文件/目录权限
配置文件(/etc/login.defs <– /etc/bashrc <– ~/.bashrc)
umask 022:
- 逻辑减,777 - 022=755,目录默认权限
- 755 - 111 = 644,文件默认权限(就是文件还要去掉一个可执行权限)
隐藏权限
- i:谁都无法修改
- a:只可以>>追加
1 | lsattr test.txt # 查看隐藏权限 |





