Skip to content

用户查询、创建和删除

用户和组是Linux默认的访问控制机制,在Linux系统中每次登录均以用户的身份进行操作。每个用户属于一个或多个组,同一组内的用户共享组权限,比如一个文件设置为组可修改,那么属于同一组内的其他用户也可修改该文件

查询用户

使用id查询指定用户的信息

Print user and group information for the specified USER

查询当前用户信息

$ id
uid=1000(zj) gid=1000(zj) groups=1000(zj),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),999(docker)

查询指定用户的信息

# 查询root用户
$ id root
uid=0(root) gid=0(root) groups=0(root)
# 查询当前用户
$ id $UID
uid=1000(zj) gid=1000(zj) groups=1000(zj),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),999(docker)

查询用户ID

$ id -u zj
1000

查询初始组ID

$ id -g zj
1000

创建用户

使用useradd进行用户创建,语法如下:

useradd [options] LOGIN

创建用户(不创建目录)

$ useradd USER

创建用户,在HOME目录下创建同名文件夹

$ useradd -m USER

指定初始组,使用组名或组ID(注意:该初始组必须已存在)

# -g, --gid
$ useradd -g GNAME USER

指定用户ID

# -u, --uid
$ useraddd -u UID USER
# 使用参数`-o`表明可以指定已存在的UID
$ useradd -o -u UID USER

添加额外信息,添加的信息将出现在/etc/passwd文件每行的GECOS字段

$ useradd -c "COMMENT" USER

登录shell

指定登录shell

$ useradd -s /bin/sh -m USER

指定用户无法shell登录

$ useradd -s /sbin/nologin

用户密码

设置登录密码,使用参数-p,但是没有效果,需要使用passwd设置用户密码

# passwd zj
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

可在文件/etc/shadow下查看是否设置成功

zj:$6$zK72ODxA$EAq/p.5qfANxr40XOl/jldgBAmoN0Opvdxxxxxxxxxxxxxxx:18168:0:99999:7:::

删除用户

可在/etc/passwd中查询创建的用户

# cat /etc/passwd
...
...
zj:x:1000:1000::/home/zj:/bin/sh

使用userdel进行用户删除,语法如下:

Usage: userdel [options] LOGIN

仅删除用户信息

$ userdel USER

同时删除HOME目录

$ userdel -r USER

相关阅读