権限のないユーザーとして、EXT4
私は必要なすべての権限()を持つファイルシステムのディレクトリを持っています。これにより、ルートが所有していても、その中にあるファイルrwx
(およびvim file
)の内容と所有権を変更できます。 、および(および):w!
を変更する権限がない場合でも同様です。root:root
0644
ルートが所有するディレクトリが権限のないユーザーが所有するディレクトリ内にある場合、これは可能ですか?
答え1
ディレクトリ所有者は、必要に応じてディレクトリの内容を変更できます。ディレクトリ所有者が書き込めないディレクトリにファイルが存在していても、ディレクトリ所有者はそのファイルを削除して同じ名前の新しいファイルを作成できます。
より一般的には、ディレクトリへの書き込みアクセス権がある場合は、そのディレクトリからファイルを削除して作成できます。したがって、ファイルへの書き込み権限がない場合は、ファイルに書き込むのではなく、既存のファイルを削除して同じ名前の新しいファイルを作成して、そのディレクトリのファイルを変更できます。
ディレクトリを所有していparent
て、そのディレクトリにルートが所有するサブディレクトリが含まれており、書き込みchild
権限がない場合は、child
その中のファイルを変更することはできませんchild
。ただし、名前を変更してchild
という新しいサブディレクトリを作成できますchild
。このサブディレクトリはあなたが所有しているので、必要なものは何でも含めることができます。
これは、秘密鍵ファイルに対するOpenSSHの完全性チェックなど、ファイル制御を検証するセキュリティチェックがディレクトリチェーン全体をルートまで確認する理由です。同様に、ユーザーにファイルを実行するためのsudo権限を付与する場合、ファイルのフルパスはrootによって制御されなければなりません。たとえば、ユーザーにホームディレクトリからプログラムを実行するためのsudo権限を付与しないでください。 (一方、setuidのルートプログラムはどこでも可能です。なぜなら、setuidはファイルパスではなくファイル自体に追加されるからです。)あります。コンテンツファイルですが、パス内のその場所でディレクトリ名を変更するだけです。
答え2
私はあなたが言った前提を複製することはできません。
私が所有するディレクトリには、ルートが所有するファイルが含まれています。
$ ls -ld mydir mydir/file2
drwxrwxr-x 2 user1 user1 4096 Jan 5 13:52 mydir
-rw-rw-r-- 1 root root 0 Jan 5 13:52 mydir/file2
root
ファイルの所有権を主張してくださいmydir
。
$ chown user1 mydir/file2
chown: changing ownership of 'mydir/file2': Operation not permitted