不小心運行了命令,現在不知道該怎麼辦

不小心運行了命令,現在不知道該怎麼辦

不小心運行了命令

sudo chmod -R o+x /home

在我的 Ubuntu 12.10 上。

現在我該怎麼辦?那危險嗎?我沒有分割區的備份,所以我認為這個指令是不可逆的。所以我要因為這個錯誤而重新安裝整個系統嗎?

答案1

解決此問題的最佳方法取決於系統設定的詳細資訊。幸運的是,您可能知道這些細節。

對於文件,+x意味著它們可以像程式一樣運行。 (實際上,它授予了權限嘗試。如果它們不是實際的可執行二進位檔案或腳本文件哈希棒線,這仍然會失敗。

在目錄(即資料夾)上,+x 允許意味著別的東西。資料夾的可執行權限賦予進入該資料夾及其子資料夾的能力(儘管其子資料夾可能沒有必要的權限),並嘗試存取該資料夾內的檔案(這些檔案可能有也可能沒有允許的權限)這樣才能成功)。

這是o+xo代表其他。它控制不擁有該檔案或資料夾的使用者的權限,以及不是該檔案或資料夾「群組擁有者」成員的使用者的權限。

如果您目前不使用與其他本機使用者共用檔案的權限

如果使用者(例如您)不需要與其他使用者共用文件,那麼可以安全地取消以下使用者的可執行權限其他,只要你只做它你的主資料夾中的任何地方。你的主資料夾在哪裡/home/usernameusername替換為您的實際使用者名稱。/home本身不是您的主資料夾,而是包含所有主資料夾。由於/home它實際上並不屬於電腦的任何人類使用者所有,必須具有可執行權限其他不會從自身移除/home

所以,你可以運行:

cd ~

~代表您的主資料夾。 (shell 會這樣解釋,您可以準確輸入。)

然後你可以運行:

chmod -R o-x .* *

或者,如果您想防止其他人也將目錄變更為您的主資料夾本身:

chmod -R o-x ~

我是故意不寫的sudo。您仍然擁有主資料夾中的文件,因此不需要sudo,並且將其保留將有助於避免意外更改錯誤文件和資料夾的權限。 (特別是/home屬於,root因此透過省略sudo,您可以確保不會意外更改 的權限/home並導致系統無法使用。)

如果你目前使用權限與其他本地用戶共享文件

如果您有一些與電腦上的其他使用者共用的資料夾(如果您這樣做,那麼您幾乎肯定知道您這樣做),那麼您可以使用上述方法,然後手動新增這些特定資料夾的可執行權限。但是,如果您的數量太多而無法實現,那麼特別是如果您不擔心其他用戶訪問他們不應該訪問的內容,您可能需要只是剝奪可執行權限文件,而不是來自資料夾。當然,完成此操作後,您可以選擇性地從某些資料夾中取得可執行權限。

取消執行權限其他從所有的文件在您自己的使用者的主資料夾(但不是目錄)中,執行:

find ~ -type f -exec chmod o-x \{\} \;

(您會注意到這類似於以下其中之一森斯特羅姆的建議。看man find有關其工作原理的資訊。

答案2

您剛剛將所有用戶文件的文件權限更改為所有用戶的可執行文件(並將目錄更改為可搜索,這是默認的) - 可能不是您想要的,但也可能不是世界末日- 特別是如果您是電腦上的唯一使用者。

一種認為你可以做的就是在文件目錄上執行一個操作find,並關閉常規文件的可執行標誌(如果它打擾你)。

如果系統是新的,我可能會考慮重新安裝,只是為了讓它變得漂亮和乾淨:)

相關內容