2016-11-07 427 views
2

我想在Linux中將一個命令列入黑名單或將其添加到sudo以避免意外輸入。如何在Linux中黑名單命令?

我試圖解決我的RVM出於某種原因,類型:

rvm reset

而且失去了所有的gemsets。

我想將此行爲更改爲sudo rvm reset,並可能添加一條說明此命令將執行的操作的註釋。

+0

'搭配chmod 700 \'這RVM \'' –

回答

1
chown root `which rvm` 
chmod 0700 `which rvm` 

限制寶石delete命令使用這樣的事情:

chown -R root `rvm gemdir` 
sudo chmod -R 0755 `rvm gemdir` 

即使CHMOD也許是不必要的。但是,您需要使用sudo來安裝新的gemset。

+0

但是,這將使每一個RVM指揮權須藤?不知道我是否需要像「rvm gemset list」那樣簡單地完成任務。更感興趣的東西,可以搞砸你的環境,而不是閱讀'刪除'方面。這就像'〜'中的'sudo ls'。 – tomordonez

+0

是的,因爲這個命令改變了rvm文件的所有權和rwx權限,所以對於該命令的所有調用都需要root權限。 – nopasara

+0

還有另一種方法...如果您的gemsets文件將其所有權更改爲root並且限制寫入其他羣組。所以rvm將無權刪除它們。但是這將需要chown和chmod來處理任何新的gemset。 – nopasara

2

我會換一個外殼函數各地RVM:

rvm() { 
    case $1 in 
     reset) 
      echo "danger Will Robinson" >&2 
      echo "run 'command rvm reset' if you really want it" >&2 
      ;; 
     *) command rvm "[email protected]" ;; 
    esac 
} 
+0

這是一個很好的建議,因爲它隻影響在終端中交互式運行命令。它不會意外地影響您或其他用戶的任何工具,腳本和服務。 –

+0

謝謝@ glenn-jackman。我如何實現這一點?在rvm的二進制文件或如何? – tomordonez

+0

只需將其添加到〜/ .bashrc中,然後添加'source〜/ .bashrc' –