1. 文件权限 #

1.1 文件基本权限 #

-rw-r--r--

1.2 基本权限的修改 #

chmod [选项] 模式 文件名

chmod 000 1.txt
chmod u+w 1.txt
chmod g+x 1.txt
chmod o+r 1.txt

chmod g+x,o+x 1.txt

chmod u-w 1.txt

chmod u=rwx 1.txt

chmod 777 1.txt

1.3 权限的作用 #

1.3.1 文件权限 #

权限 含义 示例
r 读取文件内容 cat more head tail
w 编辑、新增、修改文件内容,不能删除文件,除非对目录有写权限 vi echo
x 可执行

1.3.2 目录权限 #

权限 含义 示例
r 可以查看目录下的文件名 ls
w 具有修改目录结构的权限。如新建、删除和重命名此目录下的文件和目录 touch rm mv cp
x 进入目录 cd
useradd zf1
passwd zf1

cd /home/zf1
mkdir folder
touch folder/1.txt 默认755
chmod 750 folder 
chmod 640 folder/1.txt
chmod 754 folder 
chmod 755 folder  
chmod 644 folder/1.txt
chmod 646 folder/1.txt
chmod 757 folder

1.1.3 其它权限命令 #

1.1.3.1 chown #
1.1.3.2 chgrp #
chgrp zf1 folder
chown root:root folder

2.默认权限 #

2.1 umask #

2.2 文件权限 #

666 - 022 = 744

2.3 目录 #

777 - 022 = 755

2.4 修改umask值 #

临时修改

umask 0002

永久修改

vi /etc/profile

3. ACL #

3.1 查看分区ACL权限是否开启 #

dumpe2fs -h /dev/sda1

Default mount options:    user_xattr acl

3.1.1 临时开启分区的ACL权限 #

重新挂载根分区,并挂载加入ACL权限

mount -o remount,acl /dev/sda1

3.1.2 永久开启分区的ACL权限 #

vi /etc/fstab
UUID /  ext4 defaults,acl  1 1
mount -o remount /dev/sda1

3.2 读写ACL权限 #

3.2.1 setfacl #

选项 含义
-m 设定ACL权限
-x 删除指定的ACL权限
-b 删除所有的ACL权限
-d 设定默认ACL权限
-k 删除默认的ACL权限
-R 递归设定ACL权限

3.2.2 setfacl #

setfacl -m m:r folder
[root@localhost someone]# getfacl folder
# file: folder
# owner: teach
# group: stus
user::rwx
user:someone:r-x        #effective:r--
group::rwx            #effective:r--
mask::r--
other::---

3.2.3 删除ACL权限 #

3.2.3.1 删除指定用户的ACL权限 #

setfacl -x u:用户名 文件名

setfacl -x u:someone folder
3.2.3.2 删除文件所有用户的ACL权限 #

setfacl -b 文件名

setfacl -b folder
3.2.3.3 删除指定用户组的ACL权限 #

setfacl -x g:组名 文件名

setfacl -x g:students folder

3.2.4 递归权限 #

setfacl -m u:someone:rx folder
setfacl -m u:someone:rx -R folder

3.2.5 默认权限 #

setfacl -m d:u:someone:rw folder

4. sudo权限 #

4.1 visudo #

root    ALL=(ALL) ALL
用户名 被管理主机地址=(可使用的身份) 授权命令(绝对路径)

somethone ALL=(root) /usr/sbin/useradd         //新增加用户行
%wheel ALL=(ALL) ALL
%组名 被管理主机地址(IP)=(可使用的身份) 授权命令(绝对路径)
sudo -l  查看目前的sudo权限

6. 特殊权限 #

6.1 SetUID #

字母表示法

chmod u+s 文件
chmod u-s 文件

数字表示法,在普通三位数字权限位之前,用4代表添加的SUID位 chmod 4755 文件 添加SUID权限到二进制程序文件(添加到目录无意义)

chmod 4755 文件
chmod 0xxx 可以删除文件的 SUID(无法删除目录的SUID)  
chmod 4755 hello.sh

ll /etc/shadow
ll /user/bin/passwd

6.1.1 设置SUID #

chmod 4755 文件名
chmod u+s 文件名 给所有者加suid权限
chmod g+s 文件名 给所属组加suid权限
chmod o+s 文件名 给其它人加suid权限

6.1.2 取消SUID #

chmod 0755 文件名
chmod u-x 文件名 给所有者减去suid权限

6.1.3 安全设置 #

chmod 4755 /bin/vi
/bin/vi /etc/shadow

6.2 SetGID #

Set Group ID

6.2.1 设置方法 #

字母表示法

chmod g+s 文件

chmod g-s 文件

数字表示法

chmod 2755  文件/目录 添加SGID到目录或文件
在普通数字权限位前,用2代表添加SGID位
chmod 0755 文件/目录 删除文件的SGID,(目录不受影响)
chmod 755 文件/目录 同上 

6.2.2 作用目标 #

6.2.2.1 针对文件 #
chmod 4755 /bin/cat
chmod 0755 /bin/cat
chmod u+s /bin/cat
chmod u-s /bin/cat

cat /root/uid.txt
6.2.2.2 针对目录 #
mkdir test3
//设置SetGID
chmod 2755 test3
chmod g+s test3
ll -d test3
chmod 777 test3

touch 1.txt
ll -h 1.txt

取消 SetGID
chmod 0755  文件名
chmod g-s 文件名

6.3 Sticky BIT #

6.3.1 设置和取消 #

6.3.1.1 设置Sticky #
chmod 1755  目录名
chmod o+t 目录名
6.3.1.2 取消Sticky #
chmod 0755  目录名
chmod o-t 目录名

ll -d /tmp

6.4 不可改变位权限 #

选项 文件 目录
+i 不允许对文件进行删除、改名,也不能添加和修改数据 只能修改目录下文件的数据,但不允许建立和删除文件
+a 只能在文件中增加属性,但不能删除也不能修改数据 只允许在目录中建立和修改文件,不能删除
chattr +i folder
lsattr folder