/etc/profile和/etc/skel

这个文件 /etc/profile由系统管理员管,因为当初次登录时,每个用户都 source 它,所以使它保持工作状态很重要。它也是提供给新用户的强大工具,该工具使新用户一登录进他们的新帐户,一切就正确运行。但是,有一些您可能希望新用户作为缺省值的设置,而且允许容易地修改它们。这就是 /etc/skel 目录的用途所在。
当您用 useradd 命令来创建一个新用户帐户时,它将所有的文件从 /etc/skel 复制到用户的新的主目录中(如果按默认应该在/home下)。这意味着您可以将有帮助的 .bash_profile 和 .bashrc 文件放在 /etc/skel 中,使新用户有一个好的开始。

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

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

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

#useradd -m -s/bin/bash steven

/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 结束

所以你可以看到默认的HOME和默认的SKEL目录。

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

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

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

从上面的例子可以看出/etc/skel目录的作用:

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

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

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

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

export LC_ALL="zh_CN.UTF-8"
 export [email protected]=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-10-04 22:59:42

/etc/profile和/etc/skel的相关文章

Bash shell用户环境

介绍 了解Linux的启动顺序,也有助于本内容的理解,加载用户环境是Linux启动的最后一步.不同的shell 会使用不同的配置文件: bash (.profile), ksh (.profile), csh (.login). bash shell 被设计成兼容sh, ksh,  它会在用户主目录依次检查.bash_profile,.bash_login,.profile是否存在,并加载找到的第一个文件.无论文件名字如何,加载用户环境的原理一样,只设定一个配置文件即可.但若有兼容bash,ks

如图内容有进入要警惕

http://www.hi5.com/ezmf8u854https://www.hi5.com/ezmf8u854http://www.tagged.com/profile.html?uid=7308248690http://www.tagged.com/hi5/ezmf8u854http://www.hi5.com/profile.html?uid=7308248690https://www.hi5.com/profile.html?uid=7308248690http://www.hi5.c

个航母改价格

http://www.hi5.com/x07t3w3ahttps://www.hi5.com/x07t3w3ahttp://www.tagged.com/profile.html?uid=6028704571http://www.tagged.com/hi5/x07t3w3ahttp://www.hi5.com/profile.html?uid=6028704571https://www.hi5.com/profile.html?uid=6028704571http://www.hi5.com/

Check if a configuration profile is installed on iOS

Configuration profiles can be downloaded to an iOS device through Safari to configure the device in a certain way. You can do things like force the user to set a passcode or set restrictions like not allowing them to install apps or not allowing acce

python程序之profile分析

操作系统 : CentOS7.3.1611_x64 python版本:2.7.5 问题描述 1.Python开发的程序在使用过程中很慢,想确定下是哪段代码比较慢: 2.Python开发的程序在使用过程中占用内存很大,想确定下是哪段代码引起的: 解决方案 使用profile分析分析cpu使用情况 profile介绍: https://docs.python.org/2/library/profile.html 可以使用profile和cProfile对python程序进行分析,这里主要记录下cPr

12.Show Profile

1.是什么: 是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量 show profile 查询SQL在MySQL服务器里面的执行细节和生命周期情况 2.默认情况下,参数处于关闭状态,并保存最近15次的运行结果 3.分析步骤 1.是否支持:看看当前mysql版本是否支持 2.开启功能:默认是关闭的,使用前需开启  set profiling = on 3.运行SQL 4.查看结果   show profiles 5.诊断SQL show profile cp

【转】maven profile实现多环境打包

作为一名程序员,在开发的过程中,经常需要面对不同的运行环境(开发环境.测试环境.生产环境.内网环境.外网环境等等),在不同的环境中,相关的配置一般不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置.每次在不同环境部署程序时,都需要修改相应的配置文件,使之完成环境的配置.这么做存在一个比较大的问题:每次修改配置非常麻烦,而且配置错误会产生不可预估的影响,比如,在发布生产环境时用的开发环境的配置还好,但如果在开发环境下用生产环境的数据,将会造成生产数据的污染,导致生产环境崩溃.

linux关于bashrc与profile的区别(转)

bashrc与profile的区别 要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell. 交互式模式就是shell等待你的输入,并且执行你提交的命令.这种模式被称作交互式是因为shell与用户进行交互.这种模式也是大多数用户非常熟悉的:登录.执行一些命令.签退.当你签退后,shell也终止了. shell也可以运行在另外一种模式:非交互式模式.在这种模式下,shell不与你进行交互,而是

Mysql之表的操作&索引&explain&profile

创建一个表create table(help create table) =>rename table A to B  更改表名 =>alter table A rename to B 更改表 =>drop table A   删除表 mysql> show create database gtms; #查看建库语句 +----------+---------------------------------------------------------------+ | Data