权限对象: 属主------->u ----->r w x 所有者 属组------->g ----->r w x 其他人----->o------>r w x 基本权限类型: 读(read):r ---->4 写(write):w ---->2 执行(exec):x ---->1
chmod u+r 1.txt
命令 对象加减权限 文件或目录
语法:chmod 对象(u/g/o/a)赋值符(+/-/=) 权限类型(r/w/x) 文件或目录
-R是递归 指文件夹中所有都赋值
rwx 最大的权限
比如:chmod +w 赋予用户写的权限
数字授权
比如:行 组读写执行 其他读写执行
chmod 777 file.txt
[root@linux-server ~]# chmod u+x file1.txt #属主增加执行
[root@linux-server ~]# chmod a=rwx file1.txt #所有人等于读写执行
[root@linux-server ~]# chmod a=- file1.txt #所有人都没有权限
[root@linux-server ~]# chmod ug=rw,o=r file1.txt #属主属组等于读写,其他人只读
[root@linux-server ~]# ll
-rw-rw-r--. 1 tom it 0 Nov 1 15:30 file1.txt
chown 用户名.组名 文件 #设置一个文件属于谁,属主
[root@linux-server ~]# chown alice.hr file1.txt #修改属主、属组
[root@linux-server ~]# chown tom file1.txt #修改属主
[root@linux-server ~]# chown .it file1.txt #只改属组
[root@linux-server ~]# chown -R alice.hr dir1 #递归修改---针对目录
chgrp 组名 文件 -R 递归 #只改组
setfacl -m 设置文件防控 -设置 对象:对象名:权限
高级权限 suid普通文件 sgid,sticky 目录 这三个权限不能给到同一个文件
suid ==== 4 提权 (只对二进制命令文件生效,其他不管用)
sgid ==== 2 继承属组权限 (只能对目录设置)
sticky == 1 (t权限) 权限控制针对目录(用于other其他身上)
粘滞位
a、字符---语法:
chmod u+s file 提权
chmod g+s dir 只能对目录设置(继承上层属组)
chmod o+t dir 即使有删除权限,也不能删除(谁创建的才可以删除了root)
chmod 0-t dir 可以删除
b、数字
chmod 4777 file
chmod 2770 dir
chmod 1770 dir
chmod u+s /usr/bin/rm #“命令”
chmod u-s /usr/bin/rm #取消提权
chmod g+s hr/ #只能对目录 #继承上一层目录属组的权限
缺点:一旦提权,所有用户都可以像root用户一样执行命令
visudo vim /etc/sudoers
90 ##
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 jack ALL=(ALL) NOPASSWD: ALL #添加内容
94 ## Allows members of the 'sys' group to run networking, software,
缺点:被提权的用户将会拥有某些或者全部root用户的权限
提权方法3:给某个用户设置针对某个文件的特殊权限
[root@linux-server ~]# visudo | vim /etc/sudoers
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
lisi ALL=(ALL) ALL
93 jack ALL=(ALL) NOPASSWD:ALL
94 alice ALL=(ALL) NOPASSWD:/usr/bin/mkdir, /usr/bin/rm, /usr/bin/touch
95
96 ## Allows members of the 'sys' group to run networking, software,
%wheel ALL=(ALL) ALL
将普通用户加入到wheel组
usermod -G wheel zhangsan
gpasswd -a zhangsan wheel 加入组
gpasswd -d zhangsan wheel删除用户
测试:
[root@linux-server ~]# su - alice
Last login: Fri Jul 24 00:52:13 CST 2020 on pts/1
[alice@linux-server ~]$ touch /file
touch: cannot touch ‘/file’: Permission denied
[alice@linux-server ~]$ sudo touch /file
setfacl 针对个人设置权限 一个人查看一个文件的权限
stefacl -m u:tom:rwx youhua.txt 让这用户对这个文件有读写执行的权限
getfacl 查看权限
已知文件:
[root@xiaoming tmp]# ll
-rw-r--r-- 1 root root 0 11月 26 11:25 a.txt
如果希望只有xiaoming用户可以rwx操作/tmp/a.txt文件
那么我们可以这样做
setfacl -m u:xiaoming:rwx /tmp/a.txt
-m 设置facl权限
u: 用户,也可以指定组 g
xiaoming: 需要指定的用户
rwx: 权限
让我们来看下现在xiaoming是否拥有这个权限:
1、尝试对该文件进行操作
2、getfacl /tmp/a.txt
[root@xiaoming /tmp]# getfacl a.txt
# file: a.txt
# owner: root
# group: root
user::rw-
user:xiaoming:rwx
group::r--
mask::rwx
other::r--
我们可以看到 xiaoming 拥有了对该文件的rwx权限
方法1、
setfacl -m u:xiaoming:--- a.txt
方法2、
setfacl -x u:xiaoming a.txt
方法3、
setfacl -b a.txt
我们也可以设置该文件为所有人所有组访问
setfacl -m ::rwx a.txt
控制用户创建文件和目录的默认权限
#root用户默认最高权限
目录---777 文件---666
#查看umask
[[email protected] ~]# umask
0022 root账户默认
0002 普通用户默认
#通过计算得出root用户创建目录和文件的权限为:
也是现在root用户创建完目录和文件的默认权限:
目录:755
文件:644
#修改umask
[[email protected] ~]# umask 0111