Cara menjalankan program dengan hak akses root tanpa menggunakan su atau sudo

8

Saya memiliki bashskrip yang perlu dijalankan dengan hak akses root , tetapi harus dijalankan oleh pengguna normal.

Bagian yang sulit adalah skrip tidak boleh meminta kata sandi, dan saya tidak ingin menggunakan file sudoers . Saya ingin menghindari penggunaan sudo atau su .

Apakah ini mungkin?

Stefan
sumber
kemungkinan duplikat skrip Izinkan setuid pada shell
Stefan

Jawaban:

9

Jika itu bukan skrip bash tetapi aplikasi biasa, Anda akan memberikannya untuk melakukan root dan mengatur bit setuid pada aplikasi tersebut. Kemudian setelah eksekusi, pengguna efektif yang dijalankan oleh aplikasi adalah root. Namun karena masalah keamanan, ini dalam banyak sistem dilarang untuk skrip shell. Pertanyaan ini di sini di unix.stackexchange.com menangani cara bagaimana mengatasi hal ini.

fschmitt
sumber
Bagus, saya baru saja memposting tautan untuk itu. Jawaban Hemant adalah solusi yang bagus
Michael Mrozek
Apakah Ruby dianggap sebagai skrip shell?
Stefan
1
@Stefan Ya, apa pun yang dijalankan melalui penerjemah tidak, karena bukan skrip itu sendiri yang dijalankan, itu adalah penerjemah ruby, yang bukan setuid. Anda memerlukan biner aktual untuk menggunakan setuid
Michael Mrozek
2
Saya berharap saya bisa memilih ini, tapi sayangnya saya kurang 25 poin reputasi. Membiarkan pengguna normal menjalankan skrip bash sebagai root adalah ide yang SANGAT BURUK, kecuali jika Anda tahu persis apa yang Anda lakukan (dan jika Anda harus bertanya bagaimana melakukannya, Anda tidak). Jika OP memposting skripnya di sini, saya mungkin akan menemukan setidaknya 3 cara untuk mengeksploitasinya. Ada alasan mengapa hampir semua distribusi membuat ini sulit.
Kim
Salah satu prinsip utama Unix adalah: "Beri pengguna kesempatan untuk menembak dirinya sendiri di kaki" :-)
fschmitt
1

Gunakan sudo. Jika Anda tidak ingin menelepon sudo /path/to/myscript, tulis pembungkus satu baris exec sudo /path/to/myscript "$@". Lihat Izinkan setuid pada skrip shell , terutama jawaban Maciej Piechotka tentang penggunaan sudo dan diskusi saya yang lebih umum tentang program setuid .

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Idenya adalah tidak harus menggunakan sudo.
Alexej Magura
@AlexejMagura Sudo adalah solusi termudah. Ini sulit dilakukan tanpa sudo (kecuali jika Anda bersedia menerima solusi yang tidak aman, dalam hal ini Anda mungkin juga memberikan kata sandi root kepada semua orang).
Gilles 'SANGAT berhenti menjadi jahat'