首页 > 代码库 > 学习linux-基础四(用户创建、修改、删除)

学习linux-基础四(用户创建、修改、删除)

用户的创建、修改、删除

 

一、用户创建

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作为基本组

[root@zcl ~]# id zcg
uid=506(zcg) gid=507(zcg) groups=507(zcg)
[root@zcl ~]# useradd -ou 506 zcm
[root@zcl ~]# id zcm
uid=506(zcg) gid=513(zcm) groups=507(zcg)
[root@zcl ~]# useradd -g zcg -G zcm zcm1
[root@zcl ~]# id zcm1
uid=512(zcm1) gid=507(zcg) groups=507(zcg),513(zcm)
[root@zcl ~]# useradd -r zcm3
[root@zcl ~]# getent passwd zcm3   #从passwd库中得到账号zcm3的信息
zcm3:x:496:492::/home/zcm3:/bin/bash
[root@zcl ~]# id zcm3
uid=496(zcm3) gid=492(zcm3) groups=492(zcm3)
[root@zcl ~]# ls -d /home/zcm*
/home/zcm  /home/zcm1
[root@zcl ~]# useradd -N zcm4
 [root@zcl ~]# getent passwd zcm4
zcm4:x:513:100::/home/zcm4:/bin/bash
[root@zcl ~]# groups zcm4
zcm4 : users

useradd -D

显示创建用户的默认信息

useradd -D [options]

修改创建用户的默认信息,其本质是修改的/etc/default/useradd文件的内容

[root@zcl ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@zcl ~]# useradd -D -s /bin/csh 
[root@zcl ~]# 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:指定用户非活动时间

[root@zcl ~]# id admins
uid=509(admins) gid=510(admins) groups=510(admins)
[root@zcl ~]# usermod -g zcl1840 -aG zcl4,zcl5 admins

[root@zcl ~]# id admins
uid=509(admins) gid=500(zcl1840) groups=500(zcl1840),505(zcl4),506(zcl5)

[root@zcl ~]# id zcl4
uid=504(zcl4) gid=505(zcl4) groups=505(zcl4),501(zclgroup)
[root@zcl ~]# usermod -u 3000 -md /testdir/zcl4 -s /bin/csh zcl4  #目录zcl4会被创建
[root@zcl ~]# id zcl4
uid=3000(zcl4) gid=505(zcl4) groups=505(zcl4),501(zclgroup)
[root@zcl testdir]# getent passwd zcl4
zcl4:x:3000:505::/testdir/zcl4:/bin/csh
[root@zcl testdir]# ls -a /testdir/zcl4
.   .bash_logout   .bashrc  .mozilla
..  .bash_profile  .gnome2

 

[root@zcl testdir]#  usermod -c "hello ni hao" -l zcy zcl1    #zcy为为创建的账号,相当与将zcl1改名为zcy了
 [root@zcl testdir]#  usermod -c "hello ni hao" -l zcl1 zcy   #又改回原来的名字
[root@zcl testdir]# id zcy
id: zcy: No such user 
[root@zcl testdir]# getent passwd zcl1
zcl1:x:501:502:hello ni hao:/home/zcl1:/bin/bash

  

[root@zcl testdir]# usermod -L zcm                    #锁定密码
[root@zcl testdir]# getent shadow zcm
zcm:!$6$B9iJPCO8$it6Y3lFC4rKzdZQ4m34K11YJixutb1Pw1BPnX1Z5cMGq35qV2E3jQev8QOGiOdL.75Ml6hECXrOtDez2vdzY50:17143:0:99999:7:::
[root@zcl testdir]# usermod -U zcm                    #解锁定
[root@zcl 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:删除用户时一并删除其家目录

[root@zcl testdir]# ls -d /home/zcm*
/home/zcm  /home/zcm4
[root@zcl testdir]# userdel -r zcm4
[root@zcl testdir]# id zcm4
id: zcm4: No such user
[root@zcl 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所对于的用户名或组名

[root@zcl testdir]# id -u zcm
506
[root@zcl testdir]# id -nu zcm
zcg
[root@zcl testdir]# id -g zcm
500
[root@zcl testdir]# id -ng zcm
zcl1840
[root@zcl testdir]# id -G zcm
500 507 502 503
[root@zcl testdir]# id -nG zcm
zcl1840 zcg zcl1 zcl2

 

su:切换用户或以其他用户身份执行命令

su [OPTION]… [-] [USER [ARG]…]

非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

[root@zcl testdir]# su zcg
[zcg@zcl testdir]$ 

登录式切换,会读取目标用户的配置文件,模拟重新登录,切换至家目录,完全切换  

[root@zcl testdir]# su - zcg
[zcg@zcl ~]$ pwd
/home/zcg
[root@zcl testdir]# su -l zcg
[zcg@zcl ~]$ pwd
/home/zcg

 

id [OPTION]… [USERNAME]

-l,-u:锁定和解锁用户,用passwd给用户家的锁,其密码前面有2个!!

-d:清除用户密码串,并且强制用户下次登录时修改密码

-e:强制用户下次登录修改密密码

-n:指定最短使用期限

-x:指定最多使用期限

-w:指定警告期限

-i:指定非活动期限(密码过期后必须修改密码才能登录的时间)

-uf:可以强制新创建的无密码的用户中的锁强制消除,即该用户可以直接登录

–stdin:从标准接收用户的密码

[root@zcl testdir]# echo "centos" | passwd -stdin zcg 

  

四、组的创建、修改、删除

groupadd groupmod groupdel

groupadd:添加组

-g:指定新建组的GID

-r:指定新建组为系统组

[root@zcl testdir]# groupadd -g 3500 test
[root@zcl testdir]# getent group test
test:x:3500:
[root@zcl testdir]# groupadd -r test1
[root@zcl testdir]# getent group test1
test1:x:491:

 


groupmod:修改组属性

-g:修改组的GID

-n new_name:修改组的名字

[root@zcl testdir]# groupmod -g 3600 -n txt test
[root@zcl 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组,并没有改变主组。

[root@zcl testdir]# groupdel test 
groupdel: cannot remove the primary group of user ‘test‘
[root@zcl testdir]# id test
uid=3001(test) gid=3001(test) groups=3001(test)
#若无法删除,更改主组
[root@zcl testdir]# usermod -g zcl1 test
[root@zcl testdir]# id test
uid=3001(test) gid=502(zcl1) groups=502(zcl1)
[root@zcl 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]… 查看用户所属组列表

  

  

 

 

 

  

  

 

 

  

  

学习linux-基础四(用户创建、修改、删除)