一:文件权限
1.权限的概念
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
- 1 表示连接的文件数
- root 表示用户
- root表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
后三个有三个权限位(就是三个字符,r--或者rw-):
r:可读 代号4
w:可写(修改) 代号2
x:可执行(当成命令或者程序执行) 代号1
2.权限的归属
u:代表自己
g:代表组
o:代表其他人
3.权限的设置 chmod
格式:chomd 数字 文件名称
chomd 664 6=4+2(r是4,w是2)
chmod u+r 文件 #自己添加一个可读权限
例题:545写出对应字母的权限
-r-xr--r--
二:权限对⽂件or⽬录的意义
1.文件夹对文件权限的影响的三条结论
(1)目录下文件可读
目录x权限的话,文件要有r'权限
(2)目录下文件可写
目录须拥有可执行(x),文件可读权限(-r)
(3)目录下的文件可以被执行,
目录必须拥有可执行权限,目录下文件拥有可执行的权限
总结:
首先需要对沿途的文件有-x权限,对目标文件要有r浏览,w创建修改移动,
3.设置权限 chmod
(1)加减法(在原来基础上进行修改):
[root@localhost ~]# ll 1.txt -rw-r--r-- 1 root root 0 Mar 15 20:49 1.txt #源文件的权限 加法: [root@localhost ~]# chmod u+x,g+x,o+w 1.txt [root@localhost ~]# ll 1.txt -rwxr-xrw- 1 root root 0 Mar 15 20:49 1.txt
减法:
[root@localhost ~]# chmod u-x 1.txt
参数: a
[root@localhost /]# chmod a-w /opt/a/b/c/1.txt #所有的都减去w权限
[root@localhost /]# ls -l /opt/a/b/c/1.txt
-r--r--r-x 1 root root 42 Mar 16 15:01 /opt/a/b/c/1.txt
(2)赋值法(在原来基础上进行覆盖):
chmod u=rwx,g=rwx,o=rwx 1.txt #u,g,o不是每次都要写的
a:属主属组属其他 一起设置
chmod u=-,g=-,o=- 1.txt
权限全部清空
(3)数字法:
chmod 777 文件路径(1.txt)
777 表示三个权限位置,不能单独改正,只能一起
(4)-R递归修改
chmod -R 777 /root/a
递归修改目录的权限
4. 设置用户和组
(1)chown
useradd libai groupadd devops chown libai.devops /root/a.txt
就是libai用户对文件有读权限,devops对文件有rwx权限
结果是:
(2)chown -R
格式:chown -R 属主.属组 目录
5.权限的作用
对于文件:
r:读取文件内容
w:修改文件内容
x:可以把文件内容当作一个命令或者程序运行
针对目录:
r:可以浏览目录下文件名字和目录名字
w:创建删除和移动文件(rm和mv)
x:可以进入该目录,操作目录下的文件(cd)
6.不切换到其他用户界面,进行一条命令的操作
su -lili -c 'cat /a/b/c/1.txt'
三:文件管理之特殊权限
1.SUID
引子:etc/shadow 普通用户没有修改密码权限也可以实现更改密码------SUID
[root@localhost /]# ll `which passwd` #反引号是tab上面的键 -rwsr-xr-x. 1 root root 27856 Apr 1 2020 /usr/bin/passwd 普通用户可以修改密码
一旦一个文件设置成SUID后,其他用户访问该文件时获得root一样的权限;该权限仅在执行时候有效
2. SGID
(1)当SGID 作⽤于普通⽂件时,和 SUID 类似,在执⾏该⽂件时,⽤户将获得该⽂件所属组的权限。
(2)当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件
[root@localhost ~]# mkdir /test [root@localhost ~]# chmod g+s /test/ # 等同于chmod 2755 /test/ [root@localhost ~]# ll -dl /test/ drwxr-sr-x 2 root root 6 8⽉ 11 17:06 /test/ [root@localhost ~]# [root@localhost ~]# chown .egon /test/ # 后期任何⼈在该⽬录下创建的⽂件or⽬录的属组都是egon
3. SBIT
[root@localhost ~]# ls -dl /tmp/ drwxrwxrwt. 13 root root 4096 8⽉ 11 17:09 /tmp/
[root@localhost ~]# chmod o+t /test/ # 或者 chmod 1755 /test

[root@localhost ~]# umask 000 //设置umask权限
[root@localhost tmp]# vim /etc/profile # 或者/etc/bashrc内容⼀样 ...... if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 //表示uid⼤于等于199的默认umask值,表示普通⽤户 else umask 022 //表示uid⼩于199的默认umask值,表示root fi