2015-06-01 69 views
0

我有一個只讀文件data.txt。我有一個用戶guest_user,並且我有一個可執行的shell腳本myScript.sh。 需求是guest_user不能直接編輯read_only文件,或者通過vi/vim編輯器編輯。他也不能chmod data.txt文件。 但他應該能夠使用myScript.sh編輯這個data.txt。 那麼這個shell腳本中應該編碼什麼來編輯data.txt的工作呢?如何使用腳本編輯只讀文件?

+0

看看'crontab','vipw'和'visudo'如何解決問題。基本上,給用戶一個臨時副本,然後使用特權程序將其安裝到正確的位置。 – tripleee

+0

嚴格來說,一個只讀文件不能被編輯。有兩種選擇 - 讀取文件,編輯它的內容,並將其保存到一個新文件中,或者以某種方式修改用戶或文件的特權,使其不是隻讀的(例如,使用'sudo' ,'chmod'等)。你正在努力完成的是哪一個還不清楚...... – twalberg

+0

@twalberg。你是對的,除了你建議的其他方式之外,不能做其他事情。我在接受採訪時被問到了這個問題,但我無法正確回答(根據面試官的說法)。所以很想知道他期望的解決方案是什麼。 – aiman

回答

0

如果訪客用戶具有管理權限(可以使用sudo),那麼您可以使用sudo visudo vim來做到這一點,如果沒有,那麼沒有任何事先的寫入權限是不可能的。

+0

我在亞馬遜的一次採訪中被問到了這個問題。我也說過我會在腳本中使用sudo。採訪者說我是一個客人而不是超級用戶。我不會擁有超級用戶憑據。他暗示說有一個關鍵字我們需要添加到shell腳本中才能運行。 – aiman

+0

至少沒有某種黑客行爲是不可能的......我猜想 – Jahid

+0

@aiman如果你真的可以這樣做,那麼你可以說Linux被黑客攻擊並被證明是完全不安全的......在沒有任何許可的情況下繞過權限所以肯定會證明Linux是最不安全的操作系統,只有一個關鍵字?大聲笑...一定是一個笑話或東西.... – Jahid

-1

如果您知道訪客用戶密碼,則有一種解決方法。只需在你的shell腳本中添加這個。

echo "guest-user-password" | sudo su - 
nano /path/to/data.txt 

現在,您可以編輯文件並保存它。它仍然是read-only文件。