分类: LINUX
2011-02-21 15:00:55
Debian & Ubuntu 里有如下配置文件,今天终于理顺
/etc/profile
/etc/bash.bashrc
~/.profile
~/.bashrc
~/.bash_aliases
1. 所有以上文件有且只有用户登录终端时才会执行
2. su - (等同于 su -l) 相当于用户重新登录一次终端,以上文件都会执行一下
3. su 不会执行 profile (/etc/profile 与 ~/.profile),只执行bashrc(/etc/bash.bashrc, ~/.bashrc, ~/.bash_aliases)
4. 总会先执行/etc下的后执行~下的
5. 以上五个文件的包含关系如下:
/etc/profile
/etc/profile.d/*.sh
/etc/bash.bashrc
~/.profile
~/.bashrc
~/.bash_aliases
--------------------------------------
所以用户第一次登录终端(或者说ssh连接主机后),也即“su -”到一个新用户,会依次执行如下文件:
/etc/profile, /etc/profile.d/*.sh, /etc/bash.bashrc
~/.profile, ~/.bashrc, ~/.bash_aliases
当用户“su”到一个新用户,会依次执行如下文件:
/etc/bash.bashrc, ~/.bashrc, ~/.bash_aliases
所以我一般是这样做的:
把各个用户共用的aliases放到/etc/.jcan里,然后在/etc/bash.bashrc最下面一行加入source /etc/.jcan
如果加在/etc/profile里su就不管用了(必须用su - 才会生效)
把私人的东西放在~/.bash_aliases里(若无此文件可自己创建)
这样“su -”基本可以下岗了
这里我再附加说点东西:
“sudo -E su” 可以把当前的用户环境(变量之类的)也拷贝到新用户上
“sudo -E su -”就不可以
----------------------------------------
这样大家应该很清楚了吧?
chinaunix网友2011-03-05 16:48:58
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com