TruCluster
1753587 會員
6982 線上
108796 解決方案
發表新文章

為什麼su 不加 - 還是會去帶.cshrc的設定

 
watermelonyu
教授

為什麼su 不加 - 還是會去帶.cshrc的設定

OS 5.1B

oracle user use csh

當我用su - oracle 的時候可以看到

ORA_NLS33=/usr/oracle817/ocommon/nls/admin/data

這是因為.cshrc 有去帶這個環境變數

但是當我在root user (root user use ksh)

將ORA_NLS33 指到另一新的地方

ex

ORA_NLS33=/usr/oracle92/ocommon/nls/admin/data;export ORA_NLS33

然後我再su oracle (這時候我沒有加-)

但是卻還是發現

ORA_NLS33還是去用.cshrc 的設定

請問這是什麼原因呢,我要怎樣做才可以su 到oracle user 但是可以帶到新的環境變數呢?

因為這是別人的環境,我希望不要去動到原有.cshrc的設定







2則回覆 2
watermelonyu
教授

為什麼su 不加 - 還是會去帶.cshrc的設定

add -f option prevents the user's shell initialization file, see below.

-----------------------------------------------

# export HP2=/opt

# echo $HP2

/opt

# su -f ctmagent

% id

uid=22(ctmagent) gid=15(users)

% echo $HP2

/opt

% tail -1 ~env2/.cshrc

set HP2 = ( /tmp )

% exit

# su env2

% echo $HP2

/tmp

% exit

# su - env2

% echo $HP2

/tmp

% exit
watermelonyu
教授

為什麼su 不加 - 還是會去帶.cshrc的設定

su的時候請加上-f的參數.