关于
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 �Ca
发现少了一些隐藏文件
,
尤其是以
.bash
开头的
.
很简单到
a1
的主目录里面将这些文件
copy
到
yahoon
里
[root@server1 a1]# cp .bash* ~yahoon
[root@server1 a1]# su yahoon
[yahoon@server1 ax]$ su
正常了
分析原因估计是以前不小心将那几个文件删除了
.
注
:
userdel
的
-r
参数来递归删除其主目录
那么建一个用户的缺省
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 �Ca
查看
,
可以看到也有同样的文件
.
在这个目录下新建一个文件
abc,
可以推测以后建的用户的主目录下都会有这个文件
.
[root@server1 skel]# touch abc
新建用户
a2
[root@server1 skel]# useradd a2
查看
a2
的主目录
[root@server1 skel]# ls /home/a2
abc
确实有文件
abc
呵呵
原理搞清楚了一切就简单了