用户的创建、修改、删除
一、用户创建
useradd usermod userdel
useradd:创建用户:create a new user or update default new user information
useradd [options]… LOGIN
-u,–uid:指定新用户的UID
-o,配合-u使用,不检测用户UID的唯一性(可创建2个相同UID的帐号)
-g,–gid:指定新建用户的GID
-G,–group:指定新建用户的附加组,若指定多个组可用,分割
-d,–home:指定用户的家目录
但是其指定目录的父目录必须存在,否则无法创建其家目录
每个用户家目录都有其配置文件,所有新建用户的家目录中的文件均来自/etc/skel/文件中
若其指定的家目录已经存在,则不会复制/etc/skel/文件中的内容
-s,–shell;指定用户的默认shell
当前系统所有可用shell保存在/etc/shells文件中
-c,指定用户信息的注释信息
-r,–system:指定其创建的用户为系统用户,系统用户不会为其创建家目录
-N,不为用户创建同名的组作为用户基本组,而是使用users作为基本组
[[email protected] ~]# id zcg uid=506(zcg) gid=507(zcg) groups=507(zcg) [[email protected] ~]# useradd -ou 506 zcm [[email protected] ~]# id zcm uid=506(zcg) gid=513(zcm) groups=507(zcg)
[[email protected] ~]# useradd -g zcg -G zcm zcm1 [[email protected] ~]# id zcm1 uid=512(zcm1) gid=507(zcg) groups=507(zcg),513(zcm)
[[email protected] ~]# useradd -r zcm3 [[email protected] ~]# getent passwd zcm3 #从passwd库中得到账号zcm3的信息 zcm3:x:496:492::/home/zcm3:/bin/bash
[[email protected] ~]# id zcm3 uid=496(zcm3) gid=492(zcm3) groups=492(zcm3)
[[email protected] ~]# ls -d /home/zcm* /home/zcm /home/zcm1
[[email protected] ~]# useradd -N zcm4 [[email protected] ~]# getent passwd zcm4 zcm4:x:513:100::/home/zcm4:/bin/bash [[email protected] ~]# groups zcm4 zcm4 : users
useradd -D
显示创建用户的默认信息
useradd -D [options]
修改创建用户的默认信息,其本质是修改的/etc/default/useradd文件的内容
[[email protected] ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
[[email protected] ~]# useradd -D -s /bin/csh [[email protected] ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/csh SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
二、账号修改
usermod:修改用户属性 modify a user account
usermod [options]… LOGIN
-u,修改用户的ID,为用户指定行的UID
-g,修改用户的基本组
-G,修改用户的附加组,若指定多个组可用,分割
-a,与-G结合使用,追加用户的附加组,可以在修改附加组的时候,不覆盖当前用户附加组
-d,修改用户的家目录,但不会负责当前目录文件在指定目录中
-m,与-d结合使用,在修改用户家目录时候,会转移家目录下的文件,-md其实完成的工作是移动和重命名
-c,修改用户的注释信息
-s,修改用户的默认shell
-l,修改当前用户的用户名
-L:–lock:锁定用户密码,被锁定用户,cat /etc/shadow查看密码时,其密码前面有一个!
-U:–unlock:解锁用户密码
-c:YYYY-mm-dd:指定用户帐号过期时间
-f day:指定用户非活动时间
[[email protected] ~]# id admins
uid=509(admins) gid=510(admins) groups=510(admins)
[[email protected] ~]# usermod -g zcl1840 -aG zcl4,zcl5 admins
[[email protected] ~]# id admins
uid=509(admins) gid=500(zcl1840) groups=500(zcl1840),505(zcl4),506(zcl5)
[[email protected] ~]# id zcl4 uid=504(zcl4) gid=505(zcl4) groups=505(zcl4),501(zclgroup) [[email protected] ~]# usermod -u 3000 -md /testdir/zcl4 -s /bin/csh zcl4 #目录zcl4会被创建 [[email protected] ~]# id zcl4 uid=3000(zcl4) gid=505(zcl4) groups=505(zcl4),501(zclgroup)
[[email protected] testdir]# getent passwd zcl4 zcl4:x:3000:505::/testdir/zcl4:/bin/csh [[email protected] testdir]# ls -a /testdir/zcl4 . .bash_logout .bashrc .mozilla .. .bash_profile .gnome2
[[email protected] testdir]# usermod -c "hello ni hao" -l zcy zcl1 #zcy为为创建的账号,相当与将zcl1改名为zcy了
[[email protected] testdir]# usermod -c "hello ni hao" -l zcl1 zcy #又改回原来的名字 [[email protected] testdir]# id zcy id: zcy: No such user
[[email protected] testdir]# getent passwd zcl1 zcl1:x:501:502:hello ni hao:/home/zcl1:/bin/bash
[[email protected] testdir]# usermod -L zcm #锁定密码 [[email protected] testdir]# getent shadow zcm zcm:!$6$B9iJPCO8$it6Y3lFC4rKzdZQ4m34K11YJixutb1Pw1BPnX1Z5cMGq35qV2E3jQev8QOGiOdL.75Ml6hECXrOtDez2vdzY50:17143:0:99999:7::: [[email protected] testdir]# usermod -U zcm #解锁定 [[email protected] testdir]# getent shadow zcm zcm:$6$B9iJPCO8$it6Y3lFC4rKzdZQ4m34K11YJixutb1Pw1BPnX1Z5cMGq35qV2E3jQev8QOGiOdL.75Ml6hECXrOtDez2vdzY50:17143:0:99999:7:::
三、删除用户
userdel:delete a user account and related files
userdel [options] LOGIN
-r:删除用户时一并删除其家目录
[[email protected] testdir]# ls -d /home/zcm* /home/zcm /home/zcm4 [[email protected] testdir]# userdel -r zcm4 [[email protected] testdir]# id zcm4 id: zcm4: No such user [[email protected] testdir]# ls -d /home/zcm* /home/zcm
id:显示用户的真实有效的UID和GID
id [OPTION]… [USERNAME]
-u:仅显示用户的UID
-g:仅显示用户的GID
-G:仅显示用户的附加组ID
-n:与-u -g -G结合使用,不显示用户的ID信息,而显示ID所对于的用户名或组名
[[email protected] testdir]# id -u zcm 506 [[email protected] testdir]# id -nu zcm zcg [[email protected] testdir]# id -g zcm 500 [[email protected] testdir]# id -ng zcm zcl1840 [[email protected] testdir]# id -G zcm 500 507 502 503 [[email protected] testdir]# id -nG zcm zcl1840 zcg zcl1 zcl2
su:切换用户或以其他用户身份执行命令
su [OPTION]… [-] [USER [ARG]…]
非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
[[email protected] testdir]# su zcg [[email protected] testdir]$
登录式切换,会读取目标用户的配置文件,模拟重新登录,切换至家目录,完全切换
[[email protected] testdir]# su - zcg [[email protected] ~]$ pwd /home/zcg
[[email protected] testdir]# su -l zcg [[email protected] ~]$ pwd /home/zcg
id [OPTION]… [USERNAME]
-l,-u:锁定和解锁用户,用passwd给用户家的锁,其密码前面有2个!!
-d:清除用户密码串,并且强制用户下次登录时修改密码
-e:强制用户下次登录修改密密码
-n:指定最短使用期限
-x:指定最多使用期限
-w:指定警告期限
-i:指定非活动期限(密码过期后必须修改密码才能登录的时间)
-uf:可以强制新创建的无密码的用户中的锁强制消除,即该用户可以直接登录
–stdin:从标准接收用户的密码
[[email protected] testdir]# echo "centos" | passwd -stdin zcg
四、组的创建、修改、删除
groupadd groupmod groupdel
groupadd:添加组
-g:指定新建组的GID
-r:指定新建组为系统组
[[email protected] testdir]# groupadd -g 3500 test [[email protected] testdir]# getent group test test:x:3500: [[email protected] testdir]# groupadd -r test1 [[email protected] testdir]# getent group test1 test1:x:491:
groupmod:修改组属性
-g:修改组的GID
-n new_name:修改组的名字
[[email protected] testdir]# groupmod -g 3600 -n txt test [[email protected] testdir]# getent group txt txt:x:3600:
groupdel:删除组
当使用Groupdel一个组的时候,如果有用户把这个组当作主组,那么删除这个组时就会出现这个报错信息。解决方法就是更换用户的主组,使用usermod -g groupname username.当没有用户把这个组当作主组的时候,使用groupdel groupname时便可以把这个组删除掉。
注意usermod -g groupname username是把username的主组变成groupname,而usermod -G groupname username只是把用户加到groupname组,并没有改变主组。
[[email protected] testdir]# groupdel test groupdel: cannot remove the primary group of user ‘test‘ [[email protected] testdir]# id test uid=3001(test) gid=3001(test) groups=3001(test) #若无法删除,更改主组 [[email protected] testdir]# usermod -g zcl1 test [[email protected] testdir]# id test uid=3001(test) gid=502(zcl1) groups=502(zcl1) [[email protected] testdir]# groupdel test
gpasswd:修改组密码
gpasswd [OPTION] GROUP
gpasswd GROUP :给GROUP组设置密码,不能像passwd可以从标准输入捕捉数据,避免交互
-A user1,user2,…:设置GROUP组的管理者
-a user :把user添加进入GROUP组
-d user:把user从组GROUP中移除
newgrp 命令:
临时切换基本组;
如果用户本不属于此组,则需要组密码
groupmems:更改和查看组成员
groupmems [options] [action]
-a, –add username 指定用户加入组
-d, –delete username 从组中删除用户
-p, –purge 从组中清除所有成员
-l, –list 显示组成员列表
-g, –group groupname 更改为指定组,与-p-l选择组合使用完成特定组的操作(只有root)
groupmems -l -g GROUPNAME 查看组所属的用户列表
groups [OPTION].[USERNAME]… 查看用户所属组列表