关于useradd的一点事
虽然接触了linux有一段时间了,但是对于其很多基础的理论知识还不算太懂.时不时的碰到问题要临时去翻资料.今天就说一例
像平常一样切换用户
[root@server1 ax]# su yahoon
sh-2.05b$ 这提示符是sh的,很是奇怪
新建a1用户
useradd a1
passwd a1 设密码就可以启用了
[root@server1 ax]# su a1
[a1@server1 ax]$ 这提示符是bash,正常情况
查看用户配置文件
less /etc/passwd
yahoon:x:502:502::/home/yahoon:/bin/bash
a1:x:511:511::/home/a1:/bin/bash
为什么yahoon实际登陆的不是bash,到其主目录ll –a 发现少了一些隐藏文件,尤其是以.bash开头的.很简单到a1的主目录里面将这些文件copy到yahoon里
[root@server1 a1]# cp .bash* ~yahoon
[root@server1 a1]# su yahoon
[yahoon@server1 ax]$ su
正常了
分析原因估计是以前不小心将那几个文件删除了.
注:useradd 和 userdel 的-r参数来指定shell
那么建一个用户的缺省shell,和主目录的那些文件都是从哪里指定的呢?答案是下面这个文件
[root@server1 default]# less /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
新建一个用户如果未做任何指定的话,就会应用上述的配置.
可以看到默认的shell为/bin/bash
默认的文件放在/etc/skel下
[root@server1 default]# cd /etc/skel
[root@server1 skel]# ls -a
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .kde
在刚建的用户a1的主目录用ls –a查看,可以看到也有同样的文件.
在这个目录下新建一个文件abc,可以推测以后建的用户的主目录下都会有这个文件.
[root@server1 skel]# touch abc
新建用户a2
[root@server1 skel]# useradd a2
查看a2的主目录
[root@server1 skel]# ls /home/a2
abc
确实有文件abc
呵呵 原理搞清楚了一切就简单了