解析Linux /etc/skel

Linux 2063 0 2013-05-04

解析Linux /etc/skel

/etc/skel建立使用起来非常简单。它使所有在LFS系统上面的 新用户拥有一样的初始设置。 /etc/skel目录是被 /usr/sbin/useradd 使用的。

阅读man useradd可以得到更多信息

开始需要建立一个/etc/skel 目录,最好使用root用户。然后把 你想要新用户拥有的配置文件拷贝到/etc/skel目录。比如: .bash_profile.bashrc.bash_logoutdircolors.inputrc, 和 .vimrc

当使用 /usr/sbin/useradd建立新用户的时候使用 -m 参数,例如:

useradd -m -s/bin/bash jwrober

/usr/sbin/useradd使用了一系列缺省设置,位于 /etc/default/useradd(如果这个文件存在的话)。如果 这个文件不存在,它会使用其内部缺省设置,可以用/usr/sbin/useradd -D 来列处这些设置。

如果想对这个缺省设置作一些变动,就要建立一个 /etc/default/useradd 文件,并使用和 /usr/sbin/useradd -D输出一样的内容。例如:

# /etc/default/useradd 开始

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=
SKEL=/etc/skel

# /etc/default/useradd 结束

里面少了对缺省shell的设置。运行此命令添加:

/usr/sbin/useradd -D -s/bin/bash

这样 SHELL= 那一行将被设置成 SHELL=/bin/bash。这样使得在LFS系统增加新用户更加容易。 /usr/sbin/useradd 有很多参数可以在/etc/default/useradd中设置。可以阅读man手册来获取更多细节。

注:
1.如果在新建用户时,没有自动建立用户根目录,则无法调用到此框架目录。
2.如果不想以默认的/etc/skel目录作为框架目录,可以在运行useradd命令时指定新的框架目录。例如:
sudo useradd -d /home/chen -m -k /etc/my_skel chen
上述命令将新建用户chen,设置用户根目录为/home/chen,并且此目录会自动建立;同时指定框架目录为/etc/my_skel
3.如果不想在每次新建用户时,都重新指定新的框架目录,可以通过修改/etc/default/useradd配置文件来改变默认的框架目录,方法如下:
查找SKEL变量的定义,如果此变量的定义已被注释掉,可以取消注释,然后修改其值:
SKEL=/etc/my_skel

上一篇:Linux的下载命令wget详解

下一篇:centos 32和64位的区别

讨论数量:1

天涯网魂 3 杠 5 星2013-05-04 16:44:02

浅析/etc/skel 目录

/etc/skel 这个目录想必大家平时都不太注意,本文给大家浅析一下这个目录.

那么这个 /etc/skel 目录是干啥的呢?

skel 是 skeleton 的缩写,每当你新建一个用户的时候 (通过 useradd 命令),/etc/skel 目录下的文件,都会原封不动的复制到新建用户的家目录下~

让我们看看 /etc/skel 目录下都有啥吧:

localhost ~ # ls -a /etc/skel
. .. .bash_logout .bash_profile .bashrc

熟悉的一系列 .bash_xxx 配置文件,现在明白为什么新建一个用户,用户的目录下自动就会有了这些文件了吧~

如果你是一个多用户系统的管理员,你可以在 skel 目录下写个 ReadMe.txt 之类的文件,写一些使用说明,这样每个新建的用户都会在自己的目录下看到这个说明文件了.

再比如,你希望新建用户可以直接 startx 就启动到 gnome 桌面环境,你可以在 skel 目录下建立一个 .xinitrc 文件,内容如下:

export LC_ALL="zh_CN.UTF-8"
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE="scim"
eval `dbus-launch --exit-with-session --sh-syntax`
exec gnome-session

.xinitrc 是 X 启动需要读取的用户配置文件,这样每个用户 startx 之后就直接装载 gnome 了.

你甚至可以在 sekl 目录下再建立目录,总之 /etc/skel 下的所有文件都会拷贝的用户的家目录去.

你也许会想到,在 skel 目录下的 .bashrc 文件中加入一些方便的环境变量或者命令别名,这样每个新建用户都可以使用这些功能.不过,更好的选择是把这些设置放到全局的 /etc/profile 中, skel 目录下的文件是拷贝过去的,如果你修改或者增加了新的文件,只有新建的用户才能受益.

请先登录再发表讨论。 2024-04-26

天涯网魂
3 杠 5 星
TA 的文章
TA 的随言
TA 的资源链