linux 关于权限

基本权限UGO (a代指所有)

权限对象:
属主------->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 (为文件或目录设置访问权限)

语法: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(改主和组)

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(改组)

chgrp 组名 文件    -R 递归       #只改组

setfacl(设置文件防控列表)

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 

提权方法:给某个命令提权

方法1
chmod u+s   /usr/bin/rm     #“命令”
chmod u-s   /usr/bin/rm     #取消提权
chmod g+s hr/  #只能对目录             #继承上一层目录属组的权限

缺点:一旦提权,所有用户都可以像root用户一样执行命令

提权方法2:给某个用户某些命令的权限
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

你可能感兴趣的:(linux,服务器,运维)