groupadd,useradd,passwd,gpasswd,id,su
groupadd
- 命令演示
[root@localhost ~]# tail /etc/group
tail /etc/group
rpcuser:x:29:
nfsnobody:x:65534:
gnome-initial-setup:x:985:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
slocate:x:21:
ntp:x:38:
avahi:x:70:
tcpdump:x:72:
[root@localhost ~]#
[root@localhost ~]# groupadd redhat
[root@localhost ~]# tail -1 /etc/group
redhat:x:1000:
[root@localhost ~]# groupadd -g 1010 redhat1
[root@localhost ~]# tail -2 /etc/group
redhat:x:1000:
redhat1:x:1010:
[root@localhost ~]# groupadd redhat2
[root@localhost ~]# tail -3 /etc/group
redhat:x:1000:
redhat1:x:1010:
redhat2:x:1011:
[root@localhost ~]# groupadd -r sysred
[root@localhost ~]# tail -3 /etc/group
redhat1:x:1010:
redhat2:x:1011:
sysred:x:984:
[root@localhost ~]# groupadd -r sysred1
[root@localhost ~]# tail -3 /etc/group
redhat2:x:1011:
sysred:x:984:
sysred1:x:983:
groupmod
命令演示
[root@localhost ~]# tail -5 /etc/group
redhat:x:1000:
redhat1:x:1010:
redhat2:x:1011:
sysred:x:984:
sysred1:x:983:
[root@localhost ~]# groupmod -g 1001 redhat
[root@localhost ~]# tail -5 /etc/group
redhat:x:1001:
redhat1:x:1010:
redhat2:x:1011:
sysred:x:984:
sysred1:x:983:
[root@localhost ~]# groupmod -n redhat3 redhat2
[root@localhost ~]# tail -5 /etc/group
redhat:x:1001:
redhat1:x:1010:
sysred:x:984:
sysred1:x:983:
redhat3:x:1011:
[root@localhost ~]#
groupdel
命令演示
[root@localhost ~]# groupdel redhat
[root@localhost ~]# tail -5 /etc/group
tcpdump:x:72:
redhat1:x:1010:
sysred:x:984:
sysred1:x:983:
redhat3:x:1011:
[root@localhost ~]# groupdel redhat1
[root@localhost ~]# groupdel redhat3
[root@localhost ~]# groupdel sysred
[root@localhost ~]# groupdel sysred1
[root@localhost ~]# tail -5 /etc/group
stapdev:x:158:
slocate:x:21:
ntp:x:38:
avahi:x:70:
tcpdump:x:72:
[root@localhost ~]#
useradd
命令演示
[root@localhost ~]# tail -5 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:990:985::/run/gnome-initial-setup/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
[root@localhost ~]# useradd centos
[root@localhost ~]# useradd -u 1005 fedora
[root@localhost ~]# useradd suse
[root@localhost ~]# !tail
tail -5 /etc/passwd
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
centos:x:1000:1000::/home/centos:/bin/bash
fedora:x:1005:1005::/home/fedora:/bin/bash
suse:x:1006:1006::/home/suse:/bin/bash
[root@localhost ~]# groupadd redhat
[root@localhost ~]# groupadd redhat1
[root@localhost ~]# tail -5 /etc/group
centos:x:1000:
fedora:x:1005:
suse:x:1006:
redhat:x:1007:
redhat1:x:1008:
[root@localhost ~]# id centos
uid=1000(centos) gid=1000(centos) 组=1000(centos)
[root@localhost ~]# useradd -G redhat,redhat1 centos
useradd:用户“centos”已存在
[root@localhost ~]# id centos
uid=1000(centos) gid=1000(centos) 组=1000(centos)
[root@localhost ~]# useradd -G redhat,redhat1 rhel
[root@localhost ~]# id rhel
uid=1007(rhel) gid=1009(rhel) 组=1009(rhel),1007(redhat),1008(redhat1)
[root@localhost ~]# useradd -c 'i am a family of redhat' centos1
[root@localhost ~]# tail -1 /etc/passwd
centos1:x:1008:1010:i am a family of redhat:/home/centos1:/bin/bash
[root@localhost ~]# mkdir /tmp/centos2
[root@localhost ~]# ls -a /tmp/centos2
. ..
[root@localhost ~]# useradd -d /tmp/centos2 centos2
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
[root@localhost ~]# tail -1 /etc/passwd
centos2:x:1009:1011::/tmp/centos2:/bin/bash
[root@localhost ~]# ls -a /tmp/centos2
. ..
[root@localhost tmp]# ls -d /tmp/cent*
/tmp/centos2
[root@localhost tmp]# useradd -d /tmp/centos3 centos3
useradd: cannot set SELinux context for home directory /tmp/centos3
[root@localhost tmp]# setenforce 0
[root@localhost tmp]# useradd -d /tmp/centos3 centos3
useradd:用户“centos3”已存在
[root@localhost tmp]# ls -d /tmp/cent*
/tmp/centos2
[root@localhost tmp]# tail -1 /etc/passwd
centos3:x:1010:1012::/tmp/centos3:/bin/bash
[root@localhost tmp]# userdel -r centos3
userdel: centos3 邮件池 (/var/spool/mail/centos3) 未找到
userdel:未找到 centos3 的主目录“/tmp/centos3”
[root@localhost tmp]# useradd -d /tmp/centos3 centos3
[root@localhost tmp]# ls -d /tmp/cent*
/tmp/centos2 /tmp/centos3
[root@localhost tmp]# ls -a /tmp/centos3/
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost tmp]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost tmp]# tail -2 /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1008:1010:i am a family of redhat:/home/centos1:/bin/bash
centos2:x:1009:1011::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
[root@localhost ~]# cd ~centos2
[root@localhost centos2]# pwd
/tmp/centos2
[root@localhost centos2]# ll -d
drwxr-xr-x. 2 root root 6 7月 25 22:05 .
[root@localhost centos2]# cd ~centos3
[root@localhost centos3]# pwd
/tmp/centos3
[root@localhost centos3]# ll -d
drwx------. 3 centos3 centos3 78 7月 25 22:21 .
[root@localhost ~]# useradd -M centos4
[root@localhost ~]# ll /home
总用量 0
drwx------. 3 centos centos 78 7月 25 21:56 centos
drwx------. 3 centos1 centos1 78 7月 25 22:04 centos1
drwx------. 3 fedora fedora 78 7月 25 21:56 fedora
drwx------. 3 rhel rhel 78 7月 25 22:02 rhel
drwx------. 3 suse suse 78 7月 25 21:57 suse
[root@localhost ~]# tail -2 /etc/passwd
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/home/centos4:/bin/bash
[root@localhost ~]# cd ~centos4
-bash: cd: /home/centos4: 没有那个文件或目录
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost ~]# useradd -s /bin/sh centos5
[root@localhost ~]# tail -2 /etc/passwd
centos4:x:1011:1013::/home/centos4:/bin/bash
centos5:x:1012:1014::/home/centos5:/bin/sh
[root@localhost ~]# useradd -s /bin/zsh centos6
[root@localhost ~]# tail -2 /etc/passwd
centos5:x:1012:1014::/home/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
[root@localhost ~]# useradd -r syscent
[root@localhost ~]# tail -2 /etc/passwd
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]# useradd -D -b /tmp
[root@localhost ~]# useradd -D -f 0
[root@localhost ~]# useradd -D -s /etc/csh
[root@localhost ~]# useradd -D
GROUP=100
HOME=/tmp
INACTIVE=0
EXPIRE=
SHELL=/etc/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]# useradd centos7
[root@localhost ~]# tail -2 /etc/passwd
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# useradd -D -s /etc/bash
[root@localhost ~]# useradd -D -b /home
[root@localhost ~]# useradd -D -s /etc/bash
[root@localhost ~]# useradd -D -f -1
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/etc/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/etc/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]#
usermod
命令演示
[root@localhost ~]# tail /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1008:1010:i am a family of redhat:/home/centos1:/bin/bash
centos2:x:1009:1011::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/home/centos4:/bin/bash
centos5:x:1012:1014::/home/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# usermod -u 1018 centos1
[root@localhost ~]# tail /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1018:1010:i am a family of redhat:/home/centos1:/bin/bash
centos2:x:1009:1011::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/home/centos4:/bin/bash
centos5:x:1012:1014::/home/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# usermod -g redhat centos1
[root@localhost ~]# usermod -g 1007 centos2
[root@localhost ~]# tail /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1018:1007:i am a family of redhat:/home/centos1:/bin/bash
centos2:x:1009:1007::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/home/centos4:/bin/bash
centos5:x:1012:1014::/home/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# id centos1
uid=1018(centos1) gid=1007(redhat) 组=1007(redhat)
[root@localhost ~]# usermod -G centos centos1
[root@localhost ~]# id centos1
uid=1018(centos1) gid=1007(redhat) 组=1007(redhat),1000(centos)
[root@localhost ~]# tail -15 /etc/group
tcpdump:x:72:
centos:x:1000:centos1
fedora:x:1005:
suse:x:1006:
redhat:x:1007:rhel
redhat1:x:1008:rhel
rhel:x:1009:
centos1:x:1010:
centos2:x:1011:
centos3:x:1012:
centos4:x:1013:
centos5:x:1014:
centos6:x:1015:
syscent:x:984:
centos7:x:1016:
[root@localhost ~]# id centos1
uid=1018(centos1) gid=1007(redhat) 组=1007(redhat),1000(centos)
[root@localhost ~]# usermod -G rhel centos1
[root@localhost ~]# id centos1
uid=1018(centos1) gid=1007(redhat) 组=1007(redhat),1009(rhel)
[root@localhost ~]# tail -15 /etc/group
tcpdump:x:72:
centos:x:1000:
fedora:x:1005:
suse:x:1006:
redhat:x:1007:rhel
redhat1:x:1008:rhel
rhel:x:1009:centos1
centos1:x:1010:
centos2:x:1011:
centos3:x:1012:
centos4:x:1013:
centos5:x:1014:
centos6:x:1015:
syscent:x:984:
centos7:x:1016:
[root@localhost ~]# usermod -aG redhat centos1
[root@localhost ~]# usermod -aG 1000 centos1
[root@localhost ~]# id centos1
uid=1018(centos1) gid=1007(redhat) 组=1007(redhat),1000(centos),1009(rhel)
[root@localhost ~]# tail -15 /etc/group
tcpdump:x:72:
centos:x:1000:centos1
fedora:x:1005:
suse:x:1006:
redhat:x:1007:rhel,centos1
redhat1:x:1008:rhel
rhel:x:1009:centos1
centos1:x:1010:
centos2:x:1011:
centos3:x:1012:
centos4:x:1013:
centos5:x:1014:
centos6:x:1015:
syscent:x:984:
centos7:x:1016:
[root@localhost ~]# usermod -c 'also is rhel' centos1
[root@localhost ~]# tail /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1018:1007:also is rhel:/home/centos1:/bin/bash
centos2:x:1009:1007::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/home/centos4:/bin/bash
centos5:x:1012:1014::/home/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# ls /tmp/cent*
/tmp/centos2:
/tmp/centos3:
[root@localhost ~]# tail /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1018:1007:also is rhel:/home/centos1:/bin/bash
centos2:x:1009:1007::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/home/centos4:/bin/bash
centos5:x:1012:1014::/home/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# usermod -d /tmp/centos4 centos4
[root@localhost ~]# tail /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1018:1007:also is rhel:/home/centos1:/bin/bash
centos2:x:1009:1007::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/tmp/centos4:/bin/bash
centos5:x:1012:1014::/home/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# !ls
ls /tmp/cent*
/tmp/centos2:
/tmp/centos3:
[root@localhost ~]# cd ~centos4
-bash: cd: /tmp/centos4: 没有那个文件或目录
[root@localhost ~]# ls -a /home/centos5
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# usermod -md /tmp/centos5 centos5
[root@localhost ~]# tail /etc/passwd
suse:x:1006:1006::/home/suse:/bin/bash
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1018:1007:also is rhel:/home/centos1:/bin/bash
centos2:x:1009:1007::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/tmp/centos4:/bin/bash
centos5:x:1012:1014::/tmp/centos5:/bin/sh
centos6:x:1013:1015::/home/centos6:/bin/zsh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/etc/csh
[root@localhost ~]# ls -a /tmp/cent*
/tmp/centos2:
. ..
/tmp/centos3:
. .. .bash_logout .bash_profile .bashrc .mozilla
/tmp/centos5:
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# cd ~centos5
[root@localhost centos5]# pwd
/tmp/centos5
[root@localhost ~]# tail -3 /etc/passwd
centos7:x:1014:1016::/home/centos7:/etc/csh
centos6:x:1013:1015::/home/centos6:/bin/zsh
centos:x:1001:1000::/home/centos:/bin/bash
[root@localhost ~]# usermod -l CENTOS6 centos6
[root@localhost ~]# tail -3 /etc/passwd
centos7:x:1014:1016::/home/centos7:/etc/csh
centos:x:1001:1000::/home/centos:/bin/bash
CENTOS6:x:1013:1015::/home/centos6:/bin/zsh
[root@localhost ~]# usermod -s /bin/bash CENTOS6
[root@localhost ~]# tail -3 /etc/passwd
centos7:x:1014:1016::/home/centos7:/etc/csh
centos:x:1001:1000::/home/centos:/bin/bash
CENTOS6:x:1013:1015::/home/centos6:/bin/bash
[root@localhost ~]# tail -3 /etc/shadow
centos7:$6$PcwwrZ6y$OhQHjDxBQPlMYd6gYasW2119EJlTbnV...iqx8gUhJaBDerqNy4UIrmbvFhDTQrjlWl0yPG/sx1xDUISBpxO0.:17373:0:99999:7:::
centos:!!:17372:0:99999:7:::
CENTOS6:!!:17372:0:99999:7:::
[root@localhost ~]# usermod -L centos7 \centos7的加密密码前面多一个"!"号
[root@localhost ~]# tail -3 /etc/shadow
centos7:!$6$PcwwrZ6y$OhQHjDxBQPlMYd6gYasW2119EJlTbnV...iqx8gUhJaBDerqNy4UIrmbvFhDTQrjlWl0yPG/sx1xDUISBpxO0.:17373:0:99999:7:::
centos:!!:17372:0:99999:7:::
CENTOS6:!!:17372:0:99999:7:::
[root@localhost ~]# su - centos1
上一次登录:三 7月 26 11:45:44 CST 2017pts/3 上
[centos1@localhost ~]$ pwd
/home/centos1
[centos1@localhost ~]$ su - centos7
密码:
su: 鉴定故障
[centos1@localhost ~]$ su - centos7
密码:
su: 鉴定故障
[centos1@localhost ~]$ su - centos7 \\由于centos7的密码被锁定,不能从centos1切到用户centos7
密码:
su: 鉴定故障
[centos1@localhost ~]$ exit
登出
[root@localhost ~]# pwd
/root
[root@localhost ~]# usermod -U centos7
[root@localhost ~]# !tail
tail -5 /etc/shadow
centos5:!!:17372:0:99999:7:::
syscent:!!:17372::::::
centos7:$6$PcwwrZ6y$OhQHjDxBQPlMYd6gYasW2119EJlTbnV...iqx8gUhJaBDerqNy4UIrmbvFhDTQrjlWl0yPG/sx1xDUISBpxO0.:17373:0:99999:7:::
centos:!!:17372:0:99999:7:::
CENTOS6:!!:17372:0:99999:7:::
[root@localhost ~]# su - centos1
上一次登录:三 7月 26 11:47:13 CST 2017pts/3 上
[centos1@localhost ~]$ pwd
/home/centos1
[centos1@localhost ~]$ su - centos7 \\centos7的密码解锁后,从centos1切到用户centos7
密码:
上一次登录:三 7月 26 11:46:11 CST 2017pts/3 上
最后一次失败的登录:三 7月 26 11:47:52 CST 2017pts/3 上
最有一次成功登录后有 3 次失败的登录尝试。
[centos7@localhost ~]$
[centos7@localhost ~]$
[centos7@localhost ~]$ pwd
/home/centos7
[centos7@localhost ~]$
userdel
- 命令演示
[root@localhost ~]# tail /etc/passwd
rhel:x:1007:1009::/home/rhel:/bin/bash
centos1:x:1018:1007:also is rhel:/home/centos1:/bin/bash
centos2:x:1009:1007::/tmp/centos2:/bin/bash
centos3:x:1010:1012::/tmp/centos3:/bin/bash
centos4:x:1011:1013::/tmp/centos4:/bin/bash
centos5:x:1012:1014::/tmp/centos5:/bin/sh
syscent:x:989:984::/home/syscent:/bin/bash
centos7:x:1014:1016::/home/centos7:/bin/bash
centos:x:1001:1000::/home/centos:/bin/bash
CENTOS6:x:1013:1015::/home/centos6:/bin/bash
[root@localhost ~]# lls /home
bash: lls: 未找到命令...
相似命令是: 'ls'
[root@localhost ~]# ll /home
总用量 0
drwx------. 3 centos centos 78 7月 25 21:56 centos
drwx------. 5 centos1 redhat 128 7月 26 11:46 centos1
drwx------. 3 CENTOS6 centos6 78 7月 25 22:26 centos6
drwx------. 5 centos7 centos7 128 7月 26 11:42 centos7
drwx------. 3 fedora fedora 78 7月 25 21:56 fedora
drwx------. 3 rhel rhel 78 7月 25 22:02 rhel
drwx------. 3 suse suse 78 7月 25 21:57 suse
[root@localhost ~]# ls /tmp/cen*
/tmp/centos2:
/tmp/centos3:
/tmp/centos5:
[root@localhost ~]# ls -d /tmp/cen*
/tmp/centos2 /tmp/centos3 /tmp/centos5
[root@localhost ~]# ls -a /tmp/cen*
/tmp/centos2:
. ..
/tmp/centos3:
. .. .bash_logout .bash_profile .bashrc .mozilla
/tmp/centos5:
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# userdel centos6
userdel:用户“centos6”不存在
[root@localhost ~]# userdel CENTOS6
[root@localhost ~]# userdel -r centos7
[root@localhost ~]# userdel centos3
[root@localhost ~]# userdel -r centos5
[root@localhost ~]# ll /home
总用量 0
drwx------. 3 centos centos 78 7月 25 21:56 centos
drwx------. 5 centos1 redhat 128 7月 26 11:46 centos1
drwx------. 3 1013 centos6 78 7月 25 22:26 centos6
drwx------. 3 fedora fedora 78 7月 25 21:56 fedora
drwx------. 3 rhel rhel 78 7月 25 22:02 rhel
drwx------. 3 suse suse 78 7月 25 21:57 suse
[root@localhost ~]# ll /tmp/cent*
/tmp/centos2:
总用量 0
/tmp/centos3:
总用量 0
[root@localhost ~]# ll -d /tmp/cent*
drwxr-xr-x. 2 root root 6 7月 25 22:05 /tmp/centos2
drwx------. 3 1010 1012 78 7月 25 22:21 /tmp/centos3
[root@localhost ~]#
[root@localhost ~]# userdel -r centos
userdel:组“centos”没有移除,因为它包含其它成员。
userdel:/var/spool/mail/centos 并不属于 centos,所以不会删除
[root@localhost ~]# userdel -r centos1
userdel:组“centos1”没有移除,因为它不是用户 centos1 的主组
[root@localhost ~]# userdel -r centos2
userdel:组“centos2”没有移除,因为它不是用户 centos2 的主组
userdel:/tmp/centos2 并不属于 centos2,所以不会删除
[root@localhost ~]# userdel -r centos3
userdel:用户“centos3”不存在
[root@localhost ~]# userdel -r centos4
userdel:未找到 centos4 的主目录“/tmp/centos4”
passwd
- -k 选项以上的中文解释偏差较大,本人在网上搜索的解释也多种多样,只好粘出英文原文“ The option -k is used to indicate that the update should only be for expired authentication tokens (passwords)”;大家自会理解吧。
- 我的一种理解是只用来更新过期的认证令牌,一个账户只有一个paaswd,要么过期了,要么没过期,难道一个账户可以有多个passwd,不同的过期时间?即使是这样,使用该选项又怎么知道到底更新的是那个过期的passwd呢?
- 我的另一种理解是,在设置用户passwd时,passwd -k USERNAME,这样就设置了用户只有在passwd过期后才能更新自己的passwd,期限内是无法自己通过passwd更改自己的passwd的。但我演示了操作,没有预想的结果。唯一的不同就是,如下的加粗部分
[root@localhost ~]# useradd centos7 \\新增一普通用户
[root@localhost ~]# tail -1 /etc/passwd \\密码为空
centos7:x:1003:1003::/home/centos7:/bin/bash
[root@localhost ~]# tail -1 /etc/shadow
centos7:!!:17381:0:99999:7:::
[root@localhost ~]#
[root@localhost ~]# passwd -k centos7
更改用户 centos7 的密码 。
为 centos7 更改 STRESS 密码。
(当前)UNIX 密码:
passwd: 鉴定令牌操作错误
[root@localhost ~]# passwd -S centos7 \\新建账户,密码为空,默认账户被锁定
centos7 LK 2017-08-03 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# passwd centos7 \\显设置个passwd
更改用户 centos7 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# chage -l centos7
最近一次密码修改时间 :8月 03, 2017
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
[root@localhost ~]# passwd -x 10 centos7 \\自定义用户passwd过期时间为10天后
调整用户密码老化数据centos7。
passwd: 操作成功
[root@localhost ~]# chage -l centos7 \\passwd密码到8月13日才会过期
最近一次密码修改时间 :8月 03, 2017
密码过期时间 :8月 13, 2017
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :10
在密码过期之前警告的天数 :7
[root@localhost ~]#
[root@localhost ~]# passwd -k centos7 \\选项k
更改用户 centos7 的密码 。
为 centos7 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:过期的身份验证令牌已经成功更新。
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# su - centos2
上一次登录:日 8月 13 09:00:12 CST 2017pts/1 上
[centos2@localhost ~]$ su - centos7
密码:
[centos7@localhost ~]$ passwd \\期限内更改密码,依然可以修改
更改用户 centos7 的密码 。
为 centos7 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[centos7@localhost ~]$ - 以上两个疑问,可能是自己对选项k的理解有误吧(大家不要被误导,希望看到的可以不吝赐教,留言噢。),但google了,百度了,都没有k的用法示例。没能解决真够郁闷的,整整纠结两个晚上了,没办法只有把我的疑问写出来,以抒心中块垒了!!!现在内心还是一疙瘩。
- 命令演示
- 演示之前,先说一下几个天数的计算原则
- -x DAYS,如days=5,5天后过期,不含命令最后一次修改时间的当天,且都以日为单位计算,以UTC时区记录时间。如密码最新更改为3日,则过完8日后,即到9日00:00:00后,密码就过期了,用户需在下次登录修改密码
- -n DAYS,如days=2,2天内用户无法自行修改密码,含命令最后一次修改时间的当天,且都以日为单位计算,以UTC时区记录时间。如密码最新更改为3日,则过完2日后,即到5日00:00:00后,用户才能自行修改密码。
- -w DAYS,如days=2,密码过期前2天开始提醒用户,这个需要和-x的时间一起算,且都以日为单位计算,以UTC时区记录时间。如最大过期设置日期为8日,则此时提醒开始时间为从7日00:00:00开始。
- 可能有写啰嗦了,简单的时间计算不值一提,可这个困扰了我很久,啰嗦一下,一吐为快。
[root@localhost ~]# useradd centos1
[root@localhost ~]# tail -1 /etc/passwd
centos1:x:1004:1004::/home/centos1:/bin/bash
[root@localhost ~]# tail -1 /etc/shadow
centos1:!!:17381:0:99999:7:::
[root@localhost ~]# passwd -S centos1 \\可以看出新增账户没有设置密码,账户默认被锁定
centos1 LK 2017-08-03 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# chage -l centos1
最近一次密码修改时间 :8月 03, 2017
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
[root@localhost ~]# passwd centos1
更改用户 centos1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -S centos1 \\密码最近更新时间以UTC时区记录的
centos1 PS 2017-08-03 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# date
2017年 08月 04日 星期五 06:57:29 CST
[root@localhost ~]# date -u
2017年 08月 03日 星期四 22:57:31 UTC
[root@localhost ~]# passwd -x 5 centos1
调整用户密码老化数据centos1。
passwd: 操作成功
[root@localhost ~]# chage -l centos1
最近一次密码修改时间 :8月 03, 2017
密码过期时间 :8月 08, 2017
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :5
在密码过期之前警告的天数 :7
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 0 5 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# date -s "170809 07:59:30"
2017年 08月 09日 星期三 07:59:30 CST
[root@localhost ~]# date -u
2017年 08月 08日 星期二 23:59:32 UTC
[root@localhost ~]# su - centos2
上一次登录:三 8月 9 07:59:38 CST 2017pts/0 上
[centos2@localhost ~]$ date -u
2017年 08月 08日 星期二 23:59:49 UTC
[centos2@localhost ~]$ su - centos1
密码:
警告:您的密码将在 0天后过期
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 11 次失败的登录尝试。
[centos1@localhost ~]$ date -u
2017年 08月 09日 星期三 00:00:01 UTC
[centos1@localhost ~]$ exit
登出
[centos2@localhost ~]$ su - centos1
密码:
[centos2@localhost ~]$ date -u \\以UTC时间为准,8日过完后进入9日,密码过期
2017年 08月 09日 星期三 00:00:16 UTC
[centos2@localhost ~]$ su - centos1
密码:
您需要立即更改密码(密码过期)
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
无效的密码: 这个密码和原来的相同
新的 密码:
重新输入新的 密码:
上一次登录:三 8月 9 07:59:57 CST 2017pts/0 上
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 3 次失败的登录尝试。
[centos1@localhost ~]$ whoami
centos1
[centos1@localhost ~]$ 登出
[centos2@localhost ~]$ 登出
[root@localhost ~]#
[root@localhost ~]# date
2017年 08月 09日 星期三 08:01:22 CST
[root@localhost ~]# hwclock -s \\将系统时间恢复和硬件时间一致
[root@localhost ~]# date
2017年 08月 04日 星期五 07:02:03 CST
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-09 0 5 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# passwd centos1 \\以当前系统时间更新密码
更改用户 centos1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -n 1 centos1
调整用户密码老化数据centos1。
passwd: 操作成功
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 1 5 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# date -u
2017年 08月 03日 星期四 23:04:05 UTC
[root@localhost ~]# su - centos1 \\切换账户至centos1
[centos1@localhost ~]$ passwd \\修改密码
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
您必须等待更长时间以更改密码
passwd: 鉴定令牌操作错误
[centos1@localhost ~]$ date -u \\当前UTC时间为3日,用户无法自行修改密码
2017年 08月 03日 星期四 23:04:25 UTC
[centos1@localhost ~]$ 登出
[root@localhost ~]# date -s 07:59:30 \\手工设置时间,使时间即将到4日(UTC时间)
2017年 08月 04日 星期五 07:59:30 CST
[root@localhost ~]# date -u
2017年 08月 03日 星期四 23:59:32 UTC
[root@localhost ~]# su - centos1
[centos1@localhost ~]$ date -u
2017年 08月 03日 星期四 23:59:43 UTC
[centos1@localhost ~]$ passwd
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
您必须等待更长时间以更改密码
^C
[centos1@localhost ~]$ date -u \\时间进入4日,用户可以修改自己的密码
2017年 08月 04日 星期五 00:00:04 UTC
[centos1@localhost ~]$ passwd
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[centos1@localhost ~]$ 登出
[root@localhost ~]# hwclock -s
[root@localhost ~]# date
2017年 08月 04日 星期五 07:11:12 CST
[root@localhost ~]# passwd centos1
更改用户 centos1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新
[root@localhost ~]# passwd -n 2 centos1 \\将最小时间改为2为例
调整用户密码老化数据centos1。
passwd: 操作成功
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 2 5 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# date -s "170805 7:59:30"
2017年 08月 05日 星期六 07:59:30 CST
[root@localhost ~]# date -u
2017年 08月 04日 星期五 23:59:32 UTC
[root@localhost ~]# su - centos1
[centos1@localhost ~]$ date -u
2017年 08月 04日 星期五 23:59:41 UTC
[centos1@localhost ~]$ passwd
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
您必须等待更长时间以更改密码
^C
[centos1@localhost ~]$ date -u
2017年 08月 05日 星期六 00:00:04 UTC
[centos1@localhost ~]$ passwd
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[centos1@localhost ~]$ 登出
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-05 2 5 7 -1 (密码已设置,使用 SHA512 算法。)
[centos1@localhost ~]$ passwd
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
您必须等待更长时间以更改密码
passwd: 鉴定令牌操作错误
[centos1@localhost ~]$ 登出
[root@localhost ~]#
[root@localhost ~]# hwclock -s
[root@localhost ~]# passwd centos1
更改用户 centos1 的密码 。
新的 密码:
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 2 5 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# passwd -w 2 centos1
调整用户密码老化数据centos1。
passwd: 操作成功
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 2 5 2 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# chage -l centos1
最近一次密码修改时间 :8月 03, 2017
密码过期时间 :8月 08, 2017
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :2
两次改变密码之间相距的最大天数 :5
在密码过期之前警告的天数 :2
[root@localhost ~]# date -s "170807 07:59:30"
2017年 08月 07日 星期一 07:59:30 CST
[root@localhost ~]# date -u
2017年 08月 06日 星期日 23:59:32 UTC
[root@localhost ~]# su - centos2
上一次登录:三 8月 9 07:59:38 CST 2017pts/0 上
[centos2@localhost ~]$ date -u
2017年 08月 06日 星期日 23:59:43 UTC
[centos2@localhost ~]$ su - centos1
密码:
上一次登录:六 8月 5 08:00:57 CST 2017pts/0 上
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 6 次失败的登录尝试。
[centos1@localhost ~]$ 登出
[centos2@localhost ~]$ date -u
2017年 08月 06日 星期日 23:59:58 UTC
[centos2@localhost ~]$ date -u
2017年 08月 07日 星期一 00:00:03 UTC
[centos2@localhost ~]$ su - centos1
密码:
[centos2@localhost ~]$ su - centos1 \\8日后过期,则在进入7日就开始提醒用户,7和8日,提前2天开始提醒
密码:
警告:您的密码将在 1 天后过期
上一次登录:一 8月 7 07:59:49 CST 2017pts/0 上
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 6 次失败的登录尝试。
[centos1@localhost ~]$ date -u
2017年 08月 07日 星期一 00:00:33 UTC
[centos1@localhost ~]$ 登出
[root@localhost ~]# hwclock -s
[root@localhost ~]# date
2017年 08月 04日 星期五 07:23:28 CST
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 2 5 2 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# chage -l centos1
最近一次密码修改时间 :8月 03, 2017
密码过期时间 :8月 08, 2017
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :2
两次改变密码之间相距的最大天数 :5
在密码过期之前警告的天数 :2
[root@localhost ~]# tail -1 /etc/shadow
centos1:$6$zTbGXG.g$X65MSjIPklzRf4P2xbmbiSFAxENr2iij1qC356fiHLNDklOqvoIknSYVDdBr.amcDTR7U8FXMianPvaThWGIQ/:17381:2:5:2:::
[root@localhost ~]# passwd -e centos1
正在终止用户 centos1 的密码。
passwd: 操作成功
[root@localhost ~]# passwd -S centos1
centos1 PS 1970-01-01 2 5 2 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# chage -l centos1
最近一次密码修改时间 :密码必须更改
密码过期时间 :密码必须更改
密码失效时间 :密码必须更改
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :2
两次改变密码之间相距的最大天数 :5
在密码过期之前警告的天数 :2
[root@localhost ~]# tail -1 /etc/shadow
centos1:$6$zTbGXG.g$X65MSjIPklzRf4P2xbmbiSFAxENr2iij1qC356fiHLNDklOqvoIknSYVDdBr.amcDTR7U8FXMianPvaThWGIQ/:0:2:5:2:::
[root@localhost ~]# su - centos2
上一次登录:五 8月 4 07:25:58 CST 2017pts/0 上
[centos2@localhost ~]$ su - centos1
密码:
您需要立即更改密码(root 强制)
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
上一次登录:五 8月 4 07:27:06 CST 2017pts/0 上
最后一次失败的登录:五 8月 4 07:29:38 CST 2017pts/0 上
最有一次成功登录后有 7 次失败的登录尝试。
[centos1@localhost ~]$
[centos2@localhost ~]$ 登出
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 2 5 2 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# passwd -d centos1
清除用户的密码 centos1。
passwd: 操作成功
[root@localhost ~]# tail -1 /etc/shadow \\密码那以列为空
centos1::17381:2:5:2:::
[root@localhost ~]# passwd -S centos1
centos1 NP 2017-08-03 2 5 2 -1 (密码为空。)
[root@localhost ~]# passwd centos1
更改用户 centos1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -l centos1
锁定用户 centos1 的密码 。
passwd: 操作成功
[root@localhost ~]# tail -1 /etc/shadow
centos1:!!$6$vKejG2c1$kIwCcZAb6It1Tgv2FE5B4jeYFm5B3307vxaTxn92hanfoSn2Q63mYvFaXIgK/.A3mSHwROSUri36Ut1kKXkMv1:17381:2:5:2:::
[root@localhost ~]# passwd -S centos1
centos1 LK 2017-08-03 2 5 2 -1 (密码已被锁定。)
[root@localhost ~]# su - centos2
上一次登录:五 8月 4 07:34:20 CST 2017pts/1 上
[centos2@localhost ~]$ su - centos1
密码:
su: 鉴定故障
[centos2@localhost ~]$ 登出
[root@localhost ~]# su - centos1
[centos1@localhost ~]$ passwd
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
passwd: 鉴定令牌操作错误
[centos1@localhost ~]$ 登出
[root@localhost ~]# passwd -u centos1
解锁用户 centos1 的密码。
passwd: 操作成功
[root@localhost ~]# su - centos1
[centos1@localhost ~]$ passwd
更改用户 centos1 的密码 。
为 centos1 更改 STRESS 密码。
(当前)UNIX 密码:
您必须等待更长时间以更改密码
passwd: 鉴定令牌操作错误
[centos1@localhost ~]$ 登出
[root@localhost ~]# echo alwin111 | passwd --stdin centos1
更改用户 centos1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
补充
passwd -S ,显示用户密码的状态信息,如下;
[root@localhost ~]# passwd -S centos1
centos1 PS 2017-08-03 2 5 2 -1 (密码已设置,使用 SHA512 算法。)
在上面的输出中,第一个字段显示的用户名,第二个字段显示密码状态(PS = 密码设置,LK = 密码锁定,NP = 无密码),第三个字段显示了上次修改密码的时间,后面四个字段分别显示了密码能更改的最小期限和最大期限,警告期限和口令不会失效(-1)
- 演示之前,先说一下几个天数的计算原则
gpasswd&newgrp
命令演示
[root@localhost ~]# useradd centos1
[root@localhost ~]# useradd centos2
[root@localhost ~]# useradd centos3
[root@localhost ~]# useradd centos4
[root@localhost ~]# groupadd centos
[root@localhost ~]# grep centos /etc/passwd /etc/group /etc/gshadow
/etc/passwd:centos1:x:1000:1000::/home/centos1:/bin/bash
/etc/passwd:centos2:x:1001:1001::/home/centos2:/bin/bash
/etc/passwd:centos3:x:1002:1002::/home/centos3:/bin/bash
/etc/passwd:centos4:x:1003:1003::/home/centos4:/bin/bash
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!::
[root@localhost ~]# id centos1
uid=1000(centos1) gid=1000(centos1) 组=1000(centos1)
[root@localhost ~]# id centos2
uid=1001(centos2) gid=1001(centos2) 组=1001(centos2)
[root@localhost ~]# id centos3
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3)
[root@localhost ~]# id centos4
uid=1003(centos4) gid=1003(centos4) 组=1003(centos4)
[root@localhost ~]# gpasswd -a centos4 centos \\将centos4加入到组centos
正在将用户“centos4”加入到“centos”组中
[root@localhost ~]# id centos4
uid=1003(centos4) gid=1003(centos4) 组=1003(centos4),1004(centos)
[root@localhost ~]# grep centos /etc/group /etc/gshadow \\通过这两个配置文件可以看出cento组的成员中包含centos
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:centos4
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!::centos4
[root@localhost ~]# gpasswd -M centos2,centos3 centos \\向组中添加成员列表
[root@localhost ~]# grep centos /etc/group /etc/gshadow \--M选项会覆盖掉组中已有的成员
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:centos2,centos3
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!::centos2,centos3
[root@localhost ~]# id centos4
uid=1003(centos4) gid=1003(centos4) 组=1003(centos4)
[root@localhost ~]# id centos2
uid=1001(centos2) gid=1001(centos2) 组=1001(centos2),1004(centos)
[root@localhost ~]# id centos3
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3),1004(centos)
[root@localhost ~]# gpasswd -a centos4 centos \\再次通过-a选项将centos4加入到组中
正在将用户“centos4”加入到“centos”组中
[root@localhost ~]# id centos4
uid=1003(centos4) gid=1003(centos4) 组=1003(centos4),1004(centos)
[root@localhost ~]# grep centos /etc/group /etc/gshadow
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:centos2,centos3,centos4
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!::centos2,centos3,centos4
[root@localhost ~]# id centos1
uid=1000(centos1) gid=1000(centos1) 组=1000(centos1)
[root@localhost ~]# gpasswd -A centos1 centos \\将centos1用户设置为组管理员,即使其事先不是该组的成员
[root@localhost ~]# id centos1
uid=1000(centos1) gid=1000(centos1) 组=1000(centos1)
[root@localhost ~]# !grep
grep centos /etc/group /etc/gshadow
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:centos2,centos3,centos4
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!:centos1:centos2,centos3,centos4
[root@localhost ~]# gpasswd -a centos1 centos \\将centos1加入到组中
正在将用户“centos1”加入到“centos”组中
[root@localhost ~]# id centos1
uid=1000(centos1) gid=1000(centos1) 组=1000(centos1),1004(centos)
[root@localhost ~]# !grep
grep centos /etc/group /etc/gshadow
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:centos2,centos3,centos4,centos1
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!:centos1:centos2,centos3,centos4,centos1
[root@localhost ~]# gpasswd -d centos4 centos \\将用户移除出组
正在将用户“centos4”从“centos”组中删除
[root@localhost ~]# id centos4
uid=1003(centos4) gid=1003(centos4) 组=1003(centos4)
[root@localhost ~]# !grep
grep centos /etc/group /etc/gshadow
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:centos2,centos3,centos1
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!:centos1:centos2,centos3,centos1
[root@localhost ~]# su - centos2
[centos2@localhost ~]$ gpasswd -d centos3 centos \\centos2没有权限对组操作
gpasswd:没有权限。
[centos2@localhost ~]$ 登出
[root@localhost ~]# su - centos1
[centos1@localhost ~]$ id centos3
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3),1004(centos)
[centos1@localhost ~]$ gpasswd -d centos3 centos \\通过组管理员centos1来移除用户
正在将用户“centos3”从“centos”组中删除
[centos1@localhost ~]$ id centos3
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3)
[centos1@localhost ~]$ 登出
[root@localhost ~]# !grep
grep centos /etc/group /etc/gshadow
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1004:centos2,centos1
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!:centos1:centos2,centos1
[root@localhost ~]# su - centos1 \\用centos1登录系统
[centos1@localhost ~]$ id \\此时centos为辅助组
uid=1000(centos1) gid=1000(centos1) 组=1000(centos1),1006(centos) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos1@localhost ~]$ newgrp - centos \\临时切换到组centos
[centos1@localhost ~]$ id \\centos1的主组前后发生了变化,变为centos
uid=1000(centos1) gid=1006(centos) 组=1006(centos),1000(centos1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos1@localhost ~]$ 登出
[centos1@localhost ~]$ 登出
[root@localhost ~]# su - centos3
[centos3@localhost ~]$ newgrp - centos \\centos3不是组中成员,需要密码才能拥有组的权限,而组还未设置密码,所以拒绝用户访问
密码:
无效的密码。
[centos3@localhost ~]$
[centos3@localhost ~]$ 登出
[root@localhost ~]# gpasswd centos \\设置组密码
正在修改 centos 组的密码
新密码:
请重新输入新密码:
[root@localhost ~]# su - centos1
[centos1@localhost ~]$ newgrp - centos \\centos1为组中成员,无需密码即可切换到组centos
[centos1@localhost ~]$ id
uid=1000(centos1) gid=1006(centos) 组=1006(centos),1000(centos1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos1@localhost ~]$ 登出
[centos1@localhost ~]$ 登出
[root@localhost ~]# su - centos3 \\用centos3登录系统
[centos3@localhost ~]$ id
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos3@localhost ~]$ id centos3
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3)
[centos3@localhost ~]$ newgrp - centos \\输入密码获取组的权限
密码:
[centos3@localhost ~]$ id
uid=1002(centos3) gid=1006(centos) 组=1006(centos),1002(centos3) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos3@localhost ~]$ id centos
id: centos: no such user
[centos3@localhost ~]$ id centos3
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3)
[centos3@localhost ~]$ 登出
[centos3@localhost ~]$ 登出
[root@localhost ~]# su - centos3
[centos3@localhost ~]$ pwd
/home/centos3
[centos3@localhost ~]$ touch du1 \\用户在自己的主组下创建文件,其属组是用户所在的主组
[centos3@localhost ~]$ ll
总用量 0
-rw-rw-r--. 1 centos3 centos3 0 8月 5 16:54 du1
[centos3@localhost ~]$ newgrp - centos
密码:
[centos3@localhost ~]$ id
uid=1002(centos3) gid=1006(centos) 组=1006(centos),1002(centos3) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos3@localhost ~]$ touch du2 \\获取组权限后,用户在自己的主组下创建文件,其属组是用户所获取的组
[centos3@localhost ~]$ ll
总用量 0
-rw-rw-r--. 1 centos3 centos3 0 8月 5 16:54 du1
-rw-r--r--. 1 centos3 centos 0 8月 5 16:54 du2
[root@localhost ~]# grep centos /etc/gshadow
centos1:!::
centos2:!::
centos3:!::
centos4:!::
centos:$6$7OdwRIMUo8//v$9SvuMjm7Ixoim3ON97sGEt07I.BhQu/r5.6eWwaqqdnQMN6XUZqJdHXkJki7Z9CAGVvZgr4Eef9frGi9iuteX0:centos1:centos1,centos2
[root@localhost ~]# gpasswd -r centos \\清楚组密码,gshadow文件记录密码的一列为空
[root@localhost ~]# !grep
grep centos /etc/gshadow
centos1:!::
centos2:!::
centos3:!::
centos4:!::
centos::centos1:centos1,centos2
[root@localhost ~]#
至于-R的命令演示,和man手册上说明的有很大的不同,用-R后,成员依然无需密码就能获取组权限,而非成员组无法通过密码获取组权限,仅仅限制了非成员组的访问,而成员的访问没有起到效果。等待大神帮忙解决了,再进行补充吧
终于找到了原因,原来是系统man手册的介绍错误,我的天哪,还能有这样的错误,弄了一天了,原来是OS的锅。好吧,毕竟man手册也是人写的,如下:看下我系统的关于-R参数的解释图一和别人的解释图二对比
图二才是正解(限制用户登入组,只有组中的成员才可以用newgrp加入改组),赶紧把我之前的错误解释改掉!
和网上搜到的中文解释也是一致的。都怪自己太相信自己系统的解释,中文解释可能会有误差(与英文原文),从没有怀疑自己系统的man手册解释。导致被折磨了整个周六一天。
好了不扯淡了,赶紧补充完命令演示
[root@localhost ~]# gpasswd centos \\给组设置密码alwinqqq
正在修改 centos 组的密码
新密码:
请重新输入新密码:
[root@localhost ~]# !grep
grep centos /etc/gshadow /etc/group
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:$6$s7YXXfFhDh$F8Z05QeuZdBe.ePxf8wz4Qlxs25EK3ohEVniaDt7QwlZDthBcvvcb67/OLy3zCpCYLsObYBU1GDOs9YMFCQen0::centos2
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1006:centos2
[root@localhost ~]# su - centos2 \\切换组成员centos2登录系统
上一次登录:六 8月 5 23:08:43 CST 2017从 10.1.18.1pts/2 上
[centos2@localhost ~]$ id
uid=1001(centos2) gid=1001(centos2) 组=1001(centos2),1006(centos) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos2@localhost ~]$ newgrp centos \\无需密码即可切换主组
[centos2@localhost ~]$ id
uid=1001(centos2) gid=1006(centos) 组=1006(centos),1001(centos2) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos2@localhost ~]$ exit
[centos2@localhost ~]$ 登出
[root@localhost ~]# su - centos1 \\切换非组成员centos2登录系统
上一次登录:六 8月 5 18:14:47 CST 2017pts/0 上
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 6 次失败的登录尝试。
[centos1@localhost ~]$ id
uid=1000(centos1) gid=1000(centos1) 组=1000(centos1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos1@localhost ~]$ newgrp centos \\需要密码切换主组
密码:
[centos1@localhost ~]$ id
uid=1000(centos1) gid=1006(centos) 组=1006(centos),1000(centos1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos1@localhost ~]$ exit
[centos1@localhost ~]$ 登出
[root@localhost ~]#
[root@localhost ~]# gpasswd -R centos \\R参数限制组外成员访问
[root@localhost ~]# !grep \\密码处变为叹号
grep centos /etc/gshadow /etc/group
/etc/gshadow:centos1:!::
/etc/gshadow:centos2:!::
/etc/gshadow:centos3:!::
/etc/gshadow:centos4:!::
/etc/gshadow:centos:!::centos2
/etc/group:centos1:x:1000:
/etc/group:centos2:x:1001:
/etc/group:centos3:x:1002:
/etc/group:centos4:x:1003:
/etc/group:centos:x:1006:centos2
[root@localhost ~]# su - centos2
上一次登录:日 8月 6 00:52:12 CST 2017pts/0 上
[centos2@localhost ~]$ id
uid=1001(centos2) gid=1001(centos2) 组=1001(centos2),1006(centos) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos2@localhost ~]$ newgrp centos \\组成员切换不受影响,前后无变化
[centos2@localhost ~]$ id
uid=1001(centos2) gid=1006(centos) 组=1006(centos),1001(centos2) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos2@localhost ~]$ exit
[centos2@localhost ~]$ 登出
[root@localhost ~]#
[root@localhost ~]# su - centos1
上一次登录:日 8月 6 00:52:36 CST 2017pts/0 上
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 6 次失败的登录尝试。
[centos1@localhost ~]$ id
uid=1000(centos1) gid=1000(centos1) 组=1000(centos1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos1@localhost ~]$ newgrp centos \\组外成员无法切换,即时知道密码也无用
密码:
无效的密码。
[centos1@localhost ~]$ 登出
[root@localhost ~]# su - centos3
上一次登录:六 8月 5 16:53:13 CST 2017pts/0 上
[centos3@localhost ~]$ id
uid=1002(centos3) gid=1002(centos3) 组=1002(centos3) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos3@localhost ~]$ newgrp centos \\组外成员无法切换,即时知道密码也无用
密码:
无效的密码。
[centos3@localhost ~]$ 登出
[root@localhost ~]#
最后在啰嗦几句吧,因为被折磨的原因,不吐不快
- gpasswd组成员管理的功能,可以增加、删除用户、以及设置组管理员;并且可以实现用户主组的临时切换,组内用户无需密码可以实现自由切换,通过newgrp命令切换;若非组中的成员也可通过newgrp切换,此时需要给newgrp设置组密码,非组成员用户通过密码实现临时切换主组;也可以通过R参数限制非组成员登录,即使其知道组的密码,所以此时只有组内成员可以临时切换到改组
id
命令演示
[root@localhost ~]# grep centos2 /etc/passwd /etc/group
/etc/passwd:centos2:x:1001:1001::/home/centos2:/bin/bash
/etc/group:centos2:x:1001:
/etc/group:centos:x:1006:centos1,centos2
[root@localhost ~]# id centos2
uid=1001(centos2) gid=1001(centos2) 组=1001(centos2),1006(centos)
[root@localhost ~]# id -u centos2
1001
[root@localhost ~]# id -g centos2
1001
[root@localhost ~]# id -G centos2
1001 1006
[root@localhost ~]# id -Gn centos2
centos2 centos
[root@localhost ~]# id -gn centos2
centos2
[root@localhost ~]# id -un centos2
centos2
[root@localhost ~]# su - centos2
[centos2@localhost ~]$ id
uid=1001(centos2) gid=1001(centos2) 组=1001(centos2),1006(centos) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos2@localhost ~]$ newgrp - centos
[centos2@localhost ~]$ id
uid=1001(centos2) gid=1006(centos) 组=1006(centos),1001(centos2) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[centos2@localhost ~]$ grep centos2 /etc/passwd /etc/group \\通过newgrp临时切换主组,配置文件里的主组并没有发生改变
/etc/passwd:centos2:x:1001:1001::/home/centos2:/bin/bash
/etc/group:centos2:x:1001:
/etc/group:centos:x:1006:centos1,centos2
[centos2@localhost ~]$ id -u
1001
[centos2@localhost ~]$ id -g \\主组变成了centos
1006
[centos2@localhost ~]$ id -G
1006 1001
[centos2@localhost ~]$ id -nG
centos centos2
[centos2@localhost ~]$
su
命令演示
[root@localhost ~]# su - centos1
上一次登录:六 8月 5 16:33:58 CST 2017pts/0 上
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 6 次失败的登录尝试。
[centos1@localhost ~]$ pwd
/home/centos1
[centos1@localhost ~]$ 登出
[root@localhost ~]# su -l centos1
上一次登录:六 8月 5 17:57:40 CST 2017pts/0 上
最后一次失败的登录:三 8月 9 08:00:02 CST 2017pts/0 上
最有一次成功登录后有 6 次失败的登录尝试。
[centos1@localhost ~]$ pwd
/home/centos1
[centos1@localhost ~]$ 登出
[root@localhost ~]# su centos1
[centos1@localhost root]$ pwd
/root
[root@localhost ~]# ll xiangjis
ls: 无法访问xiangjis: 没有那个文件或目录
[root@localhost ~]# su -c "mkdir xiangjis" centos1
mkdir: 无法创建目录"xiangjis": 权限不够
[root@localhost ~]# su -c "mkdir /tmp/xiangjis" centos1
[root@localhost ~]#[root@localhost ~]#
drwxr-xr-x. 2 centos1 centos1 6 8月 5 17:59 /tmp/xiangjis
[root@localhost ~]# date
2017年 08月 05日 星期六 17:59:28 CST
[root@localhost ~]#