4.linux权限相关操作

权限

1.1 基本权限

1.什么是权限,为什么要设置?

在linux系统中,如果对应的用户没有相应的权限就不能做相应的一些操作。

2.权限有哪些?

权限对象有:属主(u)属组(g)其他人(o)
基本权限类型有:
读(read):r ---->4
写(write):w ---->2
执行: x(exec) ----->1

3.案例

一个文件基本信息
-rw-r--r--  1 root root         0 Jan 16 04:37 a.txt
解释:
第一个-表示他是个文件
往后3个为一段rw-表所有者权限有r读,w写。
第二段r--表示用户所在属组的权限,r读。
第三段r--表示其他人的权限,其他人就是不是文件的所有者又不在文件的所属组中。
第一个root表示所有者是root
第二个root表示所属组是root组

4.如何修改

chown:改变文件或目录的所有者以及所属组

[root@linux-server ~]# chown user1.hr file1.txt  #修改属主、属组
[root@linux-server ~]# chown user2  file1.txt   #修改属主
[root@linux-server ~]# chown .it file1.txt    #只改属组
[root@linux-server ~]# chown -R user3.hr dir1 #递归修改针对目录,连同里面的文件权限一起修改

chmod:为文件或目录设置访问权限

[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 #属主属组等于读写,其他人只读

使用数字的方式 r=4 w=2 x=1
#所有者拥有读写,所属组拥有读,其让人也是只读
[root@linux-server ~]# chmod 644 file1.txt 
[root@linux-server ~]# chmod 521 file1.txt

1.2 用户掩码

1.用户掩码是啥,有什么作用?

用户掩码(umask)就是:控制用户创建文件或目录的默认权限

目录在创建之前默认的权限是777,文件是666
用默认权限减去创建用户的umask码 得出创建后的权限
root用户默认umask码是 0022
普通用户默认umask码是  0002
查看umask
[root@linux-server ~]# umask
修改umask
[root@linux-server ~]# umask 0111
通过计算得出root用户创建目录和文件的权限为

1.3 权限对文件和目录的意义

对文件:
r == cat
w == vi、vim
x == bash /dir/file
对目录:
r == ls 
w == touch、rm
x == cd

总结:
对目录有w权限,可以在目录中创建新文件,可以删除目录中的文件(跟文件权限无关)
注意事项:
文件: x 权限小心给予
目录: w 权限小心给予

1.4 高级权限

1.产生的问题?

[root@linux-server ~]# ll /root/file.txt
-rw-r--r--. 1 root root 0 Nov 1 15:30 /root/file.txt
[root@linux-server ~]# su - alice
[alice@linux-server ~]$ cat /root/file.txt
cat: /root/file.txt: Permission denied

为什么会cat不了file.txt ?
答:alice虽然有查看的权限,但是没有执行的权限就进不了root目录。
如果要让alice能查看到文件,那就要去放开root目录的权限,太麻烦了,因此这时候就要用到高级权限。

2.高级权限的类型

suid ==== 4 提权 (对命令提权 提权后所有人可用提权命令)(比较危险)
sgid ==== 2 组权限继承 (只能对目录设置,在此组下创建的目录和文件,继承,提权组的属主)
sticky == 1 (t权限)  权限控制(在此权限下只有root用户和自己能删除自己创建的文件)

3.设置特殊权限

添加权限:
chmod u+s cat        加命令          提权
chmod g+s /opt       加目录路径       继承
chmod o+t /opt       目录路径         仅root和自己可删除

数字添加权限方式:
chmod 4777 file
chmod 2770 dir
chmod 1770 dir

取消权限:
chmod u-s cat        加命令          提权
chmod g-s /opt       加目录路径       继承
chmod o-t /opt       目录路径         仅root和自己可删除

1.5 两种给普通用户提权手段

sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。

suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以 root 身份在执行。

1.放开所有命令使用权

配置解释:
root表示用户名
第一个 ALL=(ALL) 指示允许从任何主机登陆执行任何命令。
第二个 ALL 执行的时候不需要输入密码执行所有命令。

[root@linux-server ~]# visudo #打开配置文件
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

2.放开个别命令使用权

[root@linux-server ~]# visudo
91 ## Allow root to run any commands anywhere
92 root 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

1.6 隐藏权限

文件权限管理之: 隐藏权限防止root误删除

查看文件隐藏权限
lsattr 文件名

查看目录隐藏权限
lsattr -d 目录名

设置权限
chattr +i file #只允许查看
chattr +a file #不允许修改,只允许追加,和查看
chattr +A file #告诉系统不要修改对这个文件的最后访问时间
原文地址:https://www.cnblogs.com/eba001/p/14286211.html