day018-Linux基础-文件权限

4次阅读
没有评论

2026年3月31

知识点回顾

1.用户创建过程
执行useradd test
系统创建用户test 并创建家目录/home/test
将/etc/skel家模板文件复制到/home/test
将复制过去的文件修改属主属组
2.修改属主属组
chown 用户.用户组 文件  #修改属主属组
chown 用户 文件  #只修改属主
chown .用户组 文件 #只修改属组
chown -R 用户.用户组 文件 #递归修改属主属组
3.用户切换su
管理员切换普通用户 
su - 用户
无需密码
普通用户切换到管理员
su - root
输入root密码
普通用户切换到普通用户
su - 用户
输入用户密码

不加-和加-的区别
加-自动切换到用户家目录
不加-需手动属性配置,手动进入加目录
4.sudo提权
作用给普通用户授予root权限
/etc/sudoers
101行
用户 ALL=(ALL) ALL,命令绝对路径,!排查某个命令
拒绝root远程登录
/ssh/sshd_config
39行
yes改为no
00扩展:批量创建用户
批量创建用户方法1:直接复制粘贴执行
teset01-test10创建10个用户
useradd test01
useradd test02
useradd test03

[root@oldboy ~]# useradd test01
[root@oldboy ~]# useradd test02
[root@oldboy ~]# useradd test03
[root@oldboy ~]# grep 'test' /etc/passwd
test01:x:2006:2006::/home/test01:/bin/bash
test02:x:2007:2007::/home/test02:/bin/bash
test03:x:2008:2008::/home/test03:/bin/bash
方法2:写入文件后|bash执行
[root@oldboy ~]# cat 1.txt 
useradd test01
useradd test02
useradd test03
[root@oldboy ~]# cat 1.txt |bash

方法3:序列拼接
[root@oldboy ~]# echo 'useradd oldboy'{1..3}
useradd oldboy1 useradd oldboy2 useradd oldboy3
[root@oldboy ~]# echo 'useradd oldboy'{1..3}|xargs -n2
useradd oldboy1
useradd oldboy2
useradd oldboy3
[root@oldboy ~]# tail -3 /etc/passwd
oldboy1:x:2015:2015::/home/oldboy1:/bin/bash
oldboy2:x:2016:2016::/home/oldboy2:/bin/bash
oldboy3:x:2017:2017::/home/oldboy3:/bin/bash

其他:sed awk拼接
[root@oldboy ~]# echo oldboy{1..2}|xargs -n1|sed -r 's#(.*)#useradd \1#g'
useradd oldboy1
useradd oldboy2

[root@oldboy ~]# echo oldboy{1..2}|xargs -n1|awk '{print "useradd "$1}'
useradd oldboy1
useradd oldboy2
01.权限管理
1.rwx含义
r   #read 读取 cat less head tail
w   #write 写 vim echo sed
x   #excute 执行 文件中存在的可执行命令称为脚本
2.查看文件拥有的权限?
九位权限位:rw-r--r--
rw-r--r-- 1 root   root 45 Mar 31 02:57 1.txt
#1.txt的主人是root用户、属于root小组

三位为一组:
前三位:表示主人的权限
中三位:表示小组的权限
后三位:陌生人的权限

rw-r--r-- 1 root   root 45 Mar 31 02:57 1.txt
1.我是谁   #当前登录用户
2.你和文件的关系   #root管理员是1.txt的主人
3.通过关系找到对应的权限   #主人是前三位权限rw-  可读可写 已经是文件的最高权限。

当前用户是oldboy、和a.txt关系是陌生人、对应的权限位置后三位 r--
[oldboy@oldboy ~]$ ll
total 0
-rw-r--r-- 1 root root 0 Mar 31 03:20 a.txt
3.rwx对应的数字
r:4
w:2
x:1
-:0
rw-r--r-- #数字表示为644、每三位权限相加
rw- 4+2+0=6 #主人的权限就是6
r-- 4       #属组的权限就是4
r-- 4       #陌生人的权限是4

