GNU/Linux >> Belajar Linux >  >> Linux

Apakah Mungkin Menjalankan 'unshare -n [program]' Sebagai Pengguna yang Tidak Memiliki Hak Istimewa?

Saya ingin menjalankan program tanpa akses internet, mis.

unshare -n ping 127.0.0.1 .

Sebagai pengguna yang tidak memiliki hak istimewa, ia mengembalikan Operation not permitted , sebagai pengguna istimewa, ia mengembalikan Network is unreachable yang diinginkan .

Apakah ada cara untuk membuatnya bekerja untuk pengguna yang tidak memiliki hak juga?

Jawaban yang Diterima:

Di versi util-linux yang lebih baru, unshare memperoleh --map-root-user pilihan. Mengutip dari unshare(1) versi 2.26.2:

-r, –map-root-user

Jalankan program hanya setelah ID pengguna dan grup yang efektif saat ini telah dipetakan ke UID dan GID pengguna super di ruang nama pengguna yang baru dibuat. Hal ini memungkinkan untuk dengan mudah memperoleh kemampuan yang diperlukan untuk mengelola berbagai aspek ruang nama yang baru dibuat (seperti mengonfigurasi antarmuka di ruang nama jaringan atau memasang sistem file di ruang nama pemasangan) bahkan ketika dijalankan tanpa hak istimewa. Sebagai fitur kenyamanan belaka, itu tidak mendukung kasus penggunaan yang lebih canggih, seperti pemetaan beberapa rentang UID dan GID. Opsi ini menyiratkan –setgroups=deny.

Jadi, pada sistem yang lebih baru, Anda dapat menjalankan:

unshare -n -r ping 127.0.0.1

Dan ini akan menghasilkan Network is unreachable yang diharapkan .

Pada sistem Debian Anda mungkin masih mendapatkan Operation not permitted kesalahan, maka Anda harus mengaktifkan ruang nama pengguna yang tidak memiliki hak terlebih dahulu dengan menjalankan:

sudo sysctl -w kernel.unprivileged_userns_clone=1

Catatan:untuk cakupan kasus penggunaan yang lebih luas, bwrap --unshare-net yang lebih canggih dapat dipertimbangkan, seperti yang dijelaskan secara singkat dalam jawaban yang berbeda.


Linux
  1. Apakah Mungkin Menjalankan Ubuntu Pada Nexus 7?

  2. Jalankan perintah Shell di jenkins sebagai pengguna root?

  3. Apakah mungkin menjalankan tes otomatis Appium iOS di Ubuntu?

  1. Pemula:Jalankan layanan sebagai pengguna yang tidak memiliki hak istimewa dan skrip pra-mulai sebagai root

  2. Apakah mungkin menjalankan seledri secara otomatis saat startup?

  3. Apakah mungkin menjalankan GNU murni?

  1. Jalankan container di Linux tanpa Sudo di Podman

  2. Jalankan Script Dengan Argumen Sebagai Pengguna?

  3. Jalankan skrip shell sebagai pengguna yang berbeda