用户与权限管理


用户账号管理
  • 用户账号的作用:用户账号可用来登录系统,可以实现访问控制

  • 用户模板目录:/etc/skel/

    [[email protected] skel]# ls
    [[email protected] skel]# ls -a
    .  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
    #此目录文件是用户创建时生成文件的源文件
    
useradd创建用户
  • useradd命令用于创建新的用户
  • 命令格式:useradd [选项] 用户名
  • 常用选项:
    • -u 指定用户UID
    • -d 指定用户家目录
    • -c 用户描述信息
    • -g 指定用户基本组
    • -G 指定用户附加组
    • -s 指定用户的shell
#创建用户user1
[[email protected] ~]# useradd user1
[[email protected] ~]# id user1
uid=1001(user1) gid=1001(user1) 组=1001(user1)
[[email protected] ~]# 
#设置新增用户的UID,家目录,描述,解释器
[[email protected] ~]# useradd -u 916 -d /opt -c "rhce"  -s /bin/sh user2
useradd:用户“user2”已存在
[[email protected] ~]# tail -2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:916:1002:rhce:/opt:/bin/sh
[[email protected] ~]# userdel user2 
[[email protected] ~]# ls /opt/
anaconda-ks.cfg  flag
[[email protected] ~]# 
#/sbin/nologin:禁止用户登录系统
id命令
[[email protected] ~]# id user1
uid=1001(user1) gid=1001(user1) 组=1001(user1)
[[email protected] ~]# 
/etc/passwd文件
  • UID:0 超级管理员 1-499系统伪用户(无法登陆且没有家目录)500-6555 普通用户
  • 组:
    • 基本组(初始组):一个用户只允许有一个基本组
    • 附加值:一个用户允许有多个附加组
    • 用户》shell程序》内核》硬件
[[email protected] ~]# head -1 /etc/passwd
  root:x:0:0:root:/root:/bin/bash
