当前位置: > Ubuntu >

ubuntu useradd与adduser的用法详解

时间:2016-05-08 23:51来源:linux.it.net.cn 作者:IT

ubuntu useradd与adduser的用法详解

ubuntu  useradd与adduser的用法详解   一直以来都搞不清在ubuntu下useradd和adduser的区别。网上也大多的帖子说其实两个就是实现一样的功能,但是我自己在做得时候,却问题多多,现在在总结之后写一写备忘,也让大家参考一下。         useradd是一个linux命令,但是它提供了很多参数在用户使用的时候根据自己的需要进行设置;而adduser是一个perl 脚本,在使用的时候会出现类似人机交互的界面,提供选项让用户填写和选择,这个命令比起useradd来说比较简单,也比较傻瓜。  

 一.adduser的使用详解 

 在使用adduser命令的时候,系统会添加这个用户名,并且还会自动地创建与这个用户名名字一样的用户组作为这个用户的初始用户组。此外,还会自动地在/home目录下面创建一个与用户同名的目录,接着执行"cp /etc/skel  /home/用户名"的操作,实现新增用户的主目录的初始化。


          用adduser这个命令创建的账号是系统账号,可以用来登录到我们的ubuntu系统。

  二.useradd的使用详解         

 

useradd有大量的参数供我们进行个性化设置,但是,也有比较多的默认设置是我们不知道的,所以,在进行这个参数选择的时候还是需要谨慎和细心,不然的话可能会得到跟我们预想中不一样的结果。

useradd的参数如下:         

-c 备注 加上备注。并会将此备注文字加在/etc/passwd中的第5项字段中         

-d 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权        

 -e 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,将存储在/etc/shadow         

-f 缓冲天数。限定密码过期后多少天,将该用户帐号停用       

 -g 主要组。设置用户所属的主要组  www.cit.cn           

-G 次要组。设置用户所属的次要组,可设置多组         

-M 强制不创建用户主文件夹         

-m 强制建立用户主文件夹,并将/etc/skel/当中的文件复制到用户的根目录下         

-p 密码。输入该帐号的密码         

-s shell。用户登录所使用的shell         

-u uid。指定帐号的标志符user id,简称uid
  

useradd这个命令创建的是普通账号,并不能用来登录系统。 

注意:事实上,我在使用useradd的时候,出现的问题还是比较多的。印象最深刻的是即使我使用可“-d”参数,但是,用户的主文件夹并没有能够正确的建立起来。后来,我直接使用了“-m”参数,强制建立用户主文件夹,而不使用"-d"参数,结果主文件夹创建了。于是我得出了一个结论:当使用参数"-m"的时候,系统会自动地在/home目录下建立一个与新建用户同名的用户主文件夹;如果不使用"-m"的话,那么就默认是使用“-M”参数,不创建主文件夹,即使你使用了"-d"这个参数。所以,"-d"这个参数是跟"-m"一起使用的,让用户自己选择主文件夹的路径。  

 

 

 

Ubuntu中useradd和adduser的区别

 

  在Ubuntu中创建新用户,通常会用到两个命令:useradd和adduser。虽然作用一样,但用法却不尽相同:

  1. 使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。

  2. 使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。

  useradd是一个ELF可执行程序;

  useradd会添加用户名,并创建和用户名相同的组名,但它并不在/home目录下创建基于用户名的目录,也不提示创建新的密码。

  -b, –base-dir BASE_DIR 指定home目录的base目录

  -d, –home-dir HOME_DIR 指定home目录

  -g, –gid GROUP 指定gid

  -l, –no-log-init do not add the user to the lastlog and

  faillog databases

  不要把用户添加到lastlog和failog中, 这个用户的登录记录不需要记载

  -M, –no-create-home 不要建立home目录

  -p, –password PASSWORD 指定新用户的密码

  -r, –system 建立一个系统帐号

  -s, –shell SHELL 指定shell

  adduser -m -d /usr/system -s /bin/bash -p passwd system

  而adduser是一个perl脚本, 可以交互式地设定一些用户参数

  问题:

  adduser的-p 参数 并不能shadow密码

  /usr/sbin/usermod 与 useradd的参数很类似

  usermod –password PASSWORD username

  总结上来讲,在Ubuntu中,adduser更适合初级使用者,因为不用去记那些繁琐的参数选项,只要跟着系统的提示一步一步进行下去就行,缺点就是整个创建过程比较复杂而漫长;而useradd比较适合有些高阶经验的使用者,往往一行命令加参数就能解决很多问题,所以创建起来十分方便。


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容