最近学习RHCE,在umask这里,书里说要修改/etc/profile和/etc/bashrc两个文件,却没有说明这两个区别。于是在上网查看之后倒是明白了各是怎么用的。/etc/profile是对应登录的,/etc/bashrc是对应打开shell的。但是实际使用区别在哪,如果说bashrc是对应shell的,那么改这一个文件不就行了?最后自己实践一下,发现还是不同的,特此分享一下,也做个记录。
实验准备:将/etc/profile文件中的umask改为007,将/etc/bashrc中的umask改为077。
实验步骤:
1.以root身份登录并打开shell,umask值 077
2.su test, umask值 077
3.su - test,umask值 007
实验结果:如果只是切换用户,不重新登录,那么profile的脚本将不会执行,从而bashrc中的脚本发生作用。
总结一下就是,打开一个shell的话,会执行shell相关的bashrc的脚本,用su -命令执行时会重新loggin,因此会再调用一次profile里的脚本。
所以,如果不想搞出歧义为自己的管理添麻烦的话,还是老老实实的改两个文件吧。由于还没时间写程序,不过如果没猜错的话,程序应该用的是bashrc里的值。