Linux设置文件和目录权限方式
作者:Xnah_
在Linux系统中,文件和目录的权限分为访问权限和归属权限,访问权限包括读(r)、写(w)、执行(x),可用字符或数字方式设置,归属权限涉及文件的所有者和用户组,特殊权限包括suid、sgid和Sticky位,分别用于提高程序的安全性和管理共享目录
一、文件和目录的访问和归属权限
1.访问权限
- 读取权限(r)允许查看文件内容;显示目录列表
- 写入权限(w)允许修改文件内容;允许在目录中新建、移动、删除文件或子目录
- 执行权限(x)允许运行程序;切换目录
访问权限用八进制数表示为:
注意
- 文件夹的最小权限是x,一定要带上否则无法进行任何操作,超级管理员不受影响。
- 删除一个文件和所在文件夹权限有关,和自身没关系,超级管理员不受影响。
2.归属权限
- 属主:用有该文件或目录的用户
- 属组:用有该文件或目录的用户组
二、设置文件和目录的访问和归属权限
1.设置访问权限(两种方式)
(1)字符表示法
[root@localhost ~]# chmod [ugoa] [=+-] [rwx] 文件或目录... u 属主 g 属组 o 其他用户 a 所有 = 赋予...权限 + 加上...权限 - 去掉...权限 -R //递归修改指定目录下所有文件、子目录的权限
//创建一个文件,查看其权限 [root@localhost data]#touch 1.txt [root@localhost data]#ll 1.txt -rw-r--r--. 1 root root 0 7月 31 16:22 1.txt //其他加上写入权限 [root@localhost data]#chmod o+w 1.txt [root@localhost data]#ll 1.txt -rw-r--rw-. 1 root root 0 7月 31 16:22 1.txt //属组赋予写入执行权限 [root@localhost data]#chmod g=-wx 1.txt [root@localhost data]#ll 1.txt -rw----rw-. 1 root root 0 7月 31 16:22 1.txt //所有赋予读写执行权限 [root@localhost data]#chmod a=rwx 1.txt [root@localhost data]#ll 1.txt -rwxrwxrwx. 1 root root 0 7月 31 16:22 1.txt
(2)数字表示法
[root@localhost ~]# chmod nnn 文件或目录...
//创建目录 [root@localhost data]#mkdir -p aa/bb [root@localhost data]#ll aa 总用量 0 drwxr-xr-x. 2 root root 6 7月 31 16:39 bb //修改bb权限为644 [root@localhost data]#chmod 644 aa/bb [root@localhost data]#ll aa 总用量 0 drw-r--r--. 2 root root 6 7月 31 16:39 bb //修改bb权限为777 [root@localhost data]#chmod 777 aa/bb [root@localhost data]#ll aa 总用量 0 drwxrwxrwx. 2 root root 6 7月 31 16:39 bb
2.设置归属权限
[root@localhost ~]# chown 属主 文件或目录 :属组 文件或目录 属主:属组 文件或目录 -R //递归修改指定目录下所有文件、子目录的归属
//更改aa属主和属组 [root@localhost data]#chown root:hx aa [root@localhost data]#ll . 总用量 0 drwxr-xr-x. 3 root hx 16 7月 31 16:39 aa //递归更改aa及目录下子目录和文件属组 [root@localhost data]#chown :root aa [root@localhost data]#ll -R . .: 总用量 0 drwxr-xr-x. 3 root root 16 7月 31 16:39 aa ./aa: 总用量 0 drwxrwxrwx. 2 root root 6 7月 31 16:39 bb ./aa/bb: 总用量 0
三、权限掩码umask
1.作用
- 控制新建的文件或目录的权限
- 默认权限减去umask的数值为新建文件或目录的权限(文件用6减;目录用7减 因为目录默认有执行权限 值为1)
umask默认值为022
普通文件落地权限默认不能有执行(x)权限,所以权限值不会为奇数
2. 查看umask
[root@localhost data]# umask 0022
3.修改umask
[root@localhost data]# umask 数值
四、特殊权限
1.suid
[root@localhost aa]# which passwd /usr/bin/passwd [root@localhost aa]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd -- 此处s表示当使用这个命令程序时,把当前用户当成文件的所属主 [root@localhost aa]#which vim /usr/bin/vim [root@localhost aa]# chmod u+s /usr/bin/vim -- 给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件 [root@localhost aa]# ll /usr/bin/vim -rwsr-xr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
2.sgid
[root@localhost aa]# chmod g+s /usr/bin/vim -- 此处s表示当使用这个命令程序时,把当前用户组当成文件的所属组 [root@localhost aa]# ll /usr/bin/vim -rwxr-sr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
3.Sticky位
//具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权 在目录设置Sticky位,只有文件的所有者或root可以删除该文件 //sticky 设置在文件上无意义,只对目录有效 [root@localhost aa]#chmod o+t /opt/aa -- 添加Sticky位
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。