创建用户有两种方式:adduser
和useradd
,对应的删除命令为:deluser
和userdel
。
两种方式的区别:
-
adduser
:会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码 -
useradd
:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。
1. adduser
1.1 创建用户
命令:
wq@DESKTOP:~$ sudo adduser tt
输出:
[sudo] password for wq:
Adding user `tt' ...
Adding new group `tt' (1001) ...
Adding new user `tt' (1001) with group `tt' ...
Creating home directory `/home/tt' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for tt
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
这样在创建用户名时,就创建了用户的主目录以及密码。
默认情况下:
adduser
在创建用户时会主动调用 /etc/adduser.conf
;
-
用户主目录
被默认为为/home/${用户名}
。如果主目录已经存在,就不再创建,虽然此主目录作为新用户的主目录,而且默认登录时会进入这个目录下,但是这个目录并不属于新用户,当使用userdel
删除新用户时,并不会删除这个主目录,因为这个主目录在创建前已经存在且并不属于这个用户。 -
shell
被指定为:/bin/bash
。
常用参数选项为:
–home
: 指定创建主目录的路径,默认是在/home
目录下创建用户名同名的目录,这里可以指定;如果主目录的同名目录存在,则不再创建,仅在登录时进入主目录。
–quiet
: 即只打印警告和错误信息,忽略其他信息。
–debug
: 定位错误信息。
–conf
: 在创建用户时使用指定的configuration
文件。
–force-badname
: 默认在创建用户时会进行/etc/adduser.conf
中的正则表达式检查用户名是否合法,如果想使用弱检查,则使用这个选项,如果不想检查,可以将/etc/adduser.conf
中相关选项屏蔽。如:
# check user and group names also against this regular expression.
# Name_REGEX="^[A-Z][-A-Z0-9_]*\$"
1.2 删除用户
-
只删除用户:
$ sudo deluser tt
输出:
Removing user `tt' ... Warning: group `tt' has no more members. Done.
-
连同用户主目录和邮箱一起删除:
$ sudo deluser --remove-home tt
输出:
Looking for files to backup/remove ... Removing files ... Removing user `tt' ... Warning: group `tt' has no more members. Done.
-
连同用户拥有的所有文件删除:
$ sudo deluser --remove-all-files tt
输出:
Looking for files to backup/remove ... /usr/sbin/deluser: Cannot handle special file /proc/keys ... #许多类似显示,这里省略 Removing files ... Removing user `tt' ... Warning: group `tt' has no more members. Done.
2. useradd
注意: 在使用useradd
命令创建新用户时,不会为用户创建主目录,不会为用户指定shell版本,不会为用户创建密码。
2.1 创建用户
-
无参数创建用户:
$ sudo useradd tt
- 为用户指定登录密码:
$ sudo passwd tt
输出:
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
- 为用户指定shell:
$ sudo usermod -s /bin/bash tt
- 为用户指定主目录:
$ sudo usermod -d /home/tt tt
-
带参数创建用户
常用参数选项:
-d
:指定用户主目录-m
:主目录如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建;-m
和-d
一块使用。-s
:指定用户登录时的shell-M
:不创建主目录
例:
$ sudo useradd -d "/home/tt" -m -s "/bin/bash" tt
解释:
-d “/home/tt”
:指定/home/tt
为主目录
-m
如果/home/tt
不存在就强制创建
-s
指定shell版本修改用户密码:
$ sudo passwd tt
输出:
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
2.2 删除用户
-
只删除用户:
$ sudo userdel tt
-
连同用户主目录一起删除:
$ sudo userdel -r tt
如果创建时主目录已经存在,即主目录不属于当前要删除的用户,则无法删除主目录。
3. 相关文件
/etc/passwd - 使用者帐号资讯,可以查看用户信息
/etc/shadow - 使用者帐号资讯 加密
/etc/group - 群组资讯
/etc/default/useradd - 定义资讯
/etc/login.defs - 系统广义设定
/etc/skel - 内含定义档的目录