#用户名:密码占位符:UID:基本组:用户描述信息:家目录:解释器程序
/etc/default/useradd文件
[[email protected] ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100	#用户默认组
HOME=/home  #用户家目录
INACTIVE=-1	#密码过期宽限天数(/etc/shadow文件第7个字段)
EXPIRE=		#密码失效时间(/etc/shadow文件的第8个字段)
SHELL=/bin/bash #默认使用的shell
SKEL=/etc/skel  #模板目录
CREATE_MAIL_SPOOL=yes #是否建立邮箱

/var/spool/mail/用户邮件目录
[[email protected] ~]# ls /var/spool/mail/
rpc  user1  user2  visitor
[[email protected] ~]# 
passwd用户密码设置
  • passwd命令用于设置用户密码
  • 命令格式:passwd [选项] 用户名
  • 密码规范:长度不少于8位,复杂度(数字,大小写字母,特殊字符),root用户设置密码随心
  • 常用选项
    • -s #查看密码信息
    • -l 锁定用户密码
    • -u 解锁用户密码
    • -d 删除密码
    • –stdin 通过管道设置密码 (echo “密码” |passwd –stdin 用户名)
/etc/shadow用户密码文件

用户的密码信息存放在/etc/shadow文件中,该文件默认任何人都没有权限(root除外)

[[email protected] ~]# cat /etc/shadow
root:$6$gCYiN5pc1eO5iMIw$DNmRUqF59ZSjdjSOAtfVhmXdvkXZzoMxT0KQJui5lhv6m.QyQ28KaO9xV2YFh5MNwK1r7u0EtMiY4L/Yj00xC0::0:99999:7:::
#用户名
#密码加密字符串,加密算法为sha512散列加密算法,如果密码位是“*”或者“!”表示密码已经过期
#密码最后一次修改时间,日期从从1970年1月1日开始,每一天时间戳加1
#密码修改的期限,如果该字段表示为0表示可以随时修改密码,
#密码有效期
#密码到期前警告
#密码过期后的宽限天数 
#账号失效时间
#保留
#chage命令用于修改/etc/shadow文件信息,-d选项修改文件第三个字段
[[email protected] ~]#chage -d 0 user1
#此操作后user1用户登录之后必须更改密码
su命令
  • su命令用于切换用户身份
  • 命令格式:su – 用户名
[[email protected] ~]# su - visitor
[[email protected] ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/visitor/.local/bin:/home/visitor/bin
[[email protected] ~]$ 

usermod修改用户属性
  • usermod命令用于修改用户的属性
  • 命令格式:usermod [选项] 用户名
  • 常用选项:
    • -u 指定用户的uID
    • -c 修改用户的描述信息
    • -d 修改用户家目录
    • -g 修改用户基本组
    • -G 修改用户的附加组
    • -s 修改用户的shell
[[email protected] ~]# id visitor 
uid=1000(visitor) gid=1000(visitor) 组=1000(visitor)
[[email protected] ~]# id user1
uid=1001(user1) gid=1001(user1) 组=1001(user1)
[[email protected] ~]# usermod -u 1003  user1
[[email protected] ~]# id user1
uid=1003(user1) gid=1001(user1) 组=1001(user1)
[[email protected] ~]# usermod -G visitor user1 
[[email protected] ~]# id user1
uid=1003(user1) gid=1001(user1) 组=1001(user1),1000(visitor)
[[email protected] ~]# 

userdel删除用户
  • userdel用于删除给定的用户及相关的文件,若不加选项则则只删除用户,不删除相关文件
  • 命令格式:userdel [选项] 用户名
  • 常用选项:
    • -r 删除用户同时删除用户相关的文件
[[email protected] ~]# userdel -r user1 
[[email protected] ~]# ls /home/
visitor
[[email protected] ~]# 
groupadd添加新组
  • groupadd用于添加新组
  • 命令格式:groupadd [选项] 组名
  • 常用选项:
    • -g GID #指定组的GID
    • -n 新组名 旧组名 #修改组名
[[email protected] ~]# groupadd -g 1900 rhce
[[email protected] ~]# tail -1 /etc/group
rhce:x:1900:
/etc/group
[[email protected] ~]# tail -1 /etc/group
visitor:x:1000:visitor
#组名:组密码:GID:组中附加用户
/etc/gshadow
[[email protected] ~]# tail -1 /etc/gshadow
visitor:!!::visitor
#组名:组密码:组内管理员:组内附加用户
groupmod修改组属性
  • groupmod用于修改组属性
  • 命令格式:groupmod [选项] 组名
  • 常用选项:
    • -g GID #指定组的GID
    • -n 新组名 旧组名 #修改组名
[[email protected] ~]# groupmod -g 2116 rhce 
[[email protected] ~]# tail -1 /etc/group
rhce:x:2116:
[[email protected] ~]# 

gpasswd组管理命令
  • gpasswd是liunx工作组文件/etc/group和/etc/gpasswd的管理工具,用于将用户添加到组或者从组删除

  • 命令格式:gpasswd [选项] 用户名 组名

  • 常用选项:

    • -a #将用户添加到工作组
    • -d #将用户从工作组删除
    #添加
    [[email protected] ~]# ls /home/
    user1  user2  visitor
    [[email protected] ~]# gpasswd -a user1 rhce
    正在将用户“user1”加入到“rhce”组中
    [[email protected] ~]# gpasswd -a user2 rhce
    正在将用户“user2”加入到“rhce”组中
    [[email protected] ~]# gpasswd -a visitor rhce
    正在将用户“visitor”加入到“rhce”组中
    [[email protected] ~]# tail /etc/group
    postfix:x:89:
    ntp:x:38:
    tcpdump:x:72:
    stapusr:x:156:
    stapsys:x:157:
    stapdev:x:158:
    visitor:x:1000:visitor
    rhce:x:2116:user1,user2,visitor
    user1:x:1001:
    user2:x:1002:
    [[email protected] ~]# 
    #删除
    [[email protected] ~]# gpasswd -d user1 rhce
    正在将用户“user1”从“rhce”组中删除
    [[email protected] ~]# gpasswd -d user2 rhce
    正在将用户“user2”从“rhce”组中删除
    [[email protected] ~]# gpasswd -d visitor rhce
    正在将用户“visitor”从“rhce”组中删除
    [[email protected] ~]# 
    
    
groupdel删除组
  • groupdel用于删除组

  • 命令格式:groupdel 组名

    [[email protected] ~]# groupdel rhce 
    [[email protected] ~]# tail /etc/group
    postdrop:x:90:
    postfix:x:89:
    ntp:x:38:
    tcpdump:x:72:
    stapusr:x:156:
    stapsys:x:157:
    stapdev:x:158:
    visitor:x:1000:visitor
    user1:x:1001:
    user2:x:1002:
    [[email protected] ~]# 
    
chmod权限管理
  • chmod用于设置用户对文件的权限

  • 命令格式:chmod [选项] 归属关系+-=权限类别 文件…

  • root用户可以修改任何文件和目录的权限

  • 文件所有者

  • 常用选项:

    • -R 递归修改,包含目录下的所有子文件及目录
  • 归属关系:u所有者 g所属组 o其他人

  • 权限类别:r读取 w写入 x执行 -没有权限

  • 操作:+添加权限 -去除权限 =重新定义权限

  • 权限数字表示:r—4 w—2 x—1 0没有权限

[[email protected] ~]# ll flag 
-rw-r--r--. 2 root root 5 9月  16 2021 flag
[[email protected] ~]# chmod u+x flag 
[[email protected] ~]# ll flag 
-rwxr--r--. 2 root root 5 9月  16 2021 flag
[[email protected] ~]# chmod g+x,o+w flag 
[[email protected] ~]# ll flag 
-rwxr-xrw-. 2 root root 5 9月  16 2021 flag
[[email protected] ~]# chmod 644 flag 
[[email protected] ~]# ll flag 
-rw-r--r--. 2 root root 5 9月  16 2021 flag
[[email protected] ~]# 

umask预设权限
  • umask用于显示或者设置新创建文件的默认权限
  • 命令格式:umask [-p] [-S] [mode]
chown归属关系管理
  • chown用于设置文件所有者和所属组关系

  • 命令格式:

    • chown [选项] 所有者:所属组 文档 #同时修改所有者和所属组身份
    • chown [选项] 所有者 文档 #只修改所有者身份
    • chown [选项] 所属组 文档 #只修改所属组身份
  • 常用选项

    • -R 递归修改
[[email protected] ~]# ll
总用量 16
-rw-------. 1 root root 1744 8月   3 10:06 anaconda-ks.cfg
-rw-r--r--. 2 root root    5 9月  16 2021 flag
[[email protected] ~]# chown visitor:visitor flag 
[[email protected] ~]# ll
总用量 16
-rw-------. 1 root    root    1744 8月   3 10:06 anaconda-ks.cfg
-rw-r--r--. 2 visitor visitor    5 9月  16 2021 flag
SetUID特殊权限设置
  • SetUID(SUID):对于一个可执行的文件用了SUID权限后,普通用户在执行该文件后,临时拥有文件所有者的身份,该权限只在程序执行过程中有效,程序执行完毕后用户会恢复原有身份

  • SetUID权限会附加在所有者的x权限上,所有者的x权限表示会变成s

  • SetUID命令格式 :chmod u+s 文件名

    [[email protected] ~]# which chown 
    /bin/chown
    [[email protected] ~]# ll /bin/chown 
    -rwxr-xr-x. 1 root root 62840 4月  11 2018 /bin/chown
    [[email protected] ~]# chmod u+s /bin/chown 
    [[email protected] ~]# ll /bin/chown 
    -rwsr-xr-x. 1 root root 62840 4月  11 2018 /bin/chown
    [[email protected] ~]# 
    
SetGID特殊权限
  • SetGID:当对于一个可执行的文件设置SGID后,普通用户在执行该文件后,临时拥有文件所有组的身份,该权限只在程序执行过程中有效,程序执行完毕后用户会恢复原有组身份

  • SetUID权限会附加在所属组的x权限上,所属组的x权限表示会变成s

  • SetUID命令格式:chmod g+s 文件名

SetBID特殊权限
  • StickyBIT(SBIT):该权限只针对于目录有效,当一个普通用户对一个目录拥有w和x权限时,普通用户可以在此目录下拥有增删改的权限,应对普通用户对目录拥有w权限时,是可以删除此目录下的所有文件
  • 如果对一个目录设置SBIT权限,除了root可以删除所有文件,普通用户就算对此目录拥有w权限也只能删除自己建立的文件,不能是删除其他用户建立的文件
  • SBIT权限会附加在其他人的x权限位上,其他人的x权限的表示会变成t
  • 命令格式:chmod o+t 目录名
FACL控制列表
getfacl用来查看文件facl权限

命令格式:getfacl 文件名

[[email protected] rhce]# getfacl flag 
# file: flag
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/280040.html

(0)
上一篇 2022年8月12日 08:30
下一篇 2022年8月12日 08:30

相关推荐

发表回复

登录后才能评论