777权限:rwxrwxrwx
755权限:rwxr-xr-x
600权限:rw-------
4.0修改权限-字母法
chmod
语法结构:
        ugo表示方式
        u   #表示主人
        g   #表示属组
        o   #表示陌生人
        chmod u+x file  #给主人加x权限
        chmod u-x file  #给主人减x权限
        chmod a+w file  #给所有位置增加w权限
        chmod ugo-x file #给所有位置减x权限
        chmod uo+w file #给属主和陌生人增加w权限
        chmod a=r file  #所有位置只有r权限
案例1:给1.txt的主人增加x权限
[root@oldboy ~]# chmod u+x 1.txt
[root@oldboy ~]# ll
total 0
-rwxr--r-- 1 root root 0 Mar 31 03:26 1.txt
案例2:给1.txt主人减x权限
[root@oldboy ~]# ll
total 0
-rw-r--r-- 1 root root 0 Mar 31 03:26 1.txt
案例3:给陌生人增加w权限
[root@oldboy ~]# chmod o+w 1.txt 
[root@oldboy ~]# ll
total 0
-rw-r--rw- 1 root root 0 Mar 31 03:26 1.txt
案例4:给所有位增加x权限ugo+
[root@oldboy ~]# chmod ugo+x 1.txt 
[root@oldboy ~]# ll
total 0
-rwxr-xrwx 1 root root 0 Mar 31 03:26 1.txt
案例5:给所有的位置授权r权限ugo=
[root@oldboy ~]# chmod ugo=r 1.txt 
[root@oldboy ~]# ll
total 0
-r--r--r-- 1 root root 0 Mar 31 03:26 1.txt
案例6:给所有位置增加x权限 只能x
[root@oldboy ~]# chmod +x 1.txt
[root@oldboy ~]# ll
total 0
-r-xr-xr-x 1 root root 0 Mar 31 03:26 1.txt
案例7:给所有的位置增加w
[root@oldboy ~]# chmod a+w 1.txt
[root@oldboy ~]# ll
total 0
-rwxrwxrwx 1 root root 0 Mar 31 03:26 1.txt
4.1修改权限-数字法
数字法授权:
        chmod 644 file #授权文件644权限 rw-r--r--
案例1:授权文件权限r-xr–r–权限
[root@oldboy ~]# chmod 544 1.txt 
[root@oldboy ~]# ll
total 0
-r-xr--r-- 1 root root 0 Mar 31 03:26 1.txt
案例2:授权文件rw——-权限
[root@oldboy ~]# chmod 600 1.txt 
[root@oldboy ~]# ll
total 0
-rw------- 1 root root 0 Mar 31 03:26 1.txt
案例3:授权文件rw-rw-rw-
[root@oldboy ~]# chmod 666 1.txt 
[root@oldboy ~]# ll
total 0
-rw-rw-rw- 1 root root 0 Mar 31 03:26 1.txt
案例4:授权文件rwxrwxrwx权限(危险不能用)
[root@oldboy ~]# chmod 777 1.txt 
[root@oldboy ~]# ll
total 0
-rwxrwxrwx 1 root root 0 Mar 31 03:26 1.txt
扩展:递归授权(危险不能用-R)
[root@oldboy ~]# tree data/
data/
└── 1.txt

0 directories, 1 file
[root@oldboy ~]# chmod -R 777 data/
[root@oldboy ~]# ll -d data/
drwxrwxrwx 2 root root 19 Mar 31 03:42 data/
[root@oldboy ~]# ll data/
total 0
-rwxrwxrwx 1 root root 0 Mar 31 03:42 1.txt
5.rwx对文件的含义
环境准备:
root用户执行
[root@oldboy ~]# ll /oldboy/
total 4
-rw-r--r-- 1 root root 4 Mar 31 03:46 1.txt
-rw-r--r-- 1 root root 0 Mar 31 03:45 2.txt
-rw-r--r-- 1 root root 0 Mar 31 03:45 3.txt

[root@oldboy ~]# cat /oldboy/1.txt 
pwd

