用户配置文件passwd
 
[root@localhost ~]# ls /etc/passwd
 
/etc/passwd
 
[root@localhost ~]# cat /etc/passwd
 
 
 
 
以下为内容
 
 
 
 
root:x:0:0:root:/root:/bin/bash 
  
 
分为7段, 
 用户名:密码:uid:gid:用户注释信息:用户的家目录:用户的shell
 
bin:x:1:1:bin:/bin:/sbin/nologin
 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
 
  
 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
 
operator:x:11:0:operator:/root:/sbin/nologin
 
games:x:12:100:games:/usr/games:/sbin/nologin
 
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
 
nobody:x:99:99:Nobody:/:/sbin/nologin
 
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
 
dbus:x:81:81:System message bus:/:/sbin/nologin
 
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
 
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
 
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
 
elon:x:1000:1000:ELON:/home/elon:/bin/bash
 
andy:x:998:996::/home/andy:/bin/bash
 
[root@localhost ~]#
 
 
 
 
密码配置文件shadow
 
 此文件专门用来控制用户密码
 
 
 
 
[root@localhost ~]# ls /etc/shadow
 
/etc/shadow
 
[root@localhost ~]# cat /etc/shadow
 
 
 
 
以下为文件内容:
 
 
 
 
root 
 : 
 $6$nbo1G1TztYCYby9p$NOfRzuL3kAXFzqo36NRVpTaL.ittlkf6C0Oj4t5EkrkEcBGFrhXt35WS/
 
vc3QbzGheTN9w44vVzASXPyVskUc1 
 ::0:99999:7:::
 

  root表示root用户:第二段的字符串表示root用户的密码加密字符串且不可反编译 

 
bin:*:17110:0:99999:7:::
 
daemon:*:17110:0:99999:7:::
 
adm:*:17110:0:99999:7:::
 
lp:*:17110:0:99999:7:::
 
sync:*:17110:0:99999:7:::
 
shutdown:*:17110:0:99999:7:::
 
halt:*:17110:0:99999:7:::
 
mail:*:17110:0:99999:7:::
 
operator:*:17110:0:99999:7:::
 
games:*:17110:0:99999:7:::
 
ftp:*:17110:0:99999:7:::
 
nobody:*:17110:0:99999:7:::
 
systemd-network:!!:17617::::::
 
dbus:!!:17617::::::
 
polkitd:!!:17617::::::
 
postfix:!!:17617::::::
 
sshd:!!:17617::::::
 
elon: 
 $6$7T2LwM252aV7EBnh$vqkzstAwi2piSevuj8ezkfLz7VpR9ioZcAjrak8d01l9PQwGm5DunUL1FhfyeRHLQnkwEM9uciyOYI2Tb1b2B1 
 ::0:99999:7:::
 
此处为elon用户的密码加密字符串
 
[root@localhost ~]# 
 
 
 
 
例:
 
给elon用户设置和root用户相同的密码,并显示对比 
 :
 
[root@localhost ~]# passwd elon
 
更改用户 elon 的密码 。
 
新的 密码:
 
无效的密码: 密码少于 8 个字符  
 此处给不安全密码的提醒,实际并不影响密码修改
 
重新输入新的 密码:
 
passwd:所有的身份验证令牌已经成功更新。
 
[root@localhost ~]#  
 head -n1 /etc/shadow; tail -n2 /etc/shadow 
 
显示前后两行,对比相同密码的不同加密字符串
 
root: 
 $6$nbo1G1TztYCYby9p$NOfRzuL3kAXFzqo36NRVpTaL.ittlkf6C0Oj4t5EkrkEcBGFrhXt35WS/vc3QbzGheTN9w44vVzASXPyVskUc1 
 ::0:99999:7:::
 
elon: 
 $6$Kk5rQSnQ$mchOKf1kMJEH5f.NYflNBWocVPKO49zc3a54CgQJ1.ZZ7qsP7cPOHJbUfYgrzVSbow58j43QmxToNjbNLPO6W. 
 :17623:0:99999:7:::
 
你可以看到上述root用户和elon用户 
 密码相同 
 但密码的 
 加密字符串并不一样,非常安全
 
[root@localhost ~]# 
 
 
 
 
 
 
 
用man命令查看shadow文件说明,并查看各项目说明
 
 
 
 
[root@localhost ~]# man shadow
 
SHADOW(3) 库函数调用 SHADOW(3)
 
 
 
 
名称
 
 shadow, getspnam - 加密密码文件工具函数
 
 
 
 
 每个字段的含义是:
 
 
 
 
 · sp_namp - 指向以 null 结束的用户名的指针
 
 
 
 
 · sp_pwdp - 指向 null 结束的密码的指针
 
 
 
 
 · sp_lstchg - 最近更改密码的日期(日期计算方法是从1970年1月1日开始的天数)
 
 
 
 
 · sp_min - days before which password may not be changed 
 密码锁定期,默认为0不受限制
 
 
 
 
 · sp_max - days after which password must be changed 
 密码有效期,及更改期限
 
 
 
 
 · sp_warn - days before password is to expire that user is warned of pending password expiration 
 密码到期前提醒期限(天)
 
 
 
 
 · sp_inact - days after password expires that account is considered inactive and disabled 
 到期密码失效期限(天)
 
 
 
 
 · sp_expire - days since Jan 1, 1970 when account will be disabled 
 账号的有效期距离19700101的天数
 
 
 
 
 · sp_flag - reserved for future use 
 ( 
 预留位 
 )
 
 
 
 
