rwx的含义
r read #读 cat less more vim
w write #写 vim echo sed
x excuter #可执行
- #没有权限Linux是如何知道我对某个文件或目录有什么权限的?
[root@oldboyedu ~]# ll 1
总用量 0
-rw-r--r-- 1 root root 0 11月 1 20:33 fileA.txt
-rw-r--r-- 1 root root 0 11月 1 20:33 fileB.txt
-rw-r--r-- 1 root root 0 11月 1 20:33 fileC.txt- #文件类型
-后九位为文件的权限位,每三位一组,分三组
rw- #第一列 文件的属主 文件属于那个用户,好比手机属于谁
r-- #第二列 文件的属组 文件对小组的权限,好比手机对于组内的权限
r-- #第三列 文件的其他权限 文件对于陌生人的权限,和小组一样,都是只有看的权限一般来说,创建一个用户,会默认创建该文件的组 eg:张三用户,默认创建张三用户我对fileA.txt拥有什么权限?
1、我是谁?当前登录的用户是谁?
[root@oldboyedu ~]# whoami
root
2、找出用户和文件的关系,即root对应的fileA.txt的关系是主人
[root@oldboyedu ~]# ll 1/fileA.txt
-rw-r--r-- 1 root root 0 11月 1 20:33 1/fileA.txt
3、根据对应关系找对应权限
root对应fileA.txt定的权限是前三位,即rw- 可读写
rwx和数字的对应关系
r #4
w #2
x #1
- #0[root@oldboyedu ~]# ll 1/fileA.txt
-rw-r--r-- 1 root root 0 11月 1 20:33 1/fileA.txt
数字对应的fileA.txt的权限是加法
rw- #属主位相加 即rw- 4+2+0=6
r-- #属组位相加 即r-- 4+0+0=4
r-- #陌生位相加 即r-- 4+0+0=4
因此得出该文件的权限用数字表示为644通过数字得出文件使用字符表示权限是减法
755
7 #属主位相减 7-4=3 3-2=1 1-1=0 即rwx
5 #属组位相减 5-4=1 1<2,所以没有这一位 1-1=0 即r-x
5 #陌生位相减 5-4=1 1<2,所以没有这一位 1-1=0 即r-x
因此得出该数字所表示文件的字符表示权限为:rwxr-xr-x
修改文件权限
chown #修改文件的属主属组
语法结构: chown 属主名 文件 # 只修改文件的属主chown .数组名 文件 # 只修改文件的属组chown 属主名.数组名 文件 # 同时修改文件的属主属组
参数选项: -R #递归修改目录下的所有文件的属主属组[root@oldboyedu ~]# ll 1/fileA.txt
-rw-r--r-- 1 root root 0 11月 1 20:33 1/fileA.txteg:修改fileA.txt的属主为oldboy用户
[root@oldboyedu ~]# chown oldboy 1/fileA.txt
[root@oldboyedu ~]# ll 1/fileA.txt
-rw-r--r-- 1 oldboy root 0 11月 1 20:33 1/fileA.txteg:修改fileB.txt的属组位oldboy用户
[root@oldboyedu ~]# chown .oldboy 1/fileB.txt
[root@oldboyedu ~]# ll 1/fileB.txt
-rw-r--r-- 1 root oldboy 0 11月 1 20:33 1/fileB.txteg:同时修改fileC.txt的属主属组为oldboy
[root@oldboyedu ~]# chown oldboy.oldboy 1/fileC.txt
[root@oldboyedu ~]# ll 1/fileC.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 1 20:33 1/fileC.txteg:递归修改1目录下的所有文件的属主属组为oldboy
[root@oldboyedu ~]# chown -R oldboy.oldboy 1
[root@oldboyedu ~]# ll 1
总用量 0
-rw-r--r-- 1 oldboy oldboy 0 11月 1 20:33 fileA.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 1 20:33 fileB.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 1 20:33 fileC.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 8 11:26 fileD.txt#切记,修改的属主和属组是必须存在的,不然修改不成功,属组和属主名只能是英文字母,不可以是数字,rwx的位置是固定的chmod #修改文件的权限
语法结构: chmod +权限 文件 #增加文件的权限,仅适用于r和zchmod -权限 文件 #减少文件的权限,仅适用于r和zchmod g+权限 文件 #授权属组位增加权限chmod u=权限 文件 #使用等于号清空文件的属主位,并重新给属主位赋值chmod a+权限 文件 #给所有位置增加权限
参数选项: -R #递归授权,比较危险,别用来修改目录属主 使用 u 表示 user
属组 使用 g 表示 group
陌生 使用 o 表示 other###使用ugo方式授权
eg:给1.txt属主位增加x权限
[root@oldboyedu ~]# ll a/1.txt
-rw-r--r-- 1 root root 0 11月 8 11:35 a/1.txt
[root@oldboyedu ~]# chmod u+x a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rwxr--r-- 1 root root 0 11月 8 11:35 a/1.txteg:给1.txt属主位减去w权限
[root@oldboyedu ~]# ll a/1.txt
-rwxr--r-- 1 root root 0 11月 8 11:35 a/1.txt
[root@oldboyedu ~]# chmod u-w a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-r-xr--r-- 1 root root 0 11月 8 11:35 a/1.txteg:给1.txt属主位设置rwx权限
[root@oldboyedu ~]# ll a/1.txt
-r-xr--r-- 1 root root 0 11月 8 11:35 a/1.txt
[root@oldboyedu ~]# chmod u+rwx a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rwxr--r-- 1 root root 0 11月 8 11:35 a/1.txteg:给1.txt陌生位增加wx权限
[root@oldboyedu ~]# chmod o+wx a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rwxr--rwx 1 root root 2 11月 11 17:15 a/1.txteg:同时去掉1.txt陌生位的wx权限
[root@oldboyedu ~]# chmod o-wx a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rwxr--r-- 1 root root 2 11月 11 17:15 a/1.txteg:使用等号来重新赋值权限位
[root@oldboyedu ~]# ll a/1.txt
-rwxr--r-- 1 root root 2 11月 11 17:15 a/1.txt
授权1.txt的属组位为wx权限
[root@oldboyedu ~]# chmod g=wx a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rwx-wxr-- 1 root root 2 11月 11 17:15 a/1.txteg:修改所有位置增加x权限
[root@oldboyedu ~]# chmod +x a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rwx-wxr-x 1 root root 2 11月 11 17:15 a/1.txteg:所有位置减去x权限
[root@oldboyedu ~]# chmod -x a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rw--w-r-- 1 root root 2 11月 11 17:15 a/1.txt#使用chmod +r,是所有位均增加r,使用chmod -r,是所有位均减少r;使用chmod +w,只有属主位增加,其他位无变化,使用chmod -w,只有属主位减少,其他位均无 变化;使用chmod +x,是所有位均增加x,使用chmod -x,是所有位均减少xeg:对所有位置增加r权限
[root@oldboyedu ~]# chmod ugo+r a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-r--rw-rw- 1 root root 2 11月 11 17:15 a/1.txteg:对所有位置减少w权限,使用a
[root@oldboyedu ~]# chmod a-w a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-r--r--r-- 1 root root 2 11月 11 17:15 a/1.txt###使用数字的方式授权
r # 4
w # 2
x # 1
语法结构: chmod 三位数字 文件 #授权文件为三位数字的权限eg:授权1.txt文件权限位rw-r-xr--权限三位为一组,对每个位置进行相加rw- #4+2+0=6r-x #4+0+1=5r-- #4+0+0=4 即654[root@oldboyedu ~]# chmod 654 a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rw-r-xr-- 1 root root 2 11月 11 17:15 a/1.txteg:授权1.txt文件权限位rw-------权限
[root@oldboyedu ~]# chmod 600 a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rw------- 1 root root 2 11月 11 17:15 a/1.txteg:授权1.txt文件权限为rw-r--r--权限
[root@oldboyedu ~]# chmod 644 a/1.txt
[root@oldboyedu ~]# ll a/1.txt
-rw-r--r-- 1 root root 2 11月 11 17:15 a/1.txteg:授权1.txt文件权限为---------权限
[root@oldboyedu ~]# chmod 000 a/1.txt
[root@oldboyedu ~]# ll a/1.txt
---------- 1 root root 2 11月 11 17:15 a/1.txt###经常使用到的授权数字
644 rw-r--r--
755 rwxr-xr-x
600 rw-------chmod #递归授权文件的属主属组为600的权限
参数选项: -R #递归授权 比较危险 别用来修改目录
[root@oldboyedu ~]# chmod 600 a/*
[root@oldboyedu ~]# ll a
总用量 4
-rw------- 1 root root 2 11月 11 17:15 1.txt
-rw------- 1 root root 0 11月 8 11:35 2.txt
-rw------- 1 root root 0 11月 8 11:35 3.txt
-rw------- 1 root root 0 11月 8 11:35 4.txt
-rw------- 1 root root 0 11月 8 11:35 5.txt
-rw------- 1 root root 0 11月 8 11:35 6.txt
-rw------- 1 root root 0 11月 8 11:35 7.txt
-rw------- 1 root root 0 11月 8 11:35 8.txt
-rw------- 1 root root 0 11月 8 11:35 9.txt
rwx对于文件的作用
准备工作:
打开两个窗口
一个用root账号登录
一个用oldboy账号登录使用root账号执行命令
[root@oldboyedu ~]# mkdir /oldboy
[root@oldboyedu ~]# touch /oldboy/{1..3}.txt
[root@oldboyedu ~]# ll /oldboy
总用量 0
-rw-r--r-- 1 root root 0 11月 11 18:34 1.txt
-rw-r--r-- 1 root root 0 11月 11 18:34 2.txt
-rw-r--r-- 1 root root 0 11月 11 18:34 3.txt
[root@oldboyedu ~]# chown oldboy.oldboy /oldboy/*
[root@oldboyedu ~]# ll /oldboy
总用量 0
-rw-r--r-- 1 oldboy oldboy 0 11月 11 18:34 1.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 11 18:34 2.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 11 18:34 3.txt
[root@oldboyedu ~]# echo pwd > /oldboy/1.txt
[root@oldboyedu ~]# cat /oldboy/1.txt
pwd测试r对于文件的作用
[root@oldboyedu oldboy]# chmod u=r 1.txt
[root@oldboyedu oldboy]# ll 1.txt
-r--r--r-- 1 oldboy oldboy 4 11月 11 18:35 1.txtr对文件的作用:
1、可读
2、不可写,因为属主是oldboy,所以可以强制写入
3、不能执行 ./脚本 ,可以执行脚本的命令
4、不能删除 因为删除是由目录的权限控制的[oldboy@oldboyedu oldboy]$ cp /etc/passwd . #是因为啥没有啥权限?
cp: 无法创建普通文件'./passwd': 权限不够 #是因为passwd文件对陌生位没有r-z权限w对于文件的作用:
[root@oldboyedu oldboy]# chmod u=w 1.txt
[root@oldboyedu oldboy]# ll 1.txt
--w-r--r-- 1 oldboy oldboy 8 11月 11 18:52 1.txt1、不能查看文件内容
2、不能使用vim写入,只能使用echo追加内容
3、不能执行x对于文件的作用:
[root@oldboyedu oldboy]# chmod u=x 1.txt
[root@oldboyedu oldboy]# ll 1.txt
---xr--r-- 1 oldboy oldboy 3 11月 11 19:02 1.txt文件只有一个x啥都不能干文件可以正常查看写入必须有rw权限
[root@oldboyedu oldboy]# chmod u=rw 1.txt
[root@oldboyedu oldboy]# ll 1.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 11 19:05 1.txt文件可以正常执行必须有r-x权限
[root@oldboyedu oldboy]# chmod u=rx 1.txt
[root@oldboyedu oldboy]# ll 1.txt
-r-xr--r-- 1 oldboy oldboy 0 11月 11 19:05 1.txt总结:
1、一个r对于文件有作用,只读
2、rw对于文件是最高权限可读写
3、r和x对于文件是有执行的权限
4、rwx是脚本拥有最高的权限对于文件来说,最高权限位666,即所有位置都可读写
rwx对于目录的作用
[root@oldboyedu oldboy]# chmod 644 *
[root@oldboyedu oldboy]# ll
总用量 0
-rw-r--r-- 1 oldboy oldboy 0 11月 11 19:05 1.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 11 18:34 2.txt
-rw-r--r-- 1 oldboy oldboy 0 11月 11 18:34 3.txt
修改/oldboy目录属主属组为oldboy用户
[root@oldboyedu oldboy]# chown oldboy.oldboy /oldboy
[root@oldboyedu oldboy]# ll -d /oldboy/
drwxr-xr-x 2 oldboy oldboy 45 11月 11 18:34 /oldboy/r权限对于目录的作用:
[root@oldboyedu oldboy]# chmod u=r /oldboy
[root@oldboyedu oldboy]# ll -d /oldboy/
dr--r-xr-x 2 oldboy oldboy 45 11月 11 18:34 /oldboy目录只有r权限,啥都不能干,只能看目录名w权限对于目录的作用:
[root@oldboyedu oldboy]# chmod u=w /oldboy/
[root@oldboyedu oldboy]# ll -d /oldboy/
d-w-r-xr-x 2 oldboy oldboy 45 11月 11 18:34 /oldboy/目录只有w权限,啥都不能干x权限对于目录的作用:
[root@oldboyedu oldboy]# chmod u=x /oldboy/
[root@oldboyedu oldboy]# ll -d /oldboy/
d--xr-xr-x 2 oldboy oldboy 45 11月 11 18:34 /oldboy/1、x控制是否可以cd到目录下
2、没有其他任何权限目录权限的常用组合方式:
1、r-x组合 可以进入到目录 可以查看目录下所有的文件信息 能不能看文件具体内容,需要看文件权限
2、r-x组合 不能在目录下删除 创建 改名等作用
3、rwx组合是目录的最高权限,可以进入可以增删改查为什么会出现权限拒绝?[oldboy@oldboyedu ~]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
#[oldboy@oldboyedu ~]$ ll /etc/shadow
---------- 1 root root 1377 11月 5 23:36 /etc/shadow
因为shadow文件的其他位没有r权限[oldboy@oldboyedu ~]$ echo '#' >> /etc/passwd
-bash: /etc/passwd: 权限不够
#[oldboy@oldboyedu ~]$ ll /etc/passwd
-rw-r--r-- 1 root root 1997 11月 5 21:19 /etc/passwd
因为passwd的其他位没有w权限,必须rw[oldboy@oldboyedu ~]$ touch /etc/passwd.txt
touch: 无法创建 '/etc/passwd.txt': 权限不够
#[oldboy@oldboyedu ~]$ ll -d /etc/
drwxr-xr-x 123 root root 8192 11月 7 17:29 /etc/
因为etc目录没有w权限,必须rwx[oldboy@oldboyedu ~]$ rm -rf /etc/shadow
rm: 无法删除 '/etc/shadow': 权限不够
#[oldboy@oldboyedu ~]$ ll -d /etc/
drwxr-xr-x 123 root root 8192 11月 7 17:29 /etc/
因为etc目录没有w权限,必须rwx[oldboy@oldboyedu ~]$ ls /root/
ls: 无法打开目录 '/root/': 权限不够
#[root@oldboyedu oldboy]# ll -d /root/
dr-xr-x--- 9 root root 4096 11月 8 11:35 /root/
因为root的其他位没有r-x权限
umask值
umask作用决定默认创建文件和目录的权限 #了解umask值默认文件的权限:644
默认目录的权限:755
[root@oldboyedu ~]# mkdir b/a
[root@oldboyedu ~]# touch b/1.txt
[root@oldboyedu ~]# ll b
总用量 0
-rw-r--r-- 1 root root 0 11月 11 19:40 1.txt
drwxr-xr-x 2 root root 6 11月 11 19:40 a查看默认umask值
[root@oldboyedu ~]# umask
0022文件默认权限:是由文件的最高权限666减去umask值得到的:666-022=644
目录默认权限:是有目录的最高权限777减去umask值得到的:777-022=755eg:umask值修改为044
文件权限:666-044=622
目录权限:777-044=733
[root@oldboyedu ~]# ls b
1.txt a
[root@oldboyedu ~]# umask 044 #临时修改
[root@oldboyedu ~]# umask
0044
[root@oldboyedu ~]# rm -rf b/a b/1.txt
[root@oldboyedu ~]# mkdir b/a
[root@oldboyedu ~]# touch b/1.txt
[root@oldboyedu ~]# ll b
总用量 0
-rw--w--w- 1 root root 0 11月 11 19:55 1.txt
drwx-wx-wx 2 root root 6 11月 11 19:55 aeg:umask值修改为032
文件权限:666-032=634
目录权限:777-032=745
[root@oldboyedu ~]# umask 032
[root@oldboyedu ~]# umask
0032
[root@oldboyedu ~]# rm -rf b/a b/1.txt
[root@oldboyedu ~]# mkdir b/a
[root@oldboyedu ~]# touch b/1.txt
[root@oldboyedu ~]# ll b
总用量 0
-rw-r--r-- 1 root root 0 11月 11 19:57 1.txt
drwxr--r-x 2 root root 6 11月 11 19:57 a
如果umask值存在奇数位,文件相减后奇数位+1,目录正常加减
文件权限:666-032=634+010=644
目录权限:777-032=745
隐藏权限位
#查看隐藏权限位
[root@oldboyedu ~]# lsattr wang.txt
-------------------- wang.txt#增加a隐藏权限 作用只能追加内容到文件中,并查看文件内容
[root@oldboyedu ~]# chattr +a wang.txt
[root@oldboyedu ~]# ll wang.txt
-rw-r--r-- 1 root root 6 11月 7 17:06 wang.txt
[root@oldboyedu ~]# lsattr wang.txt
-----a-------------- wang.txt#去掉a隐藏权限
[root@oldboyedu ~]# chattr -a wang.txt
[root@oldboyedu ~]# lsattr wang.txt
-------------------- wang.txti #无敌,除了查看啥都不能干
[root@oldboyedu ~]# chattr +i wang.txt
[root@oldboyedu ~]# lsattr wang.txt
----i--------------- wang.txt
[root@oldboyedu ~]# chattr -i wang.txt
[root@oldboyedu ~]# lsattr wang.txt
-------------------- wang.txt在企业中发现文件可能没有隐藏权限,但是还是无法操作,是因为第三方安全软件对文件做了保护措施
特殊权限位
suid set uid 4#作用,在用户执行命令的时候相当于属主的权限去执行
需要我们给属主的位置增加s权限,任何人使用都相当于命令的属主权限
设置方法:chmod u+s /bin/rm 或 chmod 4755 /bin/rm
sgid sgid locate 2#执行命令的时候相当于命令属组的权限运行。
sticky粘滞位 1 #sticky粘滞位 1777 /tmp目录 ,1.任何人都可以在这个目录里面创建文件(原来的权限是777) ,2.每个人只能管理自己的文件,其他人的处理不了