1.1 用户配置sudo权限(visudo)

sudo的工作过程如下:

1,当用户执行sudo时,×××会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限

2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认

3,若密码输入成功,则开始执行sudo后续的命令

4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)

5,若欲切换的身份与执行者的身份相同,也不需要输入密码

visudo使用vi打开/etc/sudoers文件,但是在保存退出时,visudo会检查内部语法,避免用户输入错误信息

visudo需要root权限

1)使用visudo命令打开sudo配置文件

# visudo

2)使用100gg快捷键跳转至第100行

image20220517202312619.png

3)配置介绍

配置 含义
root 表示有权限使用sudo命令的用户
ALL=(ALL) 第一个ALL表示可执行的主机,第二个ALL表示可切换的用户
ALL 表示可执行的权限

4)使用实例

# oldboy用户可以在所有主机上切换任意用户,并且可以执行所有命令
oldboy ALL=(ALL) ALL

# oldboy用户可以在所有主机上切换oldboy01和oldboy02用户,并且只能执行ls和ip命令
oldboy ALL=(oldboy01,oldboy02) /usr/bin/ls,/usr/sbin/ip

1.2 文件权限

1.2.1 查看文件信息

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的权限以及文件所属的用户和组

其中除去开头的 - 字符后面的9位字符便是文件的权限

# ls -l /root
-rw-------

1.2.2 文件权限介绍

在Linux中,权限位共9个字符。去掉开头的文件类型,每3个相邻的字符位一组。前3位表示所属用户权限,中3位表示所属用户组权限,后3位表示其他用户权限。

1)文件权限:

权限 八进制数 含义
r 4 read 代表可读权限
w 2 write 代表可写权限(删除目录下文件需要该权限)
x 1 execute 代表可执行权限
- 0 代表没有权限

2)特殊权限位

权限 八进制数 含义
suid 4000 让普通用户以root或其他的用户角色运行只有root或其他账号才能运行的命令或程序
sgid 2000 执行命令的用户可以获得该程序执行期间所属组的权限
sticky 1000 可以往里面放内容但是却不能对这个目录进行操作

1.3 chmod 修改文件权限

参数:

参数 含义
u (user) 用户位
g (group)用户组位
o (other)其他用户位
a (all)所有用户位,默认为对所有用户位修改
- 减少权限
+ 增加权限
= 赋予新的权限

1)对单独权限位修改

# 对用户权限位增加权限
chmod u+r oldboy01.txt  

# 对用户组权限位减少权限
chmod g-w oldboy01.txt 

# 对其他用户权限位赋予权限
chmod o=x oldboy01.txt      

2)对所有权限位修改

对用户权限位赋予rwx权限
对用户组权限位赋予rx权限
对其他用户权限位赋予rx权限

# 以字符方式授权
chmod u=rwx,g=rx,o=rx oldboy01.txt

# 以数字的方式授权,权限对应八进制可相加
chmod 755 oldboy01.txt