GNU/Linux >> Linux の 問題 >  >> Linux

sudoなしでファイルをsubuidにchownするにはどうすればよいですか

Subuid は、期待どおりに動作するようには設計されていません。これらは、ユーザーの名前空間内の UID をその名前空間外の別の UID にマップするように設計されており、コンテナーにとって便利です (そして実際に設計されました)。

ただし、プロセスが持つことができる UID セット (ユーザー名前空間) は 1 つだけであり、明らかなセキュリティ上の理由から、ユーザーはファイルの所有権を変更することはできません。プロセス自体に関する限り、ユーザーが実際に名前空間外の誰かであるかどうかは問題ではありません。

これが chown の理由です コマンドは失敗します:できるかどうかは問題ではありません 名前空間が異なっていたはず 、その時点ではその UID を持っていないため、ファイルの所有権を変更することはできません (root ではないため)。

ファイルを削除できる理由については、実際には subuid とは何の関係もありません。代わりに、ファイルが存在するディレクトリの所有権を持っているかどうかにすべて依存しています。ファイルを削除すると、ファイル自体ではなくディレクトリが変更されるため、ディレクトリに書き込むことも、そこからファイルを削除することもできます (「スティッキー」ディレクトリを除く)。


プログラム lxc-usernsexec があります lxc に付随するもの .これにより、マップ /etc/subuid を使用してユーザー ID を再マップできます。 と /etc/subgid .

具体的には、次のことができます。

<オール>
  • lxc-usernsexec -- touch /tmp/test
  • ls -l /tmp/test は、ファイルが所有者:グループであり、マップ内の最初の subuid:subgid ペアと同じであることを示します。
  • rm /tmp/test 現在正しい uid/gid を持っていないため、エラーが発生するはずです。
  • lxc-usernsexec -- rm /tmp/test ファイルを削除する必要があります。
  • お役に立てれば!上記は、非特権の LXC コンテナーを使用するためのさまざまなセットアップが必要になる可能性があります。特に /proc/sys/kernel/unprivileged_userns_clone だと思います 1 である必要があります。


    あなたの問題は subuid とは何の関係もありません.

    https://superuser.com/questions/697608/chown-operation-not-permittedによる

    <ブロック引用>

    非特権ユーザー (root ではない) は、ファイルを他のユーザー名に chown できません。 chown を使用するには、ユーザーはターゲット ユーザーの権限を持っている必要があります。つまり、root だけが別のユーザーにファイルを渡すことができます。


    Linux
    1. ユーザーがSudo権限を持っているかどうかを知る方法

    2. sudoとしてファイルに追加する方法は?

    3. ファイルマネージャはルートなしでドライブをマウントするにはどうすればよいですか?

    1. 特定のユーザーにパスワードなしのSudoを設定する方法

    2. rm を使わずにファイルを削除するには?

    3. sudo を使用してファイルが存在するかどうかを確認するにはどうすればよいですか?

    1. Linuxでファイルをシンボリックリンクするにはどうすればよいですか?

    2. 通常のユーザーを sudoers ファイルに追加するにはどうすればよいですか?

    3. エラー時に空のファイルを取得せずに、コマンドをファイルに出力するにはどうすればよいですか?