Linux-day04
用户管理
[root@qls ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
以:为分隔符
root #用户名
x #密码占位符
0 #用户id
0 #用户组id/GID
root #用户注释信息
/root #家目录
/bin/bash #用户登录的shell
[root@qls ~]# head -1 /etc/shadow
root:$6$PZUVzAeQdrf8bOt5$6fhIZlLOf6EoweOMBbv7JMKaA6hCwfBUAHfNbvXI6eXl2ePXJZmmciXQk3yfcUesYRRjvD.Tk6VXcDl0wkV6d.::0:99999:7:::
[root@qls ~]# head -1 /etc/shadow
跟用户相关的命令
useradd
选项
-u #设置uid
-g #指定GID,组名称,前提组要存在
-c #设置注释信息
-s #指定登录shell
-M #不创建家目录
-G #指定附加组
-r #创建系统用户,不创建家目录
-d #指定家目录
usermod
选项
-u #修改uid
-g #修改组信息
-c #修改注释信息
-s #修改登录shell
-l #修改用户名称
-G #添加附加组
-a #追加附加组
userdel #删除用户,默认不删除家目录和邮件信息
-r #删除家目录和邮件信息
CentOS-7
0 #root 超级管理员
1-200 #系统用户,进程服务运行的用户
201-999 #系统用户,服务软件运行的用户
1000+ #普通用户
用户的创建过程
[root@qls ~]# ll /etc/login.defs
-rw-r--r--. 1 root root 2028 Oct 30 2018 /etc/login.defs
[root@qls ~]# ll /etc/default/useradd
-rw-r--r--. 1 root root 119 Oct 30 2018 /etc/default/useradd
[root@qls ~]# grep -Ev '^$|^#' /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
[root@qls ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
#用户家目录的环境变量不存在故障
-bash-4.2# pwd
/root
-bash-4.2# cp /etc/skel/.bash* ./
-bash-4.2#
密码管理
passwd #设置密码
passwd #针对当前用户设置密码
passwd username #针对用户设置密码
root用户可以给任意用户设置密码,密码没有要求
普通用户只能针对自己设置密码,密码必须最低是8位,且结构不能太简单
非交互设置密码
[root@qls ~]# echo '1' |passwd --stdin root
随机密码
[root@qls ~]# echo $(echo $RANDOM|md5sum |cut -c 1-10)|tee pass.txt |passwd --stdin root
[root@qls ~]# yum install -y expect
[root@qls ~]# mkpasswd -l 24 -d 6 -c 6 -C 6 -s 6
#D4U;jT1D3k%hr@0ty4KP&4~
用户组
基本组,一个用户只能有一个基本组
附加组,用户有多个附加组
用户组相关配置文件
[root@qls ~]# ll /etc/group
-rw-r--r--. 1 root root 670 Aug 17 11:29 /etc/group
[root@qls ~]# ll /etc/gshadow
----------. 1 root root 524 Aug 17 11:29 /etc/gshadow
[root@qls ~]# cat /etc/group
root:x:0:
root #用户组名称
x #密码占位符
0 #GID
4列 #显示该用户属于哪个用户附加组,就显示这个用户名称,
[root@qls ~]# cat /etc/gshadow
root:::
组相关命令
groupadd
选项
-g #指定gid号
[root@qls ~]# groupadd test-1
[root@qls ~]#
[root@qls ~]#
[root@qls ~]# groupadd test-2
[root@qls ~]#
[root@qls ~]#
[root@qls ~]# useradd -u 888 -g test-1 -G test-2 user-1
[root@qls ~]#
[root@qls ~]#
[root@qls ~]# id user-1
uid=888(user-1) gid=1005(test-1) groups=1005(test-1),1006(test-2)
[root@qls ~]# groupadd test-3
[root@qls ~]#
[root@qls ~]#
[root@qls ~]# usermod -aG test-3 user-1
[root@qls ~]# id user-1
uid=888(user-1) gid=1005(test-1) groups=1005(test-1),1006(test-2),1007(test-3)
[root@qls ~]# groupadd test-4
[root@qls ~]#
[root@qls ~]# usermod -G test-4 user-1
[root@qls ~]# id user-1
uid=888(user-1) gid=1005(test-1) groups=1005(test-1),1008(test-4)
groupmod
选项
-g #修改gid
-n #修改组名称
groupdel
用户组不属于任何用户的基本组,可以删除,否则,不能删除
解决删除用户组属于用户的基本组
1.修改该用户的基本组
2.删除用户组下面的用户。
查看用户的信息
id #查看用户信息
[root@qls ~]# echo $USER
root
[root@qls ~]# echo $UID
0
w #查看系统所有登录的用户
who #查看系统登录用户
whoami #查看当前登录用户
用户授权
su #切换用户
su 和 su - 有什么区别
个人配置
-rw-r--r--. 1 root root 193 Aug 17 10:36 .bash_profile
-rw-r--r--. 1 root root 231 Aug 17 10:36 .bashrc
全局
[root@qls ~]# ll /etc/profile
-rw-r--r--. 1 root root 1819 Oct 31 2018 /etc/profile
[root@qls ~]# ll /etc/profile.d/*
[root@qls ~]# ll /etc/bashrc
-rw-r--r--. 1 root root 2884 Aug 15 16:11 /etc/bashrc
profile #系统环境变量,别名
bashrc #本地变量和别名
个人和全局变量有冲突,个人优先全局
交互式shell
非交互式shell
登录式shell
非登录式shell
sudo
visudo #授权
100 root ALL=(ALL) ALL
101 user01 ALL=(ALL) /bin/cat,/bin/yum
用户名 主机名=(角色) 权限
user01 ALL=(ALL) NOPASSWD:/bin/cat,/bin/yum
不需要输入密码