2013-10-31 80 views
0

這裏我創建了一個linux shell腳本來執行程序來回顯「User logged as root」。但它不會顯示任何東西。如果我給'退出',那麼它會顯示「用戶以root身份登錄」。請幫我解決這個問題。以root身份登錄後,它不會在ubuntu linux shell腳本中執行

#!/bin/bash 
logged_user=`whoami` 
if [ $logged_user != root ] 
    then echo "You are not logged as root!" 
    echo "Enter root password if root password is set" 
    su        #here it will ask to enter root password 
    echo "user logged as root"  #this line is not working... 

fi 
+1

自動啓動此場景的方式是什麼? –

+0

問題是爲什麼這會起作用? 回聲「用戶以root身份登錄」 – Ashish

+0

我需要運行來自以root用戶身份登錄的命令。在這裏我確保用戶登錄爲根 –

回答

0

我需要的是,用戶對輸入密碼後,才 運行命令SU, 剛剛拆分程序分爲兩個bash的文件

1 main.sh

#!/bin/bash 
logged_user=`whoami` 
if [ $logged_user != root ] 
    then echo "You are not logged as root!" 
    echo "Enter root password if root password is set" 
    su root echo_file.sh #here it call echo_file.sh as root user  


fi 

2 ECH o_file.sh

echo "user logged as root"; 
echo `whoami` 
2

su啓動一個root shell。除非您退出shell(通過exit),否則該命令實際上不會將控制權返回給您的腳本。按設計工作。

如果你想有一個特定的命令執行的,而不是打開一個殼,像這樣使用:

su -c echo "User logged as root" 

,或者甚至更好,

sudo echo "User logged as root" 

無論哪種方式,你知道,一旦你的腳本結束,你會回到你開始的地方,即你會而不是通過啓動一個腳本得到一個根shell? (因爲腳本本身在子shell中運行也是如此。)

+0

感謝您的回覆 –

0

你在你的病情忘記周圍根"

#!/bin/bash 
logged_user=`whoami` 
if [ $logged_user != "root" ] 
    then echo "You are not logged as root!" 
    echo "Enter root password if root password is set" 
    su        #here it will ask to enter root password 
    echo "user logged as root"  #this line is not working... 

fi 
+0

這又是什麼? DevSoalar是正確的 – Ashish

+0

@Ashish這是我的答案,在我看來它解決了我注意到的問題之一:) –

+0

這裏如果條件工作正常有或沒有「」 –

相關問題