Permissions
/tmp 的正確權限是什麼?我無意中將它全部公開遞歸
我創建了一個非常短暫的臨時目錄,我想在一些使用者之間共享幾個小時:
/some/path/tmp
不幸的是,我已經啟動
sudo chown 777 -R /tmp
而不是sudo chown 777 -R tmp
,所以我的/tmp
文件現在完全公開了。現在完全公開,是否存在安全問題?我應該將其更改回更安全的設置嗎?什麼是正確的權限
/tmp
?
正常設置為
/tmp
1777,ls
顯示為drwxrwxrwt
. 那就是:全開,除了只有文件的所有者可以刪除它(這就是這個額外的t
位對目錄的意義)。使用模式 777的問題
/tmp
是另一個使用者可以刪除您創建的文件並替換他們選擇的內容。如果您
/tmp
是 tmpfs 文件系統,則重新啟動將恢復所有內容。否則,執行chmod 1777 /tmp
.此外,許多文件
/tmp
需要保密。但是,至少有一個目錄必須是世界可讀的:/tmp/.X11-unix
,並且可能還有一些其他類似的目錄(/tmp/.XIM-unix
等)。以下命令應該主要設置正確:chmod 1777 /tmp find /tmp -mindepth 1 -name '.*-unix' -exec chmod 1777 {} + -prune -o -exec chmod go-rwx {} +
即,將所有文件和目錄設為私有(刪除組和其他的所有權限),但讓所有人都可以訪問 X11 套接字。對這些套接字的訪問控制由伺服器執行,而不是文件權限。可能還有其他需要公開的套接字。執行
find /tmp -type s -user 0
以發現您可能需要使世界可訪問的根擁有的套接字。也可能有其他系統使用者擁有的套接字(例如與系統匯流排通信);探索find /tmp -type s ! -user $UID
($UID
您的使用者 ID 在哪裡)。