文件权限数字表现形式
权限项 读 写 执行 读 写 执行 读 写 执行字符表示 r w x r w x r w x
数字表示 4 2 1 4 2 1 4 2 1
权限分配 所有者 所属组 其他人
ls -l file1
drwxr-xr--.2 test test 4096 Sep 2 16:36 file1
chmod 755 file
ls -l file1
drwxr-xr-x--.2 test test 4096 Sep 2 16:36 file1
chmod -R 可以递归修改目录下的所有文件权限
root 用户 umask 值 0022
普通用户 umask 值 0002
root用户创建目录 时,生成目录权限为 777 - umask对应权限 ,最终为 755
root用户创建文件时,生成文件权限为 666 - umask对应权限,最终为644
普通用户创建目录时,生成目录权限为 777 - umask对应权限,最终为 775
普通用户创建文件时,生成文件权限为 666 - umask对应权限,最终为664
3.设置文件、目录归属chown 命令
格式:chown 所有者 文件或目录
chown :所属组 文件或目录
chown 所有者:所属组 文件或目录
例如:chown root:root /home/test/file1
ls -l /home/test/file1
drwxr-xr-x,2 root root 4096 Sep 2 16:36 file1
三、系统高级权限设置 1.配置访问控制列表ACL(Access Control List)Linux系统中权限设置,仅有3种身份,3种权限,通过配合chmod和chown命令来对文件或目录进项设置。如果进项复杂权限设定,如某个目录要开放为给某个特定用户使用时,传统方法不能满足需求。
例如:/home/project 目录,所有者是student用户,所属组是users组,预设权限为770。现有用户teacher,所属组为teacher,希望对/home/project/目录具有rwx权限;还有用户test,所属组��test,希望对/home/project/目录具有读rx权限。
显然利用chmod和chown命令无法完成上述要求,因而,在Linux系统提供了ACL来完成这种复杂权限设置。
设置ACL
setfacl 【选项】 设定值 文件目录
-m 选项 设定一个ACL规则
-x 选项 取消一个ACL 规则
-b 选项 取消所有的ACL规则
-d 选项 设置默认ACL规则 (对当前目录设置ACL权限后,未来在其目录下创建的文件或目录继承该目录的ACL权限)
-k 选项 取消默认权限
-R 选项 用于递归设置(对当前目录设置ACL权限,该目录下已有的子目录及文件也拥有相应的ACL权限)
例如:setfacl -m u:teacher:rwx /home/project
setfacl -m u:test:rx /home/project
getfacl 命令 查看文件目录ACL权限
setfacl -x u:teacher /home/project
setfacl -b /home/project
##ACL需要分区开启acl,通过dumpe2fs查看。Linux系统默认开启acl,如果分区没有开启acl,可以通过设置/etc/fstab文件开启##
例如:/dev/sdb1 /data ext4 defaults,acl 0 0
2.设置特殊权限:SUID/SGID/Sticky BitSUID权限:主要设置于可执行文件,对目录设置无效,当其他人执行该文件时,自动获取该文件所有者身份,设置命令为chmod u+s file。
例如: ls -l /usr/bin/passwd
-rwsr-x-r-x, 1 root root 30768 11月 24 2017 /usr/bin/passwd
SGID权限:
设置与目录,当目录设置SGID后,在该目录下创建的文件或子目录自动继承该目录的所属组
设置与文件,当文件设置SGID后,该文件无论使用者是谁,在其执行时将以该文件所有者身份执行。
例如: chmod g+s file、dirfile
设置粘滞位权限:
当一个用户对一个目录拥有写权限,该用户能删除该文件下的所有文件。
粘滞位权限主要针对其他人设置,使用命令chmod设置目录权限时,“o+t”、“o-t”可以添加或者删除粘滞位权限。