2015-06-03 10:25:52
来 源
中存储网
Ubuntu
记得我之前写过一篇关于在Ubuntu 10.04下创建新用户的命令adduser和useradd。 其实当时看到网上很多的文章都说这两个命令其实效果是完全一样的,但是我在Ubuntu 10.04上尝试的时候发现并不一样。那时候还吐槽过网上的文章乱作呢。现在,经过自己的实验之后发

记得我之前写过一篇关于在Ubuntu 10.04下创建新用户的命令“adduser”和“useradd”。

其实当时看到网上很多的文章都说这两个命令其实效果是完全一样的,但是中存储在Ubuntu 10.04上尝试的时候发现并不一样。那时候还吐槽过网上的文章乱作呢。现在,经过自己的实验之后发现,原来不同版本的Linux系统,对这两个命令的解释不完全一样。我是在CentOS下与在Ubuntu下进行比较的。

首先可以看一下在CentOS下,大家进入/usr/sbin目录下,用命令

[root@localhost sbin]# ll | grep useradd

观察上面结果中的第一条和第三条,大家可以发现,原来adduser是链接到了useradd的,于是,在Centos里面,useradd和adduser的作用是完全一样的。都是在创建了用户之后,会在/etc/passwd文件中加一条新建用户的记录,然后在/home目录下创建新用户的主目录,并把/etc/skel目录中的文件复制到这个主目录接下来。

注意:这种方法创建的新用户,在设置密码之前是不能登陆到系统上的,你需要在root权限下使用“passwd 用户名”的方法为指定的用户设置密码。下次才能以该用户名和密码登陆到系统中。

接着来看一下ubuntu系统下,还是先进入到/usr/sbin目录下,用命令

[root@localhost sbin]# ll | grep useradd

可以看得出来,在Ubuntu下,useradd和adduser是分别独立的命令,并没有链接的关系。我尝试这用useradd这个命令创建一个新用户(并没有加useradd的任何参数)。结果跟之前的博文(文章链接在这篇文章开始处)是一样的,在/home下还是没有新用户的主目录。但是这次我还查看了一个文件,就是/etc/passwd这个文件。我打开之后发现在/etc/passwd中确实增加了我新创建的用户的信息,但是,该用户的登陆Shell跟其他用户不一样,是“/bin/sh”,其他用户的登陆Shell是/bin/bash。

大家可以通过在root权限下修改此文件,使得example的登陆Shell为/bin/bash,然后还需要用mkdir命令为该用户创建一个用户目录,即/home/example,并将/etc/skel目录下的文件复制到该用户目录下,设置密码之后,新建用户就能想普通用户一样登陆系统了。

注意:上面的情况是没有使用useradd的任何指定参数,才需要手动做额外的工作。一旦在用useradd的时候加一个参数“-m”,并设置好密码,那么该用户就能正常登陆系统了(具体的看我之前的博文,链接在这篇文章的开头处)。还有就是,貌似useradd创建的用户默认的登陆Shell都是/bin/sh,可以在root权限下修改成/bin/bash,或者在使用useradd的时候用参数“-s”指定。

现在来看看ubuntu10.04下的adduser,还是在/usr/sbin里面,使用接下来命令查看结果得到:

[root@localhost sbin]# ll | grep adduser

观察上面的结果发现,adduser和addgroup也是同一个命令。而对于adduser这个命令,我之前的博文(链接在这篇文章开头处)也详细的讲过了。在这里就不再介绍了。在ubuntu下,adduser这个命令创建的用户默认的登陆Shell是/bin/bash,与useradd不同。

综合上面的两种版本,发现useradd和adduser这一组命令,也是根据系统版本而不同的。其他版本的Linux系统还没有做过测试,期望能有更多的发现。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。