私は何時間も何人かのユーザーと共有したい非常に短い一時ディレクトリを作成しました。/some/path/tmp
sudo chown 777 -R /tmp
残念ながら、私は代わりに有効にしたsudo chown 777 -R tmp
ので、私の/tmp
ファイルは完全に公開されました。
今は完全に公開されているので、セキュリティ上の問題はありますか?より安全な設定に戻す必要がありますか?正しい権限は何ですか/tmp
?
ベストアンサー1
一般設定は/tmp
1777で、ls
で表示されますdrwxrwxrwt
。つまり、完全に開いていますが、ファイルの所有者だけを削除できます(これはt
ディレクトリの追加ビットの意味です)。
モード777を使用する場合の問題は、/tmp
他のユーザーが作成したファイルを削除して目的のコンテンツに置き換えることができることです。
ファイルシステムがtmpfsの場合、/tmp
再起動するとすべてが復元されます。それ以外の場合はを実行してくださいchmod 1777 /tmp
。
また、多くの文書を/tmp
機密に保つ必要があります。ただし、少なくとも1つのディレクトリは誰でも読むことができなければならず/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がある場所)