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 等文件

posted @ 2021-07-07 16:11  虾虾78  阅读(163)  评论(0)    收藏  举报