pgsql 安裝完后某次啟動不了
錯誤 data directory "/usr/local/postgresql/data" has invalid permissions
安裝成功后一直可以 后面同事敲了??
chmod -R 777 /usr/local 導致不行
改到了??/usr/local/postgresql/data 權限
/usr/local/postgresql/data的權限有限制才可以
重新? chmod 0750 /usr/local/postgresql/data
后?
systemctl restart postgres 可以啟動
不要隨便 chmod? -R? 777 太大的目錄不然會導致很大的事故
chmod 777和 chmod 0777的區別 ai回答
在 Linux 文件系統中,0777
?和?777
?都表示文件或目錄的權限設置,但它們的細微區別在于?權限表示法的完整性和對特殊權限位的處理?。以下是詳細解釋:
1. ?權限的基本組成?
Linux 文件權限由三部分組成:
- ?所有者權限?(Owner)
- ?所屬組權限?(Group)
- ?其他用戶權限?(Others)
每種權限可以通過?r
(讀)、w
(寫)、x
(執行)表示,也可以用 ?八進制數字?(0-7)表示:
4
?= 讀(r)2
?= 寫(w)1
?= 執行(x)- 將這些數值相加得到權限值(如?
7 = 4+2+1
?表示?rwx
)。
2. ?777
?的含義?
777
?是三位八進制數,分別對應:- ?所有者權限?:7 →?
rwx
- ?組權限?:7 →?
rwx
- ?其他用戶權限?:7 →?
rwx
- ?所有者權限?:7 →?
- 此時 ?未顯式設置特殊權限位?(如 SetUID、SetGID、Sticky Bit)。
- 在實際使用中(如?
chmod 777 file
),系統會默認特殊權限位保持不變(如果已存在),或自動補零。
3. ?0777
?的含義?
0777
?是四位八進制數,其中:- ?第一位?
0
?:表示特殊權限位(SetUID、SetGID、Sticky Bit)被顯式設置為?0
(即關閉)。 - ?后三位?
777
?:與三位表示法一致,賦予所有者、組、其他用戶全部權限。
- ?第一位?
- 使用?
chmod 0777 file
?時,會?強制清除所有特殊權限?。
4. ?關鍵區別?
權限表示 | 特殊權限位處理 | 適用場景 |
---|---|---|
777 | 不修改特殊權限位 | 僅修改基礎權限,保留原有的特殊權限。 |
0777 | 清除所有特殊權限位 | 明確關閉特殊權限,僅設置基礎權限。 |
5. ?示例?
假設一個文件原有特殊權限?SetUID
(表現為?rwsr-xr-x
):
bashCopy Code
原始權限:4755
-
?使用?
chmod 777 file
?:- 基礎權限變為?
777
(rwxrwxrwx
)。 - ?特殊權限位保留?(SetUID 仍然有效),最終權限為?
4777
?→?rwsrwxrwx
。
- 基礎權限變為?
-
?使用?
chmod 0777 file
?:- 基礎權限變為?
777
(rwxrwxrwx
)。 - ?特殊權限位被清除?(SetUID 被移除),最終權限為?
0777
?→?rwxrwxrwx
。
- 基礎權限變為?
6. ?注意事項?
- ?權限安全?:
777
?或?0777
?會開放所有權限,可能導致安全風險,需謹慎使用。 - ?特殊權限位?:如果文件需要保留 SetUID/SetGID/Sticky Bit(如?
/tmp
?目錄需要 Sticky Bit),應避免使用?0777
。
總結
- ?
777
?:僅修改基礎權限,不影響特殊權限位。 - ?
0777
?:清除特殊權限位后再設置基礎權限為全開放。