用户组配置文件group
 
[root@bogon ~]# 
  ls /etc/group
 
/etc/group
 
[root@bogon ~]# 
  cat !$
 
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:
 
wheel:x:10:
 
cdrom:x:11:
 
mail:x:12:postfix
 
man:x:15:
 
dialout:x:18:
 
floppy:x:19:
 
games:x:20:
 
tape:x:30:
 
video:x:39:
 
ftp:x:50:
 
lock:x:54:
 
audio:x:63:
 
nobody:x:99:
 
users:x:100:
 
utmp:x:22:
 
utempter:x:35:
 
ssh_keys:x:999:
 
input:x:998:
 
systemd-journal:x:190:
 
systemd-network:x:192:
 
dbus:x:81:
 
polkitd:x:997:
 
postdrop:x:90:
 
postfix:x:89:
 
sshd:x:74:
 
elon:x:1000:elon
 
andy:x:996:
 
slocate:x:21:
 
cgred:x:995:
 
rpc:x:32:
 
unbound:x:994:
 
radvd:x:75:
 
saslauth:x:76:
 
chrony:x:993:
 
rtkit:x:172:
 
tss:x:59:
 
usbmuxd:x:113:
 
colord:x:992:
 
libvirt:x:991:
 
kvm:x:36:qemu
 
qemu:x:107:
 
abrt:x:173:
 
geoclue:x:990:
 
setroubleshoot:x:989:
 
rpcuser:x:29:
 
nfsnobody:x:65534:
 
pulse-access:x:988:
 
pulse-rt:x:987:
 
pulse:x:171:
 
gdm:x:42:
 
gnome-initial-setup:x:986:
 
avahi:x:70:
 
[root@bogon ~]# ^C
 
[root@bogon ~]# 
 

 
用户组管理
 
 
 
 
增加用户组
 
指定用户组GID
 
删除用户组 有用户则不可删
 
 

 

  例: 

 

  添加用户组 grp1 添加用户组grp2 并指定GID为1005 ,删除用户组grp1和grp2 

 
 
 
 
[root@bogon ~]#  
 groupadd grp1
 
[root@bogon ~]#  
 groupadd -g 1005 grp 
 2
 
[root@bogon ~]# tail -n3 /etc/group
 
avahi:x:70:
 
grp1:x:1001:
 
grp2:x:1005:
 
[root@bogon ~]# 
  groupdel grp1
 
[root@bogon ~]#  
 groupdel grp2
 
[root@bogon ~]# tail -n3 /etc/group
 
gdm:x:42:
 
gnome-initial-setup:x:986:
 
avahi:x:70:
 
[root@bogon ~]# 
 
 
 
 
 
 
 
用户管理
 
 

 

  创建用户 

 

  useradd username =adduser username 

 

  创建用户并指定UID和GID 

 

  useradd -u UID -g groupname/GID -d /home/username -s /sbin/nologin(/bin/bash) username 

 

  创建user且不允许其创建家目录 

 

  useradd -M username 

 

  创建group并将GID设为 

 

  groupadd -g GID groupname GID不会根据已存在的GID增加,只会根据UID增加 

 

  删除用户命令 

 

  userdel username(只删除用户,不删除用户家目录) 

 

  删除用户连同其家目录 

 

  userdel -r username 

 
 
 
 

  例: 

 
 
 
 
[root@bogon ~]# 
 
[root@bogon ~]#  
 adduser AA
 
创建用户AA
 
[root@bogon ~]#  
 useradd -u 1005 -g 1000 -d /home/AB -s /bin/bash AB
 
创建用户AB,并指定UID为1005,GID为1000(已存在),家目录为/home/AB
 
[root@bogon ~]#  
 useradd -M AC
 
创建用户AC,并不允许其创建家目录(/home/下)
 
[root@bogon ~]#  
 groupadd -g 1010 AD
 
创建新的用户组AD,并将其GID设为1010
 
[root@bogon ~]# tail -n5 /etc/passwd
 
gnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologin
 
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/ 
 nologin
 
(nologin作用为不允许用户登录,即使给其设置密码也不可登录,普通用户的shell也可设为/sbin/nologin)
 
AA:x:1001:1001::/home/AA:/bin/bash
 
AB:x:1005:1000::/home/AB:/bin/bash
 
AC:x:1006:1006::/home/AC:/bin/bash
 
[root@bogon ~]# ls /home
 
AA AB  
  andy elon
 
/home 下可见用户AA AB家目录,没有用户AC的家目录(-M选项)
 
[root@bogon ~]#  
 userdel AA
 
删除用户AA
 
[root@bogon ~]#  
 userdel -r AB
 
删除用户AB连同家目录一起删除
 
[root@bogon ~]# ls /home
 
AA 
  andy elon
 
用户AA家目录还在,用户AB家目录被删除
 
[root@bogon ~]#