day17-权限管理
01.知识点回顾
01.批量创建用户
批量创建用户:
awk
useradd test01;echo oldboy123.com|passwd --stdin test01
useradd test02;echo oldboy123.com|passwd --stdin test02
useradd test03;echo oldboy123.com|passwd --stdin test03拼接的过程:
[root@oldboy:~]# echo old{1..3}|xargs -n1
old1
old2
old3[root@oldboy:~]# echo old{1..3}|xargs -n1|awk '{print $1}'
old1
old2
old3[root@oldboy:~]# echo old{1..3}|xargs -n1|awk '{print "useradd "$1}'
useradd old1
useradd old2
useradd old3[root@oldboy:~]# echo old{1..3}|xargs -n1|awk '{print "useradd "$1";echo oldboy123.com|passwd --stdin "$1}'
useradd old1;echo oldboy123.com|passwd --stdin old1
useradd old2;echo oldboy123.com|passwd --stdin old2
useradd old3;echo oldboy123.com|passwd --stdin old3
[root@oldboy:~]# echo old{1..3}|xargs -n1
old1
old2
old3
[root@oldboy:~]# echo old{1..3}|xargs -n1|awk '{print "useradd "$1";echo oldboy123.com|passwd --stdin "$1}'|bash
Changing password for user old1.
passwd: all authentication tokens updated successfully.
Changing password for user old2.
passwd: all authentication tokens updated successfully.
Changing password for user old3.
passwd: all authentication tokens updated successfully.sed[root@oldboy:~]# echo old{1..3}|xargs -n1|sed -r 's#(.*)#useradd \1#g'
useradd old1
useradd old2
useradd old3[root@oldboy:~]# echo old{1..3}|xargs -n1|sed -r 's#(.*)#useradd \1;echo oldboy123.com|passwd --stdin \1#g'
useradd old1;echo oldboy123.com|passwd --stdin old1
useradd old2;echo oldboy123.com|passwd --stdin old2
useradd old3;echo oldboy123.com|passwd --stdin old3[root@oldboy:~]# echo old{1..3}|xargs -n1|sed -r 's#(.*)#useradd \1;echo oldboy123.com|passwd --stdin \1#g'|bash
Changing password for user old1.
passwd: all authentication tokens updated successfully.
Changing password for user old2.
passwd: all authentication tokens updated successfully.
Changing password for user old3.
passwd: all authentication tokens updated successfully.扩展: 随机的6位数密码 提示: 反引号
[root@oldboy:~]# echo $((RANDOM))|md5sum|cut -c1-6
09d2d3
[root@oldboy:~]# echo $((RANDOM))|md5sum|cut -c1-6
4189a4
[root@oldboy:~]# echo $((RANDOM))|md5sum|cut -c1-6
3f29b6[root@oldboy:~]# date +%N|md5sum|cut -c1-6
d580da
[root@oldboy:~]# date +%N|md5sum|cut -c1-6
c72455
[root@oldboy:~]# date +%N|md5sum|cut -c1-6
4654ec安装expect
[root@oldboy:~]# yum -y install expect
使用
[root@oldboy:~]# mkpasswd
T1iMgy&z4
[root@oldboy:~]# mkpasswd
-1Wi7Lbzt
02.权限管理
1.rwx 的含义
r read # 读取 less cat more
w write # 写入 vim sed echo
x execute # 可执行 命令
2.rwx 对应的数字
r # 4
w # 2
x # 1
3.我对于某个文件拥有什么样的权限
问题: oldboy用户对于/etc/hosts文件拥有什么权限?
[oldboy@oldboy:~]$ ll /etc/hosts
-rw-r--r-- 1 root root 158 Jun 23 2020 /etc/hosts1.我是谁
[oldboy@oldboy:~]$ ll /etc/hosts # 说明登录用户是oldboy
-rw-r--r-- 1 root root 158 Jun 23 2020 /etc/hosts
[oldboy@oldboy:~]$ whoami # 查看当前登录用户
oldboy
2.我和文件的关系是什么和文件关系有三种:a.属主 文件的创建者 主人b.属组 属于哪个小组c.陌生人
3.通过位置找到和文件的对应关系
[oldboy@oldboy:~]$ ll /etc/hosts
-rw-r--r-- 1 root root 158 Jun 23 2020 /etc/hosts
-----------
九位权限位 3位为一组
前三位: 属主
中三位: 属组
后三位: 陌生人的位置 默认普通用户不属于任何小组 只属于自己的小组内oldboy用户在在oldboy组内
4.修改权限
语法:chmod u+x 文件
前三位: user 简称 u
中三位: group 简称 g
后三位: other 简称 o
案例:chmod u+x 1.txt # 授权1.txt 属主拥有执行权限chmod u-x 1.txt # 取消属主的x权限chmod o+w 1.txt # 陌生人可以编写文件chmod g+w 1.txt # 授权组内成员可以写授权多个位置:chmod ug+x 1.txt # 授权属组和属主执行权限chmod ugo+x 1.txt# 授权所有用户执行权限chmod a+x 1.txt # 授权所有用户执行权限chmod +x 1.txt # 授权所有用户执行权限chmod -x 1.txt # 取消所有用户的x权限先清空后赋值的方式:chmod u=x 1.txt # 清空属主的权限,然后赋值x权限chmod ugo=r 1.txt# 清空所有权限 只给每个位置只读权限chmo =x 1.txt # 清空所有权限 只给每个位置执行权限[root@oldboy:~]# ll 1.txt
-rw-r--r-- 1 root root 36 Jul 18 09:05 1.txt
[root@oldboy:~]# chmod u+x 1.txt
[root@oldboy:~]# ll 1.txt
-rwxr--r-- 1 root root 36 Jul 18 09:05 1.txt[root@oldboy:~]# chmod o+w 1.txt
[root@oldboy:~]# ll 1.txt
-rwxr--rw- 1 root root 36 Jul 18 09:05 1.txt[root@oldboy:~]# chmod ugo-x 1.txt
[root@oldboy:~]# ll 1.txt
-rw-r--rw- 1 root root 36 Jul 18 09:05 1.txt
[root@oldboy:~]# chmod +x 1.txt
[root@oldboy:~]# ll 1.txt
-rwxr-xrwx 1 root root 36 Jul 18 09:05 1.txt[root@oldboy:~]# chmod -x 1.txt
[root@oldboy:~]# ll 1.txt
-rw-r--rw- 1 root root 36 Jul 18 09:05 1.txt[root@oldboy:~]# ll 1.txt
-rw-r--rw- 1 root root 36 Jul 18 09:05 1.txt
[root@oldboy:~]# chmod u=x 1.txt
[root@oldboy:~]# ll 1.txt
---xr--rw- 1 root root 36 Jul 18 09:05 1.txt[root@oldboy:~]# chmod ugo=r 1.txt
[root@oldboy:~]# ll 1.txt
-r--r--r-- 1 root root 36 Jul 18 09:05 1.txt
5.使用数字授权
重点掌握:
r 4
w 2
x 1
[root@oldboy:~]# ll 1.txt
-rw-r--r-- 1 root root 36 Jul 18 09:05 1.txt
当前的1.txt文件权限使用数字表示: 每3位的数字进行相加 644
r(4)w(2)- ======= 4+2+0 =6
r-- ======= 4+0+0 =4
r-- ======= 4+0+0 =4案例1.授权文件为rwxr-xr-x权限== 每三位相加等于755
[root@oldboy:~]# chmod 755 1.txt
[root@oldboy:~]# ll 1.txt
-rwxr-xr-x 1 root root 36 Jul 18 09:05 1.txt案例2.授权文件为rw-r--r--权限 644
[root@oldboy:~]# chmod 644 1.txt
[root@oldboy:~]# ll 1.txt
-rw-r--r-- 1 root root 36 Jul 18 09:05 1.txt案例3.授权文件权限为rw------- 600
[root@oldboy:~]# chmod 600 1.txt
[root@oldboy:~]# ll 1.txt
-rw------- 1 root root 36 Jul 18 09:05 1.txt
6.rwx 的含义
permission denied # 找到出现权限拒绝的原因01.r权限的含义
环境准备: root用户
[root@oldboy:~]# mkdir /oldboy
[root@oldboy:~]# touch /oldboy/{1..3}.txt
[root@oldboy:~]# chown oldboy.oldboy /oldboy/{1..3}.txt
[root@oldboy:~]# ll -d /oldboy/
drwxr-xr-x 2 root root 45 Jul 18 09:56 /oldboy/
[root@oldboy:~]# ll /oldboy/
total 0
-rw-r--r-- 1 oldboy oldboy 0 Jul 18 09:56 1.txt
-rw-r--r-- 1 oldboy oldboy 0 Jul 18 09:56 2.txt
-rw-r--r-- 1 oldboy oldboy 0 Jul 18 09:56 3.txt第一个窗口: root用户修改权限
[root@oldboy:~]#
[root@oldboy:~]#第二个窗口: oldboy用户 测试权限
[root@oldboy:~]# su - oldboy
Last login: Thu Jul 18 09:08:09 CST 2024 on pts/0
[oldboy@oldboy:~]$r权限对于文件的含义:
[root@oldboy:oldboy]# chmod u=r 1.txt
[root@oldboy:oldboy]# ll 1.txt
-r--r--r-- 1 oldboy oldboy 0 Jul 18 09:56 1.txt总结: r权限对于文件的作用 只读特殊: 虽然主人没有w权限但是可以强制wq!02.w权限的作用
[root@oldboy:oldboy]# chmod u=w 1.txt
[root@oldboy:oldboy]# ll 1.txt
--w-r--r-- 1 oldboy oldboy 7 Jul 18 10:02 1.txt总结w对于文件的作用: 只能用echo啥都不能干。03.x权限的作用
[root@oldboy:oldboy]# chmod u=x 1.txt
[root@oldboy:oldboy]# ll 1.txt
---xr--r-- 1 oldboy oldboy 17 Jul 18 10:07 1.txtx权限对于文件的作用: 啥都不能干总结:
对于文件来讲,最高权限是666
1.文件如果正常编辑必须得有 rw权限组合
2.文件如果可以执行必须得有r-x的组合
默认创建的文件:rw-r--r-- 644# 能不能写入内容到文件中,主要是看文件的权限。rwx对于目录的作用
环境准备:
[root@oldboy:~]# ll -d /oldboy
drwxr-xr-x 2 root root 45 Jul 18 09:56 /oldboy
[root@oldboy:~]# chown oldboy.oldboy /oldboy
[root@oldboy:~]# ll -d /oldboy
drwxr-xr-x 2 oldboy oldboy 45 Jul 18 09:56 /oldboy测试r权限对于目录的作用:啥都不能干测试w权限对于目录的作用:啥都不能干
测试x权限对于目录的作用:可以进入目录其他啥都不能干
测试rw权限: 没用
测试wx权限: 没用总结: 目录的最高权限是: 777默认创建的目录的权限是: 755 # 只有管理员才可以创建 和删除文件 其他用户只能看rwx可以在目录下进行正删改查 创建 删除 移动 7权限r-x可以在目录下查看所有的文件 5 权限# 文件的其他权限位置没有r
[oldboy@lzy oldboy]$ cat /etc/shadow
cat: /etc/shadow: Permission denied#passwd文件其他权限位置没有w权限
[oldboy@lzy oldboy]$ echo '#' >> /etc/passwd
-bash: /etc/passwd: Permission denied#etc目录其他位置必须是rwx权限才可以创建文件
[oldboy@lzy oldboy]$ touch /etc/passwd.txt
touch: cannot touch ‘/etc/passwd.txt’: Permission denied#etc目录其他位置必须是rwx权限才可以删除文件 其他位置没有w权限
[oldboy@lzy oldboy]$ rm -rf /etc/shadow
rm: cannot remove ‘/etc/shadow’: Permission denied#因为root目录其他权限位置为空,必须得有r-x才可以查看
[oldboy@lzy oldboy]$ ls /root/
ls: cannot open directory /root/: Permission denie
7.umask
作用: 决定默认创建文件和目录的权限 了解不能瞎改。
默认创建目录: 755 rwxr-xr-x root root oldboy
默认创建文件: 644 rw-r--r-- root root oldboy
通过默认的目录和文件的最高权限减去默认的umask值获得默认创建文件的权限
目录最高权限: 777
文件最高权限: 666
查看umask值:
[root@oldboy:~]# umask
0022
目录权限:777-022=755
文件权限:666-022=644测试umask
[root@oldboy:~]# umask 044
[root@oldboy:~]# umask
0044创建文件
[root@oldboy:~]# touch a.txt
[root@oldboy:~]# ll a.txt
-rw--w--w- 1 root root 0 Jul 18 11:21 a.txt创建目录
[root@oldboy:~]# mkdir b
[root@oldboy:~]# ll -d b
drwx-wx-wx 2 root root 6 Jul 18 11:21 b如果umask值为奇数,则文件创建完成后再奇数位置+1
umask 032
文件:666-032=634+010=644目录不需要加:777-032=745[root@oldboy:~]# umask 032
[root@oldboy:~]# touch a.txt
[root@oldboy:~]# mkdir b
[root@oldboy:~]# ll
total 0
-rw-r--r-- 1 root root 0 Jul 18 11:24 a.txt
drwxr--r-x 2 root root 6 Jul 18 11:24 b
8.隐藏权限
a (append 只能追加)
i ( immutable 无敌)查看文件的隐藏权限: 默认文件没有隐藏权限
[root@oldboy:~]# lsattr a.txt
-------------------- a.txt授权a.txt隐藏权限a
[root@oldboy:~]# chattr +a a.txt
[root@oldboy:~]# lsattr a.txt
-----a-------------- a.txt[root@oldboy:~]# chattr -a a.txt
[root@oldboy:~]# lsattr a.txt
-------------------- a.txti无敌的啥都不可以,只能查看
[root@oldboy:~]# chattr +i a.txt
[root@oldboy:~]# lsattr a.txt
----i--------------- a.txt[root@oldboy:~]# lsattr /etc/passwd
----i--------------- /etc/passwd
[root@oldboy:~]# chattr -i /etc/passwd
[root@oldboy:~]# lsattr /etc/passwd
-------------------- /etc/passwd其他安全访问软件: waf软件
9.12 位权限之其他 3 位权限
[oldboy@oldboy:~]$ ll -d /etc
drwxr-xr-x 122 root root 8192 Jul 18 11:38 /etc
[oldboy@oldboy:~]$ #在oldboy用户删除/etc/a.txt
[oldboy@oldboy:~]$ #授权etc目录 其他权限位置 rwx权限
[oldboy@oldboy:~]$ #修改etc属主属组为oldboy
[oldboy@oldboy:~]$ #通过sudo提权oldboy执行rm的时候拥有root的权限suid # 作用是给一个命令属主权限加s权限,则所有用户执行命令时候拥有属主的权限。
粘滞位 # 可以让用户自己管理自己的文件#所有用户可以在/tmp下创建文件,可以删除自己创建的文件,不可以删除其他人创建的文件。
[root@oldboy:~]# ll -d /tmp
drwxrwxrwt 7 root root 180 Jul 18 11:47 /tmp
10.知识点小结
重点:
1.当前登录用户和文件的关系,通过关系找到对应的权限。
[oldboy@oldboy:~]$ ll /etc/hosts
-rw-r--r-- 1 root root 158 Jun 23 2020 /etc/hosts2.rwx对应数字 4213.修改文件权限ugo方式chmod ugo+x filechmod ugo-x filechmod u=x filechmod -x filechmod a+x file数字授权chmod 644 filechmod 600 filechmod 755 file递归授权: -R[root@oldboy:~]# chmod -R 600 /code/[root@oldboy:~]# ll -d /code/drw------- 3 root root 79 Jul 17 11:59 /code/[root@oldboy:~]# ll /code/total 16-rw------- 1 root root 15 Jul 17 11:51 1.txt-rw------- 1 root root 2 Jul 17 11:38 2.txt-rw------- 1 root root 15 Jul 17 11:59 index.html-rw------- 1 root root 15 Jul 17 11:47 index.txtdrw------- 2 root root 32 Jul 17 11:51 test
注意:禁止 chmod -R 777 /code # 业务代码4.rwx对于文件的含义r 可读w 不能干x 不能干rw表示可读写rx表示可执行rwx 表示可读写可执行 shell脚本才用,文件中必须是命令。
5.rwx对于目录的含义rwx可以进入到目录 创建 删除 改名等操作。rx 表示对目录下所有的文件可读
6.umask 了解
7.隐藏权限a ilsattr 查看隐藏权限chattr 授权
8.suid 粘滞位 t # 了解下次内容: 定时任务