用户账号管理
-
用户账号的作用:用户账号可用来登录系统,可以实现访问控制
-
用户模板目录:/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控制列表
-
FACL(filessystemctl Access control list)文件系统访问控制列表:利用文件扩展属性保存额外的访问控制权限,单独为某一位用户量身的定制一位权限
-
命令格式:setfacl 选项 归属关系:权限 文档
-
常用选项:
- -m 设置权限
- -x 删除指定用户权限
- -b 删除所有用户权限
#设置权限 [[email protected] rhce]# cat flag hello [[email protected] rhce]# ll flag -rw-r--r--. 1 root root 6 8月 12 02:59 flag [[email protected] rhce]# setfacl -m u:visitor:rw flag [[email protected] rhce]# [[email protected] rhce]$ cat flag hello [[email protected] rhce]$ cat flag hello [[email protected] rhce]$ vim flag [[email protected] rhce]$ cat flag hello rhce #删除指定用户权限 [[email protected] rhce]# setfacl -x u:visitor flag [[email protected] rhce]# getfacl flag # file: flag # owner: root # group: root user::rw- group::r-- mask::r-- other::r-- #删除所有用户权限 [[email protected] rhce]# setfacl -b flag [[email protected] rhce]#
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