linux创建用户

来源:http://blog.csdn.net/beitiandijun/article/details/41678251


一、常用命令:

(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命令:

常用命令行选项:

          -d:           指定用户的主目录

          -m:          如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。

          -s:           指定用户登录时的shell版本

          -M:          不创建主目录

          -g:       指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。

    -G:        指定用户所属的附加群组

        -p:    增加改参数就可同时添加帐号及密码啦


例如:

$   sudo  useradd  -d  "/home/tt"   -m   -s "/bin/bash"   tt

解释:   -d   “/home/tt" :就是指定/home/tt为主目录

               -m   就是如果/home/tt不存在就强制创建

               -s    就是指定shell版本


修改tt密码:

$  sudo passwd tt


3、给已有的用户增加工作组
usermod -G groupname username  (这个会把用户从其他组中去掉)

usermod -a groupname username

或者:gpasswd -a user group

如果添加了用户,添加了组,然后使这个组里的人都可以sudo 到公共账号下

可以/etc/sudoers.d 下面建立一个文件内容如下 ,就可以是etl组的所有用户都可以无密码的切到etl用户下。

%etl ALL=(ALL) NOPASSWD: /bin/su etl
%etl ALL=(ALL) NOPASSWD: /bin/su - etl

sudo 具体参考 http://www.cnblogs.com/xd502djj/p/6641475.html



4、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。

或者使用如下命令关闭用户账号:
passwd peter –l

重新释放:
passwd peter –u

5、永久性删除用户账号
userdel peter

groupdel peter

usermod –G peter peter   (强制删除该用户的主目录和主目录下的所有文件和子目录)




6、删除用户命令


userdel


(1)只删除用户:

sudo   userdel   用户名



(2)连同用户主目录一块删除:

sudo  userdel   -r   用户名


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

linux创建用户


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


7、相关文件:

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