Linux用户管理详解
一、常用命令:
(1)创建用户命令两条:
adduser
useradd
(2)用户删除命令:
userdel
二、两个用户创建命令之间的区别
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。
三、使用adduser
例如:
$ adduser apple
输出显示:
这样在创建用户名时,就创建了用户的主目录以及密码。
默认情况下:
adduser在创建用户时会主动调用 /etc/adduser.conf;
在创建用户主目录时默认在/home下,而且创建为 /home/用户名
如果主目录已经存在,就不再创建,但是此主目录虽然作为新用户的主目录,而且默认登录时会进入这个目录下,但是这个目录并不是属于新用户,当使用userdel删除新用户时,并不会删除这个主目录,因为这个主目录在创建前已经存在且并不属于这个用户。
为用户指定shell版本为:/bin/bash
因此常用参数选项为:
(1) --home: 指定创建主目录的路径,默认是在/home目录下创建用户名同名的目录,这里可以指定;如果主目录同名目录存在,则不再创建,仅在登录时进入主目录。
(2) --quiet: 即只打印警告和错误信息,忽略其他信息。
(3) --debug: 定位错误信息。
(4) --conf: 在创建用户时使用指定的configuration文件。
(5) --force-badname: 默认在创建用户时会进行/etc/adduser.conf中的正则表达式检查用户名是否合法,如果想使用弱检查,则使用这个选项,如果不想检查,可以将/etc/adduser.conf中相关选项屏蔽。如:
四、使用useradd
注意: 在使用useradd命令创建新用户时,不会为用户创建主目录,不会为用户指定shell版本,不会为用户创建密码。
例如:
1、不使用任何参数选项创建用户:
例如创建新用户 tt
$ sudo useradd tt
(1)需要为用户指定登录密码:
(2)需要为用户指定shell版本和用户登录主目录
如上图所示,最后一行行首只出现:
$
查看shell版本,发现是/bin/sh:
说明这是没有指定shell版本
用户登录后的所在目录为根目录: /
虽然$HOME环境变量为/home/tt
2、为用户指定参数的useradd命令:
常用命令行选项:
(1) -d: 指定用户的主目录
(2) -m: 如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。
(3) -s: 指定用户登录时的shell版本
(4) -M: 不创建主目录
例如:
$ sudo useradd -d "/home/tt" -m -s "/bin/bash" tt
解释: -d “/home/tt" :就是指定/home/tt为主目录
-m 就是如果/home/tt不存在就强制创建
-s 就是指定shell版本
修改tt密码:
$ sudo passwd tt
五、删除用户命令
userdel
(1)只删除用户:
sudo userdel 用户名
(2)连同用户主目录一块删除:
sudo userdel -r 用户名
如果创建时主目录已经存在,即主目录不属于当前要删除的用户,则无法删除主目录,例如:
可以看出无法删除已有主目录/home/tt。
六、相关文件:
/etc/passwd - 使 用 者 帐 号 资 讯,可以查看用户信息
/etc/shadow - 使 用 者 帐 号 资 讯 加 密
/etc/group - 群 组 资 讯
/etc/default/useradd - 定 义 资 讯
/etc/login.defs - 系 统 广 义 设 定
/etc/skel - 内 含 定 义 档 的 目 录