Ubuntu下 useradd与adduser命令的区别[shell]

在维护ubuntu系统过程中, 由于使用adduser和useradd感觉上并没有太大的差别, 所以也就没有在意它们的区别, 对于这个问题的重视还是在操作邮件服务器的帐号时才开始的. 在我新建用户时, 我一般都是使用useradd accountname 的方式来添加用户的. 以致于在设置完用户信息时, 却发现新帐户并不能正常登陆, 老是出现 无法建立 /home/webmaster/.openwebmail/db (Permission denied), 这样的提示, 后来研究它的帐户信息才发现, 原来主要的原因就是由于adduser和useradd的差异导致的. 它们的区别到底在哪里呢? 经GG并结合我本地的实践来看, useradd, adduser存在着很大的区别和联系, 具体分析如下:

进入/usr/sbin目录:

# cd /usr/sbin

使用命令:

#ll | grep useradd

得到如下图示的信息:

这个是一个独立的文件, 当使用useradd accountname时(前提是不加任何参数), 就是单纯地添加了一个用户,在/home下还是没有新用户的主目录, 在/etc/passwd中确实增加了我新创建的用户的信息, 该用户的登陆Shell跟其他用户不一样,是“/bin/sh”,我们可以通过在root权限下修改此文件,使得accountname的登陆Shell为/bin/bash,然后还需要用mkdir命令为该用户创建一个用户目录,即/home/accountname,并将/etc/skel目录下的文件复制到该用户目录下,设置密码之后,新建用户就能想普通用户一样登陆系统了.

注意:上面的情况是没有使用useradd的任何指定参数,才需要手动做额外的工作。如果在用useradd的时候加一个参数“-m”,并设置好密码,那么该用户就能正常登陆系统了, 貌似useradd创建的用户默认的登陆Shell都是/bin/sh,可以在root权限下修改成/bin/bash,或者在使用useradd的时候用参数“-s”指定

具体的参数可以使用命令: useradd --help, 那里有这个命令的详尽解释说明.

下面来看adduser的属性, 使用命令:

#ll | grep adduser

得到如下信息:

观察上面的结果发现,adduser和addgroup也是同一个命令。而对于adduser这个命令, adduser这个命令创建的用户默认的登陆Shell是/bin/bash 使用adduser accountname时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。

下面这个截图分别是使用useradd和adduser(最后一条)两个命令得到的. 注意它们的区别.

 

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

参考资料: http://os.51cto.com/art/201208/354693.htm

posted @ 2012-10-12 15:55  月影传说  阅读(1948)  评论(0编辑  收藏  举报