用户与组

超级用户rootUID=0
普通用户1系统用户centos6UID:1-499 ; centos7UID:1-999
2本地用户centos6UID:500+ ; centos7UID:1000+
虚拟用户伪用户一般不会用来的登录系统,主要用于维持某个服务的正常运行

UID:每个用户的身份标识,类似于人的身份证号码

用户和组的关系

  • 一对一
  • 一对多
  • 多对一
  • 多对多

配置文件

/etc/passwd用户配置文件.记录每个用户的基本信息,并且对所有用户可读,每一行记录对应一个用户,每行记录通过冒号分隔
/etc/group用户组文件.用户组的所有信息存放地,组名不能重复
/etc/shadow用户对应的密码信息,因为passwd文件对所有用户都是可读的,为安全起见,把密码从passwd中分离出来放入这个单独的文件,该文件只有可读权限,从而保证密码安全性

/etc/passwd

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
...

每个字段解释
用户名;密码占位符;UID;GID;用户描述;用户主目录;登录后使用的shell

/etc/group

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
...

字段解释
组名:x:GID:(当前组中的用户)

/etc/shadow

[root@localhost ~]# cat /etc/shadow
root:$6$8DLTLutUGU6/s0BC$O/oTIS6Jo5pBHOfouJRC8ph.x/KDZh2HDibV6Py.VCD7rNxsVz8nEi7rK3UFrZrE1fVw5MFLTZeoqDS48D.QM0::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
...

参数解释:
用户名;
被加密后的密码;
最近更改密码的日期,从19700101开始计算,69年UNIN出现的,1970/1/1/开始计算;
密码不能更改的天数,0表示随时可以更改;
密码过期时间,多少天后必须更改;
密码需要更改的前七天发出警告;
宽限天数,密码过了几天后还能更改密码;
账号过期时间;
保留;

密码加密.分为三个部分
第一部分表示使用哪种哈希算法
        $1表示MD5,$6表示SHA-512  $5表示SHA-256
第二部分用于加密哈希的salt
第三部分是已加密的哈希

用户管理命令

添加用户

useradd -u "UID" -g "初始组" -G "附加组" -s "登录的shell" 用户

1添加harry用户

[root@localhost ~]# useradd harry
[root@localhost ~]# tail -1 /etc/passwd
harry:x:1000:1000::/home/harry:/bin/bash
[root@localhost ~]# id harry
uid=1000(harry) gid=1000(harry) groups=1000(harry)

2创建harry1用户,指定UID为1100

[root@localhost ~]# useradd -u 1100 harry1
[root@localhost ~]# id harry1
uid=1100(harry1) gid=1100(harry1) groups=1100(harry1)

3创建harry2用户,指定家目录

[root@localhost ~]# useradd -d /opt/harry2 harry2
[root@localhost ~]# ls /opt/
harry2
[root@localhost ~]# id harry2
uid=1101(harry2) gid=1101(harry2) groups=1101(harry2)

4创建harry3用户,不创建家目录

[root@localhost ~]# useradd -M harry3
[root@localhost ~]# ls /home/
harry  harry1
[root@localhost ~]# id harry3
uid=1102(harry3) gid=1102(harry3) groups=1102(harry3)

5创建harry4用户,指定主组harry

[ root@localhost ~]# useradd -g harry harry4
[root@localhost ~]# id harry4
uid=1103(harry4) gid=1000(harry) groups=1000(harry)

6创建harry5用户,指定附属组harry,harry1

[root@localhost ~]# useradd -G harry,harry1 harry5
[root@localhost ~]# id harry5
uid=1104(harry5) gid=1104(harry5) groups=1104(harry5),1000(harry),1100(harry1)
[root@localhost ~]# 

创建用户的另一命令adduser,两者没有任何区别.是useradd的软链接

[root@localhost ~]# which adduser
/usr/sbin/adduser
[root@localhost ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Jun  1 02:55 /usr/sbin/adduser -> useradd

添加密码

1 passwd harry1

[root@localhost ~]# passwd harry1
Changing password for user harry1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

2 echo 123456 | passwd --stdin harry1

[root@localhost ~]# echo 123456 | passwd --stdin harry2
Changing password for user harry2.
passwd: all authentication tokens updated successfully.

删除用户

userdel -r harry5

[root@localhost ~]# userdel -r harry5
[root@localhost ~]# userdel -r harry4
[root@localhost ~]# userdel -r harry3

选项
-r 删除的时候,会同时删除用户的家目录和/var/mail下的目录

扩展1,模板文件被删除之后显示不正常的问题

[root@localhost ~]# rm -rf /home/harry1/.bash*
[root@localhost ~]# su - harry1
Last login: Sat Jun  1 04:53:22 CST 2019 on pts/1
-bash-4.2$
-bash-4.2$ exit
logout
[root@localhost ~]# cp /etc/skel/.bash* /home/harry1/
[root@localhost ~]# chown harry1:harry1 /home/harry1/.bash*
[root@localhost ~]# su - harry1
Last login: Sat Jun  1 04:54:15 CST 2019 on pts/1
[harry1@localhost ~]$ exit
logout
[root@localhost ~]# 

扩展2,忘记root密码,怎样找回呢

1开机在选择内核的界面处,按"e"

2修改ro为 rw init=/sysroot/bin/sh

3按ctrl+x保存:进入紧急模式

02-13 22:16