不小心運行了命令
sudo chmod -R o+x /home
在我的 Ubuntu 12.10 上。
現在我該怎麼辦?那危險嗎?我沒有分割區的備份,所以我認為這個指令是不可逆的。所以我要因為這個錯誤而重新安裝整個系統嗎?
答案1
解決此問題的最佳方法取決於系統設定的詳細資訊。幸運的是,您可能知道這些細節。
對於文件,+x
意味著它們可以像程式一樣運行。 (實際上,它授予了權限嘗試。如果它們不是實際的可執行二進位檔案或腳本文件哈希棒線,這仍然會失敗。
在目錄(即資料夾)上,+x
允許意味著別的東西。資料夾的可執行權限賦予進入該資料夾及其子資料夾的能力(儘管其子資料夾可能沒有必要的權限),並嘗試存取該資料夾內的檔案(這些檔案可能有也可能沒有允許的權限)這樣才能成功)。
這是o+x
。o
代表其他。它控制不擁有該檔案或資料夾的使用者的權限,以及不是該檔案或資料夾「群組擁有者」成員的使用者的權限。
如果您目前不使用與其他本機使用者共用檔案的權限
如果使用者(例如您)不需要與其他使用者共用文件,那麼可以安全地取消以下使用者的可執行權限其他,只要你只做它你的主資料夾中的任何地方。你的主資料夾在哪裡/home/username
username
替換為您的實際使用者名稱。/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 \{\} \;
答案2
您剛剛將所有用戶文件的文件權限更改為所有用戶的可執行文件(並將目錄更改為可搜索,這是默認的) - 可能不是您想要的,但也可能不是世界末日- 特別是如果您是電腦上的唯一使用者。
一種認為你可以做的就是在文件目錄上執行一個操作find
,並關閉常規文件的可執行標誌(如果它打擾你)。
如果系統是新的,我可能會考慮重新安裝,只是為了讓它變得漂亮和乾淨:)