[root@oldboy ~]# chown -R oldboy.oldboy /oldboy/
[root@oldboy ~]# ll /oldboy/
total 4
-rw-r--r-- 1 oldboy oldboy 4 Mar 31 03:47 1.txt
-rw-r--r-- 1 oldboy oldboy 0 Mar 31 03:45 2.txt
-rw-r--r-- 1 oldboy oldboy 0 Mar 31 03:45 3.txt
案例:在oldboy用户进行测试rwx权限
r权限:对于文件只能读 cat head tail vim
#注意对于主人来讲,文件只有r权限,正常不能写入内容到文件,但是可以强制写入
[root@oldboy ~]# chmod u=r /oldboy/1.txt 
[root@oldboy ~]# ll /oldboy/1.txt 
-r--r--r-- 1 oldboy oldboy 4 Mar 31 03:47 /oldboy/1.txt

w权限:对于文件 啥权限都没有
[root@oldboy ~]# chmod u=w /oldboy/1.txt 
[root@oldboy ~]# ll /oldboy/1.txt 
--w-r--r-- 1 oldboy oldboy 4 Mar 31 03:47 /oldboy/1.txt

x权限:对于文件 啥权限都没有
[root@oldboy ~]# chmod u=x /oldboy/1.txt 
[root@oldboy ~]# ll /oldboy/1.txt 
---xr--r-- 1 oldboy oldboy 4 Mar 31 03:47 /oldboy/1.txt


总结:
r   #对于文件只读的权限可以查看内容 cat less head tail vim..
rw  #正常往文件中写入内容的权限 文件的最高权限
r-x #文件可执行
rwx #对于脚本文件最高权限
6.rwx对目录的含义
root 管理修改/oldboy属主和属组为oldboy
[root@oldboy ~]# chown oldboy.oldboy /oldboy/
[root@oldboy ~]# ll -d /oldboy/
drwxr-xr-x 2 oldboy oldboy 45 Mar 31 03:47 /oldboy/

r权限:啥都不能干
[root@oldboy ~]# chmod u=r /oldboy/
[root@oldboy ~]# ll -d /oldboy/
dr--r-xr-x 2 oldboy oldboy 45 Mar 31 03:47 /oldboy/

w权限:啥都不能干
[root@oldboy ~]# chmod u=w /oldboy/
[root@oldboy ~]# ll -d /oldboy/
d-w-r-xr-x 2 oldboy oldboy 45 Mar 31 03:47 /oldboy/

x权限:控制是否能进入目录
[root@oldboy ~]# chmod u=x /oldboy/
[root@oldboy ~]# ll -d /oldboy/
d--xr-xr-x 2 oldboy oldboy 45 Mar 31 03:47 /oldboy/

对于目录的rwx权限总结:
r-x #可以进入到目录、可以查看文件的详细信息、不能删除、不能改名
    #对文件可读、文件必须有r权限、上级目录必须是r-x权限

rwx #可以在当前的目录下进行创建、删除、改名的操作。

day018-Linux基础-文件权限

题目:下面命令没权限原因及如何解决

1.echo ## >> /etc/passwd
后三位没有w权限
2.rm -f /etc/hosts
后三位/etc/没有rwx
3.touch /etc/oldboy.txt
后三位/etc/没有rwx
4. cd /root
后三位root没有x权限
5.mkdir /root/oldboy
后三没有rwx权限
6.cat /etc/message
后三位没有r权限
7.rm -rf /mnt
后三位没有rwx权限
7.umask
作用:控制默认创建目录和文件的权限、禁止修改(了解)
umask默认:022
目录默认权限:目录的最大权限减去umask值
777
-022
=755 #系统默认创建目录权限

文件默认权限:文件的最大权限减去umask值
666
-022
=644 #创建文件默认权限

#企业中所有的目录给最大权限755、文件最大644
chmod -R 777 /www #禁止使用的


如果umask值带奇数,那么文件权限相减后需要再奇数位+1
umask 032
文件
666
-032
=634
+010
=644

umask 052
666
-052
=614
+010
=624

#对于目录有奇数位正常相减即可,不需要家
[root@oldboy ~]# umask 052
[root@oldboy ~]# touch 1.txt
[root@oldboy ~]# ll
total 0
-rw--w-r-- 1 root root  0 Mar 31 04:19 1.txt

