GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa mengunyah file ke subuid tanpa sudo

Subuid tidak dimaksudkan untuk bekerja seperti yang Anda harapkan. Mereka dirancang untuk memetakan UID di namespace pengguna ke UID berbeda di luar namespace tersebut, yang berguna (dan memang didesain) untuk container.

Namun, sebuah proses masih dapat memiliki hanya satu set UID (ruang nama pengguna), dan pengguna tidak diizinkan mengubah kepemilikan file, karena alasan keamanan yang jelas. Tidak masalah, sejauh menyangkut proses itu sendiri, jika pengguna sebenarnya adalah orang lain di luar namespace.

Inilah mengapa chown perintah gagal:tidak masalah jika Anda bisa memiliki beberapa UID lain, harus namespace berbeda , pada saat itu, Anda tidak memiliki UID tersebut, dan karena itu, Anda tidak dapat mengubah kepemilikan file apa pun (karena Anda bukan root).

Mengapa Anda dapat menghapus file:itu sebenarnya tidak ada hubungannya dengan subuid, sebaliknya, itu semua tergantung pada Anda memiliki kepemilikan direktori tempat file berada. Karena penghapusan file mengubah direktori, dan bukan file itu sendiri, jika Anda dapat menulis direktori, Anda dapat menghapus file apa pun dari itu (kecuali untuk direktori "lengket").


Ada program lxc-usernsexec yang disertakan dengan lxc . Ini memungkinkan Anda untuk memetakan kembali id ​​pengguna menggunakan peta /etc/subuid dan /etc/subgid .

Khususnya, Anda dapat melakukan hal berikut.

  1. lxc-usernsexec -- touch /tmp/test
  2. ls -l /tmp/test akan menunjukkan bahwa file tersebut adalah owner:group sama dengan pasangan subuid:subgid pertama di peta Anda.
  3. rm /tmp/test seharusnya memberikan kesalahan karena saat ini Anda tidak memiliki uid/gid yang tepat.
  4. lxc-usernsexec -- rm /tmp/test harus menghapus file tersebut.

Semoga ini membantu! Hal di atas mungkin memerlukan berbagai pengaturan untuk penggunaan wadah LXC yang tidak terjangkau. Secara khusus, menurut saya /proc/sys/kernel/unprivileged_userns_clone seharusnya 1.


Masalah Anda tidak ada hubungannya dengan subuid .

Menurut https://superuser.com/questions/697608/chown-operation-not-permitted

Pengguna yang tidak memiliki hak istimewa (bukan root) tidak dapat mengubah file ke nama pengguna lain. Untuk menggunakan chown, pengguna harus memiliki hak istimewa dari pengguna target. Dengan kata lain, hanya root yang dapat memberikan file ke pengguna lain.


Linux
  1. Linux chmod and chown – Cara Mengubah Izin dan Kepemilikan File di Linux

  2. Bagaimana Mengetahui apakah Pengguna memiliki Hak Sudo

  3. Cara Mengatur Sudo Tanpa Kata Sandi untuk Pengguna Tertentu

  1. Bagaimana cara pengelola file memasang drive tanpa root?

  2. Bagaimana saya bisa mengeluarkan perintah ke file, tanpa mendapatkan file kosong karena kesalahan?

  3. Bagaimana saya bisa menggunakan sudo untuk memeriksa apakah ada file?

  1. Bagaimana saya bisa menghubungkan file di Linux?

  2. Bagaimana saya bisa menambahkan pengguna biasa ke file sudoers?

  3. Bagaimana cara menambahkan file sebagai sudo?