Linux知识心得14 Linux 用户(用户组)+文件权限+su sudo权限
笔记
1、复习
1、用户及用户组
1、创建用户
2、创建用户组
3、手动创建用户
4、用户相关文件
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/etc/skel
2、文件权限
chmod : 设置权限
r : 可读 :4
w : 可写 :2
x : 可执行:1
- : : 0
chmod [参数] [数字权限] [文件路径]
权限对文件及目录的意义
要想执行文件,文件本身必须有可执行权限。
要想查看文件,路径中所有的文件夹至少有可执行权限,文件本身至少有可查看权限。
要想写文件,路径中所有的目录至少有可执行权限,文件本身至少有可写权限。
3、权限的归属
u
g
o
练习:
1、设置文件其他人的权限为rw
chmod o=rw xxx
2、为文件属主增加w权限
chmod u+w xxx
3、为文件夹下所有的文件属主增加w权限
chmod -R u+w xxx
2、今天内容
1、特殊权限
SUID
1、SUID 权限仅对⼆进制可执⾏⽂件有效
2、如果执⾏者对于该⼆进制可执⾏⽂件具有 x 的权限,执⾏者将具有该⽂件的所有者的权限
3、本权限仅在执⾏该⼆进制可执⾏⽂件的过程中有效
使用场景:
1、安装软件需要调用系统文件时使用
SGID
文件:在执⾏该⽂件时,⽤户将获得该⽂件所属组的权限
目录:当目录添加s权限,则其内创建的所有文件的属组为目录的属组。
SBIT
针对的对象时目录,目录设置完SBIT权限之后,目录下所有的文件在任何权限下只有属主才能够删除该文件。
修改文件用户及用户组
chown 用户名称.用户组名称 文件路径
2、umask权限
文件夹的权限默认是:777
文件的权限默认是:666
最终文件的权限:默认的文件权限 - umask权限 (遇到奇数则加1)
最终文件夹得权限:默认的文件夹权限 - umask权限
普通文件umask : 002
超管文件umask : 022
普通文件最终权限: 664
超管文件最终权限: 644
普通文件夹最终权限: 775
超管文件夹最终权限: 755
例1:假设umask为345,请问创建的文件夹权限为多少,文件权限为多少?
432 r---wx-w-
422 r---w--w-
例2:假设umask为123,请问创建的文件夹权限为多少,文件权限为多少?
664 654 rw-r-xr--
644 644 rw-r--r--
3、ACL权限
1、什么是ACL?
ACL是对Linux权限体系的再次细分,可以实现对用户粒度的针对性权限控制。
2、ACL用来做什么的?
以实现对用户粒度的针对性权限控制。
3、为什么要用ACL权限?
在某些场景下,对特殊的用户做针对性的权限控制
4、怎么使用ACL权限
setfacl : 设置ACL权限
格式:
设置ACL:setfacl -m u:[用户名]:[权限] [文件路径]
删除ACL:setfacl -x u:[用户名] [文件路径]
清除所有权限:setfacl -b [文件路径]
设置特定组权限:
setfacl -m g:test:x [文件路径]
getfacl :查看ACL权限
格式:getfacl [文件路径]
例1:要求test用户有可读权限,test01有可写权限,test用户组有可执行权限
setfacl -m u:test:r 1.txt
setfacl -m u:test01:w 1.txt
setfacl -m g:test:x 1.txt
5、mask
mask权限是acl中的最高权限
6、ACL权限继承
将上级目录设置继承acl权限,里面创建的文件拥有和上级目录相同的acl权限。
格式:
setfacl -m d:u|g|o:[用户|用户组]:[权限] [文件路径]
练习:
1、将文件11.txt设置000权限,其test01用户对其拥有可读权限,test用户拥有可写权限
2、要求实现在目录下创建的文件跟上层目录的用户组相同,同时test用户对该文件拥有r权限,其他用户不拥有任何权限
[root@localhost tmp]# chmod g+s test/
[test@localhost tmp]$ touch test/2.txt
[test@localhost tmp]$ ll test/
total 0
-rw-r--r--. 1 test root 0 Jul 2 12:32 2.txt
3、要求实现在目录下创建的文件跟上层目录的用户组相同,同时test用户对该文件拥有r权限,其他用户对其拥有可写权限
4、文件属性
例1:创建一个文件user.ini,要求任何人不能删除
touch user.ini
chattr +i user.ini
3、su和sudo
现象:
修改/etc/profile文件,所有用户全部生效
修改~/.bashrc文件,只有当前用户生效
1、登录用户其访问的文件有哪些以及优先级顺序
/etc/profile
/etc/profile.d/*
~/.bashrc
~/.bash_profile
/etc/bashrc
储备知识:
1、su [登录]
~/.bashrc > /etc/bashrc > /etc/perfile.d/*.sh
2、su - [登录]
/etc/profile > /etc/perfile.d/*.sh > ~/.bash_profile > ~/.bashrc > /etc/bashrc
例1:添加TSET=123这个环境变量时,使用su -登录方式,可以修改那些文件。
修改 ~/.bashrc 、 /etc/bashrc 、 /etc/perfile.d/*.sh 等文件

浙公网安备 33010602011771号