最近學習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里的值。