Linux用户管理详解

一、常用命令:

(1)创建用户命令两条:

adduser

useradd

(2)用户删除命令:

userdel

二、两个用户创建命令之间的区别

adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。

useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。

三、使用adduser

例如:

$    adduser   apple

输出显示:

Linux用户管理详解

这样在创建用户名时,就创建了用户的主目录以及密码。

默认情况下:

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中相关选项屏蔽。如:

Linux用户管理详解

四、使用useradd

注意: 在使用useradd命令创建新用户时,不会为用户创建主目录,不会为用户指定shell版本,不会为用户创建密码。

例如:

1、不使用任何参数选项创建用户:

例如创建新用户 tt

$  sudo  useradd  tt

(1)需要为用户指定登录密码:

Linux用户管理详解

(2)需要为用户指定shell版本和用户登录主目录

Linux用户管理详解

如上图所示,最后一行行首只出现:

$

查看shell版本,发现是/bin/sh:

Linux用户管理详解

说明这是没有指定shell版本

用户登录后的所在目录为根目录:  /

虽然$HOME环境变量为/home/tt

Linux用户管理详解

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   用户名

如果创建时主目录已经存在,即主目录不属于当前要删除的用户,则无法删除主目录,例如:

Linux用户管理详解

可以看出无法删除已有主目录/home/tt。

六、相关文件:

       /etc/passwd - 使 用 者 帐 号 资 讯,可以查看用户信息
       /etc/shadow - 使 用 者 帐 号 资 讯 加 密
       /etc/group - 群 组 资 讯
       /etc/default/useradd - 定 义 资 讯
       /etc/login.defs - 系 统 广 义 设 定
       /etc/skel - 内 含 定 义 档 的 目 录

相关推荐