我有Ubuntu 15.10操作系統。 我寫了一個shell腳本來執行其多個命令:如何在shell腳本中返回本地用戶?
登錄到根「根@ dalya-B5400:/首頁/ hduser」,進入snort的目錄,並打開IDS模式,轉換捕獲的數據包,以文本格式,最後從該目錄和root登出,然後登錄到hadoop用戶「root @ dalya-B5400:/ home/hduser」,啓動所有進程並將snort日誌文件發送到hadoop。
我在帳戶「hduser @ dalya-B5400」這是正常的用戶。 我需要一些命令來執行此用戶:「root @ dalya-B5400:/ home/hduser」,所以我使用了:$ sudo su並記錄到它。 在這裏完成我的工作,我想回到正常的用戶「hduser @ dalya-B5400」
我的腳本工作,直到日誌從根到Hadoop的用戶,在這裏,我着重一個問題,我用這個命令(一個在時間):
$ su - & sshpass -p password ssh -o StrictHostKeyChecking=no [email protected]
$ sudo -iu hduser
$ sudo su - hduser
它記錄到hadoop用戶,但之後退出而不執行後面的其餘命令。
另外我嘗試從當前調用第二個shell腳本,但它也給出相同的結果,並且不打開普通用戶。
我的主shell腳本命名哼命令及其包含此:
#!/bin/bash
cd ~/snort5_src
cd snort-2.9.9.0
snort -dev -n 20 -l /home/hduser/log9 -b -c /etc/snort5/snort.conf
chmod a+rwx /home/hduser/log9/snort.log.*
tcpdump -n -tttt -r /home/hduser/log9/snort.log.* > /home/hduser/log9/bigfile2.txt
sshpass -p password ssh -o StrictHostKeyChecking=no [email protected]
/home/hduser/hadoop
和名爲Hadoop的第二shell腳本,幷包含:
#!/bin/bash
/usr/local/hadoop/bin/start-all.sh
hadoop fs -put /home/hduser/log9/bigfile2.txt user/hduser/li
而且我試圖打開來自新終端當前:
$ gnome-terminal
但它也打開當前用戶不正常。
有什麼建議嗎?
提示:您可以也限制'hduser'的權限,而不是允許他在你的系統上使用任何命令。 –
檢查這個[名稱節點處於安全模式。不能離開](http://stackoverflow.com/questions/15803266/name-node-is-in-safe-mode-not-able-to-leave),因爲它可能是類似的問題 –
我也做過:hadoop dfsadmin -safemode離開,沒有解決問題,我現在通過在執行腳本之前運行hadoop來修復它。 – Dalya