linux学习笔记之用户身份与权限
管理员UID为0:系统的管理员用户。
系统用户UID为1~999:Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会由独立的系统用户负责运行,进而有效控制被破坏范围。
普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。
通过使用用户组号码(GID,Group IDentification),可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务(在/etc/group里查看)
另外,在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳到其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。
Tips
基本用户组就像是原生家庭,是在创建账号(出生)时就自动生成的;而扩展用户组则像工作单位,为了完成工作,需要加入到各个不同的群体中,这是需要手动添加的。
命令
useradd命令中的参数以及作用
| 参数 | 作用 | 
| -d | 指定用户的家目录(默认为/home/username) | 
| -e | 账户的到期时间,格式为YYYY-MM-DD. | 
| -u | 指定该用户的默认UID | 
| -g | 指定一个初始的用户基本组(必须已存在) | 
| -G | 指定一个或多个扩展用户组 | 
| -N | 不创建与用户同名的基本用户组 | 
| -s | 指定该用户的默认Shell解释器 | 
usermod命令中的参数以及作用
| 参数 | 作用 | 
| -c | 填写用户账户的备注信息 | 
| -d -m | 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 | 
| -e | 账户的到期时间,格式为YYYY-MM-DD | 
| -g | 变更所属用户组 | 
| -G | 变更扩展用户组 | 
| -L | 锁定用户禁止其登录系统 | 
| -U | 解锁用户,允许其登录系统 | 
| -s | 变更默认终端 | 
| -u | 修改用户的UID | 
| 参数 | 作用 | 
| -l | 锁定用户,禁止其登录 | 
| -u | 解除锁定,允许用户登录 | 
| --stdin | 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username | 
| 参数 | 作用 | 
| -f | 强制删除用户 | 
| -r | 同时删除用户及用户家目录 | 
文件权限(一般、特殊、隐藏)与归属

文件权限的字符与数字表示

若某个文件的权限为7,则代表可读、可写、可执行(4+2+1)
文件的特殊权限
-rwsr-xr-x. 1 root root 33600 Apr 7 2020 /usr/bin/passwd
drwxrwxrwt. 10 root root 4096 Oct 22 19:45 /tmp
SUID、SGID、SBIT特殊权限的设置参数
| 参数 | 作用 | 
| u+s | 设置SUID权限 | 
| u-s | 取消SUID权限 | 
| g+s | 设置SGID权限 | 
| g-s | 取消SGID权限 | 
| o+t | 设置SBIT权限 | 
| o-t | 取消SBIT权限 | 
[root@localhost ~]# ll anaconda-ks.cfg
-r-s-wsr-T. 1 root root 1037 Aug 20 15:45 anaconda-ks.cfg
文件的隐藏属性
chattr命令用于设置文件的隐藏权限,语法格式为“chattr [参数] 文件名称”。
如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”
| 参数 | 作用 | 
| i | 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 | 
| a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) | 
| s | 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域),xfs文件系统不支持 | 
[root@localhost ~]# lsattr anaconda-ks.cfg
----i--------------- anaconda-ks.cfg
文件访问控制列表
setfacl命令用于管理文件的ACL权限规则,英文全称为“set files ACL”,语法格式为“setfacl [参数] 文件名称”。
setfacl命令中的参数以及作用
| 参数 | 作用 | 
| -m | 修改权限 | 
| -M | 从文件中读取权限 | 
| -x | 删除某个权限 | 
| -b | 删除全部权限 | 
| -R | 递归子目录 | 
ACL权限提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制。使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R递归参数;针对普通文件则使用-m参数;如果想要删除某个文件的ACL,则可以使用-b参数,要删除某一条指定的权限,就用-x参数
[root@linuxprobe ~]# setfacl -Rm u:linuxprobe:rwx /rootu用户(g组):用户名:权限 文件
[root@linuxprobe ~]# setfacl -x g:linuxprobe /etc/fstab
[root@linuxprobe /]# getfacl -R home > backup.aclACL权限的恢复也很简单,使用的是--restore参数
[root@linuxprobe /]# setfacl --restore backup.acl
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号