2014-07-09 60 views
1

在OS X上,我正在編寫一個bash腳本作爲用戶運行,而不是root。每隔一段時間我需要升級到root來運行某些命令。升級到glob目錄?

在一節中,我試圖用權限drwx ------遍歷由root擁有的目錄的內容,這意味着我無法像普通用戶那樣對目錄的內容進行整理。

這不起作用:

sudo for files in "/System/Library/User Template"/* 
    do 
    some command "$files" 
    done 

我想這樣做是這樣的:

for files in "/System/Library/User Template"/* 
    do 
    sudo some command "$files" 
    done 

這是一個新的系統啓動腳本,所以我希望把一切都在一個腳本,我絕對不能以root身份運行整個事情。我想知道:

  1. 如果有適當的方法升級到glob for循環目錄。
  2. 如果我應該以root權限更改權限,請運行代碼並將權限更改回來。

回答

0

我認爲你只能考慮調用另一個腳本,而不是以root身份運行,並使用sudo

雖然也許你可以從運行bash中輸入命令閱讀:

sudo bash -s <<'EOD' 
for files in "/System/Library/User Template"/*; do 
    some command "$files" 
done 
EOD 
+0

這工作,謝謝。你認爲將它放在另一個腳本中會更好還是更安全? –

+0

@WorriedinDenver取決於內容是否複雜。如果這對你來說已經足夠了,也許不會再有了。 – konsolebox

+0

再次感謝。我會接受的答案,但不能upvote它,因爲我沒有聲譽... –