[root@oldboy ~]# mkdir oldboy
[root@oldboy ~]# ll
total 0
-rw--w-r-- 1 root root  0 Mar 31 04:19 1.txt
drwx-w-r-x 2 root root  6 Mar 31 04:20 oldboy
8.隐藏权限
i   #给文件上锁、啥都不能干即使是root 啥都不能干 不能删除 不能移动 不能修改 只能看
a   #可以往文件中追加新的内容、啥都不能干 不能删除 不能移动 不能修改

lsattr 1.txt #查看隐藏权限
chattr +a 1.txt #授予a权限
chattr -a 1.txt #减去a权限
案例1:查看隐藏权限、默认空的
[root@oldboy ~]# lsattr 1.txt 
-------------------- 1.txt
案例2:授权给1.txt a权限
[root@oldboy ~]# chattr +a 1.txt 
[root@oldboy ~]# lsattr 1.txt 
-----a-------------- 1.txt
[root@oldboy ~]# echo aa >> 1.txt
[root@oldboy ~]# cat 1.txt 
aa
案例3:减去a权限
[root@oldboy ~]# chattr -a 1.txt
[root@oldboy ~]# lsattr 1.txt 
-------------------- 1.txt
案例4:给1.txt增加i权限
[root@oldboy ~]# chattr +i 1.txt
[root@oldboy ~]# lsattr 1.txt 
----i--------------- 1.txt
[root@oldboy ~]# ll
total 4
-rw--w-r-- 1 root root  3 Mar 31 04:31 1.txt
drwxrwxrwx 2 root root 19 Mar 31 03:42 data
drwx-w-r-x 2 root root  6 Mar 31 04:20 oldboy
[root@oldboy ~]# rm -rf 1.txt
rm: cannot remove '1.txt': Operation not permitted
[root@oldboy ~]# echo aa >>1.txt 
-bash: 1.txt: Operation not permitted


#企业中如果无法对一个文件进行增删改查
1.需要查看隐藏权限
2.安全软件控制文件权限
注意:自己不要轻易给重要的文件加隐藏权限
9.特殊权限(了解)
12位权限位
suid    #用户执行命令的时候拥有属主的权限 chmod u+s 文件名 chmod 4644 文件名
sgid    #用户执行命令的时候拥有属组的权限 chmod g+s 文件名或目录 chmod 2755 目录
粘滞位   #黏住 chmod o+t 目录名 chmod 1777 目录名

---------------------------------
[oldboy@oldboy ~]$ ll /etc/a.txt 
-rw--w-r-- 1 root root 0 Mar 31 04:43 /etc/a.txt
[oldboy@oldboy ~]$ cat /etc/a.txt 
[oldboy@oldboy ~]$ rm -rf /etc/a.txt 
rm: cannot remove '/etc/a.txt': Permission denied
[oldboy@oldboy ~]$ ll -d /etc/
drwxr-xr-x 128 root root 8192 Mar 31 04:43 /etc/

#oldboy用户删除/etc/a.txt 的方案
方案1.在/etc/后三位rwx权限
方案2.sudo提权 oldboy用户的rm命令进行提权
方案3.给rm命令授权suid权限
[root@oldboy ~]# ll /usr/bin/rm
-rwxr-xr-x 1 root root 67840 Apr 21  2022 /usr/bin/rm
[root@oldboy ~]# chmod u+s /usr/bin/rm
[root@oldboy ~]# ll /usr/bin/rm
-rwsr-xr-x 1 root root 67840 Apr 21  2022 /usr/bin/rm

day018-Linux基础-文件权限

系统创建共享目录、任何用户都可以在目录里面创建和删除文件。只能管理自己的文件
[root@oldboy ~]# mkdir /data
[root@oldboy ~]# chmod 777 /data
[root@oldboy ~]# ll -d /data
drwxrwxrwx 2 root root 6 Mar 31 04:50 /data
[root@oldboy ~]# touch /data/root.txt

suid    4
sgid    2
粘滞位   1
重点:
1.rwx含义
2.rwx对应的数字421
3.授权方式ugo 数字授权--->chmod
4.rwx对于文件作用
5.rwx对于目录的作用
正文完
 0
评论(没有评论)