用户查询、创建和删除
用户和组是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