考慮這個須藤 - 我作爲jonhnd記錄,並通過了以下命令的腳本run1st.ksh運行此sudo來不同的用戶和運行命令後立即sudo的,被動的(非交互)
sudo -iu bigadmin
這將我的憑據提升爲bigadmin通用用戶,但該用戶是「共享」用戶的含義 - 我真的沒有任何餘地來定製他的個人資料 他登錄後,我看到他的PATH變量非常瘦,只有少數加入路徑
echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/opt/dell/srvadmin/bin
因此pwd不在路徑中,也不可執行。 $ PATH中沒有那些目錄是可寫的,就像我說的修改任何bigadmin個人文件不是一個選項。我有一個開始了劇本我執行爲用戶只是我的會議,我必須強迫執行它
. ./myscript
將工作
myscript
. myscript
給人找不到的MyScript錯誤可以理解的,因爲道路限制上述。 我想要做的是運行run1st.ksh中的sudo和myscript,以便當我輸入bigadmin提示時,myscript已經運行了 @barmar 感謝您的幫助。 這裏是從運行(把詳細的設置-x)
++ sudo -iu bigadmin ksh -c '. ./run1st.ksh'
Usage: . [ options ] name [arg ...]
@Barmar
sudo -iu bigadmin ksh -c '/home/bigadmin/run1st.ksh'
ksh: line 1: /home/bigadmin/run1st.ksh: not found
sudo -iu bigadmin ksh -c '. /home/biadmin/run1st.ksh'
age: . [ options ] name [arg ...]
$ sudo -iu bigadmin ksh -c '. /home/bigadmin; run1st.ksh'
+ sudo -iu bigadmin ksh -c '. /home/bigadmin; run1st.ksh'
Usage: . [ options ] name [arg ...]
$ sudo -iu bigadmin ksh -c '. /home/bigadmin/run1st.ksh ; run1st.ksh'
+ sudo -iu bigadmin ksh -c '. /home/bigadmin/run1st.ksh ; run1st.ksh'
Usage: . [ options ] name [arg ...]
的O/P不起作用
$ sudo -iu bigadmin /home/bigadmin/run1st.ksh
+ sudo -iu bigadmin /home/bigadmin/run1st.ksh
-nologin: line 1: /home/bigadmin/run1st.ksh: not found
它實際上查找run1st .ksh在johnd的目錄中
$ sudo -iu bigadmin echo `pwd`
++ pwd
+ sudo -iu bigadmin echo /home/johnd
,甚至在將它複製到johnd的家之後 - 我得到了SAME File not found命令。所以它在特定的PATH中查找文件,而不是在你提出的目錄中。也許調整該sudo命令中的PATH?
我沒有注意到文件名爲xxx. ksh
的空間。修正了現在它不給文件找不到錯誤,但它執行它並返回到johnd提示符。
$ sudo -iu bigadmin /home/bigadmin/run1st.ksh
+ sudo -iu bigadmin /home/bigadmin/run1st.ksh
++ printf '\033]0;%[email protected]%s:%s\007' johnd server400 '~'
$
,將讓我在bash shell的權利。我該如何做同樣的事情,然後像bigadmin一樣進入ksh(bourne)shell – user1874594
使用'ksh'而不是'bash'。 – Barmar
不適用於ksh。我將在一分鐘內更新問題中的o/p – user1874594