Saya memiliki program biner tertentu pada OS X yang hanya dapat dijalankan sebagai root.
Saya bosan memprogram ulang sudo
setiap kali saya memintanya dan mengetikkan kata sandi, dan ingin itu dijalankan secara otomatis sebagai root ketika saya memintanya secara teratur, tanpa meminta kata sandi.
Pemilik program adalah root dan grupnya adalah roda.
Saya mencoba chmod ug+s
untuk mengatur userid dan groupid pada eksekusi ke root / wheel, tetapi ketika saya menjalankan program tanpa sudo masih mengeluh bahwa itu hanya dapat berjalan dengan sudo atau sebagai root.
nosuid
opsi mount ... selain itu mengapa Anda harus secara teratur menjalankan program sebagai superuser.Jawaban:
Apakah Anda yakin program yang Anda coba jalankan sebenarnya adalah biner, dan bukan skrip shell. Kebanyakan cangkang mengabaikan skrip suid karena benar-benar sulit dilakukan dengan aman. Cara mudah untuk memeriksa adalah dengan menggunakan
file
perintah pada program.sumber
Setengah solusi untuk masalah Anda:
dalam file sudoers, tambahkan berikut ini:
Kemudian dari baris perintah, Anda dapat mengetik:
dan itu akan menjalankan perintah tanpa meminta kata sandi Anda. Perintah ini akan berjalan sebagai root.
Catatan, Anda harus mengganti nama pengguna dengan nama pengguna Anda yang sebenarnya.
sumber
Jika Anda benar-benar tidak dapat menyebutnya sebagai daemon untuk alasan apa pun (pertanyaan ini akan relevan dalam hal itu) , metode ini dapat diretas bersama, tetapi cukup kotor, dan tidak aman sama sekali.
Konsepnya adalah meluncurkannya dengan AppleScript. Pertama-tama Anda harus tahu cara menjalankan proses dari baris perintah (yang jika Anda sudah menggunakan sudo, berarti Anda harus siap). Anda akan meluncurkan proses itu menggunakan
do shell script
perintah, dan alih-alih menggunakan sudo Anda akan menulis kredensial Anda ke dalam AppleScript:Saya tegaskan kembali bagian tentang ini menjadi tidak aman: INI BERARTI KREDIT ANDA ADMIN AKAN DISIMPAN DALAM TEKS POLOS. Jika memungkinkan, Anda harus menemukan beberapa cara untuk melatar belakangi ini sebagai LaunchDaemon.
sumber
PADA OSX, misalkan program yang Anda miliki berada di / usr / local / bin / YourProgramName ... Untuk mengatasi masalah ini, perintah berikut, Untuk mengubah ID Pengguna / Grup untuk hierarki file yang di-root dalam file alih-alih hanya file itu sendiri .
sudo chown -R $(whoami) /usr/local/bin/
... lalu di Terminal gunakan nama program Anda, $ YourProgramName
sumber
Anda dapat melakukan
yang akan menempatkan Anda di shell root.
sumber
Sepertinya program itu sendiri memeriksa apakah sedang berjalan dengan ID = 0
sumber
Kamu bisa
sudo chown YOUR-USERNAME-HERE BINARY-NAME-HERE
.Tetap saja, saya sepenuhnya setuju dengan komentar dmckee.
sumber