Bash

將這些文件的權限設置為 600 會導致我的作業系統無法使用嗎?.bash_logout、.bashrc、.profile

  • December 8, 2021

我嚴重依賴別名,我.bashrc突然想到我可以通過遞歸更改主目錄及其子目錄和文件的權限(600對於文件和700目錄)來提高我的隱私/安全性並在某種程度上強化我的 Ubuntu 20.04 桌面)。所以我跑了:

sudo chmod -R 600 /home/undoxed && sudo chmod -R u+X /home/undoxed

undoxed我的管理使用者的名稱在哪裡。遞歸標誌沒有放過.bash_logout,.bashrc.profile

從我之前修改. /etc/adduser.conf_ _ _ _ 上述三個文件獲得了權限,而不是像我預期的那樣。 DIR_MODE=0700``umask``.bashrc``0077``useradd``600``.bash_logout .bashrc .profile``644``600

為什麼這三個文件得以倖免?製作這些文件600,就像我手動使用的那樣chmod -R 600,會使我的作業系統無法使用嗎?與這些文件相比,這些文件是否會產生其他一些後果644

到目前為止,一切似乎都很好,但我sudo chmod -R 600 /home/undoxed && sudo chmod -R u+X /home/undoxed 今天跑步後沒有重新啟動,我很想這樣做。

TL,DR:.bash*可以是600,但是chmod -R 600很危險。

你可以讓你的主目錄只有你可以訪問:

chmod 700 ~

這不需要遞歸。不訪問文件所在的目錄就無法訪問文件。對於目錄,這意味著不訪問其父目錄就無法訪問目錄。因此,使目錄不可訪問(無x權限)使其下的所有內容都不可訪問。

(有一種方法可以繞過訪問包含目錄的需要,即已經具有訪問權限:如果程序已經打開了一個文件,它會保持打開狀態,即使發生了一些變化,現在該程序無法打開文件。這裡的“打開文件”包括將目錄作為程序的工作目錄。更改的內容可以是權限更改,或移動到不同的目錄,或程序降低其權限。)

在某些情況下,您可能需要讓其他使用者或系統服務可以訪問您的主目錄的某些部分(例如,使或可以.plan訪問)。如今,當大多數人使用不執行任何公共服務的個人機器時,它們並不常見。在這種情況下:fingerd``~/public_html``httpd

  • 使每個人都可以訪問您的主目錄,但只能由您讀寫:chmod 711 ~
  • 將您的主目錄的內容設為私有:(chmod go= ~/* ~/.[!.]* ~/..?*非隱藏文件、除.and之外的隱藏文件以及以非自身..*開頭的隱藏文件- 如果這些模式之一不匹配,則忽略該錯誤)..``..
  • 允許對需要它的特定文件和目錄進行讀取 ( r) 訪問,以及對目錄的執行/遍歷 ( ) 訪問。x

這些權限允許任何本地使用者檢查給定名稱的文件是否存在(是否ls ~jerzy/somefile因“權限被拒絕”或“沒有此類文件或目錄”而失敗),但不能列出主目錄中的文件。

您使用的程序(例如 bash)的配置文件不需要公開。唯一需要訪問它們的程序在您的帳戶上執行。chmod 600 ~/.bash*如果你願意,你可以。如果您的主目錄無論如何都只能由您訪問,那不會有任何實際區別,但它不會受到傷害。

如果您將 umask 設置為 077,則所有新文件都只能由您訪問。


不要跑chmod -R 600。作為 root,這會使您的系統難以恢復,因此重新安裝更容易。作為非特權使用者,更容易從中恢復,但仍然很痛苦。

chmod -R 600從目錄中刪除執行權限,對於目錄,“執行”權限(x在 chmod 中,數值中的第 1 位)表示訪問該目錄中文件的能力。“讀取” ( r, 4) 權限只允許列出目錄中的文件。因此chmod -R 600 ~禁止所有人,包括您自己,訪問您的主目錄中的文件。然後chmod -R u+X ~恢復目錄的執行權限,但前提是系統在兩者之間沒有崩潰。

此外,該序列從所有正常文件中刪除了執行權限。一些正常文件需要執行權限。這顯然包括您可能已經安裝在您的主目錄中的任何獨立軟體,以及個人腳本或其他程序。這也可以包括通常不被認為是直接可執行的文件;例如,舊版本的 Ubuntu 使用執行權限來指示某些類型的文件是受信任的,包括.desktop文件(儘管新版本不再使用這種機制)。

該序列還使所有文件都可寫。將某些文件設為只讀會很有用,例如您希望避免意外覆蓋或刪除的重要文件。許多版本控製程序將某些文件設為只讀,因為它們是通常不會更改的內部狀態文件,或者表明使用者不應該直接更改它們,或者表明文件被鎖定。然而,這很少是關鍵的。

(順便說一句,有一些文件必須是私有的,例如 SSH 密鑰。在您的主目錄中添加非使用者權限的遞歸 chmod 會破壞這一點,尤其是可能無法通過 SSH 登錄您的帳戶。 )

如果您想將所有文件單獨設為私有,請不要更改適用於您的權限。

chmod -R go= ~

引用自:https://unix.stackexchange.com/questions/680486