2012-09-01 97 views
1

我想將某些文本追加到特權文件/root/.profile。我用下面的腳本來做到這一點。將文本追加到「/root/.profile」

須藤回聲 「布拉布拉」 >> /root/.profile

它仍然因拒絕訪問而抱怨。什麼是正確的做法?我在ubuntu12.04上使用bash4

回答

5

在調用sudo之前,流重定向>>被評估。簡單的答案是把整個東西放在一個子外殼內:

sudo sh -c "echo 'blabla' >> /root/.profile" 
+0

FWIW我覺得pixelbeat的答案是比我好;)我忘了'tee' – Oktalist

+0

您能詳細一點,像爲什麼''tee''是一個更好的解決方案呢? – Richard

+0

@Richard首先產生一個新的'tee'過程可能比產生一個新的'sh'過程要便宜,其次,如果你在引用內部進行變量替換,那麼有兩級引用會引起混淆。如果您在引用內部進行任何變量替換,請注意執行任意代碼爲root的漏洞!可能會出現一些情況,我的回答比pixelbeat更合適,但可能不是很多。 – Oktalist

4

是的shell會在運行sudo之前打開/root/.profile。 你需要的東西,如:

echo 'blabla' | sudo tee -a /root/.profile