一、用户管理相关命令

useradd 添加用户,同样还可以用adduser,一样的。

passwd    为用户设置密码。

usermod  修改用户密码、登录名、家目录等。

pwconv    同步用户从/etc/passwd/etc/shadow

pwck        校验用户配置文件/etc/passwd/etc/shadow文件内容是否合法或完整。

pwunconv         pwconv的逆向操作。从/etc/shadow/etc/passwd创建/etc/passwd,然后删掉/etc/shadow文件。

id      查看用户UIDGID及所属组。

chfn           更改用户信息。

su              用户切换。

sudo          通过另外一个用户来执行命令。

二、用户组相关命令

groupadd          添加用户组

groupdel           删除用户组

groups      显示用户所在组

grpck        校验组文件

grpconv    通过/etc/group/etc/gshadow的文件内容来同步或创建/etc/gshadow,如果/etc/gshadow不存在则创建。

grpunconv        通过/etc/group/etc/gshadow文件内容来同步或创建/etc/group,然后删除gshadow文件

三、常用命令及选项

1useradd

选项

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,能创建主目录。

-g 用户组 指定用户所属的用户组。

-G 用户组,用户组 指定用户所属的附加组。

-s Shell文件 指定用户的登录Shell

-u 用户号 指定用户的用户号,如果同时有-o选项,则能重复使用其他用户的标识号。

-p注意,这个命令是需求提供加密后的数据,普通数字是不行的。

1

[root@localhost ~]# useradd -d/home/ding/test -M test8
[root@localhost ~]# tail -n 1 /etc/passwd
test8:x:508:508::/home/ding/test:/bin/bash          #可以看到test8家目录变成/home/ding/test啦。


2

[root@localhost ~]# useradd -s /bin/sh -gding -G adm,root test10
[root@localhost ~]# tail -n 1 /etc/passwd
test10:x:510:500::/home/test10:/bin/sh        #创建用户shell默认为/bin/sh,属于ding(ui:500)组,及附属组 adm组和root组


2userdel

[root@localhost ~]# userdel test8 #删除用户test8在文件系统(主要是/etc/passwd/etc/shadow/etc/group等)中的记录,同时删除用户的主目录。

3usermod 此命令用法与useradd差不多。

4passwd

[root@localhost ~]# passwd --help
Usage: passwd [OPTION...]<accountName>
  -k,--keep-tokens       keep non-expiredauthentication tokens
  -d,--delete            delete the passwordfor the named account (root only)
  -l,--lock              lock the password forthe named account (root only)
  -u,--unlock            unlock the passwordfor the named account (root only)
  -e,--expire            expire the passwordfor the named account (root only)
  -f,--force             force operation
  -x,--maximum=DAYS      maximum passwordlifetime (root only)
  -n,--minimum=DAYS      minimum passwordlifetime (root only)
  -w,--warning=DAYS      number of dayswarning users receives before
                          password expiration(root only)
  -i,--inactive=DAYS     number of days afterpassword expiration when an
                          account becomesdisabled (root only)
  -S,--status            report passwordstatus on the named account (root
                          only)
 --stdin                 read newtokens from stdin (root only)

例:

[root@localhost ~]# useradd test13       #添加用户
[root@localhost ~]# passwd test13        #为用户添加密码
Changing password for user test13.
New password:
BAD PASSWORD: it is based on a dictionaryword
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updatedsuccessfully.
[root@localhost ~]# tail -n 1 /etc/passwd       #查看用户信息,关于/etc/passwd文件请见上篇博客
test13:x:512:512::/home/test13:/bin/bash
[root@localhost ~]# tail -n 1 /etc/shadow
test13:$6$buD48nR2$aOaQPJ/qfVUMy0j/6uShUz9us4KobNdalIN27rZzXsBCIaLl/sAX28Tw68iTZpp5cGdyf8gofYTCKh9Ey2c6K.:16682:0:99999:7:::         #查看用户密码信息,同样关于/etc/shadow文件请见上篇博客
[root@localhost ~]# passwd -l test13     #锁定用户
Locking password for user test13.
passwd: Success
[root@localhost ~]# tail -n 1 /etc/shadow      #查看密码信息会发现密码前多了两个“!!”
test13:!!$6$buD48nR2$aOaQPJ/qfVUMy0j/6uShUz9us4KobNdalIN27rZzXsBCIaLl/sAX28Tw68iTZpp5cGdyf8gofYTCKh9Ey2c6K.:16682:0:99999:7:::
[root@localhost ~]# passwd -u test13    #解锁用户,也就去掉/etc/shadow中的密码前“!!”
Unlocking password for user test13.
passwd: Success
[root@localhost ~]# tail -n 1 /etc/shadow
test13:$6$buD48nR2$aOaQPJ/qfVUMy0j/6uShUz9us4KobNdalIN27rZzXsBCIaLl/sAX28Tw68iTZpp5cGdyf8gofYTCKh9Ey2c6K.:16682:0:99999:7:::
[root@localhost ~]# passwd -f test13     #强制用户修改密码
Changing password for user test13.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is a palindrome
Retype new password:
No password supplied
passwd: Authentication token manipulationerror
[root@localhost ~]# passwd -d test13    #删除密码,删除密码后用户登录就可以不用输入密码了
Removing password for user test13.
passwd: Success
[root@localhost ~]# tail -n 1 /etc/shadow
test13::16682:0:99999:7:::
[root@localhost ~]# echo test13|passwd--stdin test13        #通过—stdin修改用户密码,写脚本时用很方便
Changing password for user test13.
passwd: all authentication tokens updatedsuccessfully.
[root@localhost ~]# tail -n 1 /etc/shadow
test13:$6$J9t6GO.B$yM5Sup5zPhKSob.M8CKv84iFzJod/oa7iLZgo9AXoimnkOV/48hKR46gINSwurP.xZ8S76Od9/WkUxa.ghyPq0:16682:0:99999:7:::