GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menjatuhkan Hak Istimewa Root Dalam Skrip Shell?

Opsi “–up” di OpenVPN biasanya digunakan untuk perutean, dll. Jadi, opsi ini diproses sebelum OpenVPN menjatuhkan hak akses root untuk dijalankan sebagai bukan siapa-siapa. Namun, saya menggunakan skrip shell yang perlu dijalankan sebagai pengguna yang tidak memiliki hak istimewa.

Bagaimana aku melakukan itu? Saya telah mempelajari Drop Process Privileges, terutama jawaban polinomial dan tylerl, tetapi saya tidak mengerti bagaimana menerapkannya. Saya bekerja di Centos 6.5, dan suid diblokir, baik sebagai “chmod u+s” dan sebagai “setuid()”.

Ada plugin OpenVPN (“openvpn-down-root.so”) yang memungkinkan skrip yang dipanggil oleh opsi “–down” untuk dijalankan sebagai root. Mungkin ada yang setara, seperti “openvpn-up-user.so”, tapi saya belum menemukannya.

Edit0

Per jawaban Nikola Kotur, saya telah menginstal runit-rpm Ian Meyer. Meskipun perintah chpst berfungsi di terminal, di skrip atas gagal dengan "perintah tidak ditemukan". Apa yang berhasil adalah "Sudo chpst" plus pengaturan tampilan dan bahasa yang tepat. Silakan lihat Mengapa terminal saya tidak menampilkan karakter unicode dengan benar? Karena itu, skrip atas membutuhkan empat baris ini:

LANG="en_US.UTF-8"; export LANG
GDM_LANG="en_US.UTF-8"; export GDM_LANG
DISPLAY=:0; export DISPLAY
sudo chpst -u user -U user /home/user/unprivileged.sh &

Edit1

Per komentar 0xC0000022L, saya menemukan bahwa "sudo -u user" berfungsi serta "sudo chpst -u user -U user":

LANG="en_US.UTF-8"; export LANG
GDM_LANG="en_US.UTF-8"; export GDM_LANG
DISPLAY=:0; export DISPLAY
sudo -u user /home/user/unprivileged.sh &

Saya akan mempelajari man sudoers dan memperbarui jika/ketika saya membuat sudo sendirian untuk bekerja.

Jawaban yang Diterima:

Saya menggunakan chpst runit alat untuk tugas seperti ini. Misalnya, dari skrip ke atas, panggil skrip unprivileged Anda:

chpst -u nobody /path/to/script

Linux
  1. Bagaimana Cara Beralih Dari Pengguna Root Ke Pengguna Lain Yang Memiliki Shell Nologin?

  2. Cara menjalankan skrip Python dari shell

  3. Cara menggemakan Baris Baru di Bash Shell Script

  1. Jalankan perintah Shell di jenkins sebagai pengguna root?

  2. Cara mengakhiri sesi KDE dengan benar dari shell tanpa hak akses root

  3. Bagaimana cara membuat pengguna root tambahan?

  1. Cara menyesuaikan lingkungan pengguna Linux

  2. Cara Mengatur Hak Istimewa Sudo untuk Pengguna di Linux

  3. Cara Menonaktifkan Login Pengguna Root melalui SSH