Saya berada di grup sudo:
$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)
Di sudores saya, saya tampaknya memiliki pengaturan yang sesuai:
sudo ALL=(ALL:ALL) NOPASSWD: ALL
dan itu adalah baris terakhir tanpa komentar di sana.
Tetapi ketika saya mencoba git pull
, saya ingin mengetik ulang kata sandi saya:
$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:
Ini bukan masalah ketika saya login konsol, tetapi tidak dapat diterima dalam skrip. Jadi, bagaimana saya bisa mengizinkan siapa pun di grup sudo git pull sebagai www-data tanpa mengetik ulang kata sandi?
Ketika saya meletakkan nama saya secara langsung:
molot ALL=(ALL) NOPASSWD: ALL
ini bekerja untuk saya. Tapi, jelas, tidak untuk pengguna maria atau lainnya dari grup sudo. Sejauh yang saya mengerti manual , baik nama pengguna dan nama grup harus berfungsi dalam file pertama.
sudo -u www-data ./your_script.sh
? Apa tujuan naskah?sudoers
format file sudah benar) adalah nama pengguna dari pengguna yang memohon. Sudahkah Anda mencoba menggantinya dengan wildcard*
, atau pengguna mana saja yang menjalankan git hook?*
tidak bekerja. Menempatkan nama saya secara langsung bekerja untuk saya ... tetapi tidak untuk pengguna lain dalam grup sudo, jelas.Jawaban:
Tampaknya Anda memiliki baris yang relevan di sudoers Anda kehilangan karakter:
cocok dengan pengguna bernama 'sudo'. Untuk 'semua pengguna dalam grup sudo' seharusnya:
(perhatikan tanda% di awal).
sumber
%
di%wheel
maksud.sudo visudo
Kemudian, dengan anggapan sebagai
molot
nama pengguna Anda, pergi ke akhir file dan:molot ALL=(ALL) NOPASSWD: ALL
Ini seharusnya bekerja, tetapi jika tidak, teruskan kami posting.
sumber
User_Alias
), dan berikan izin untuk menjalankan perintah tertentu sebagai root (Runas_Alias
). Aku tidak tahu bagaimana kelompok Anda set-up, Anda dapat memeriksa sudoers wiki help.ubuntu.com/community/Sudoers Ini benar-benar ringkas. Periksa bagian "Spesifikasi Pengguna", ini seharusnya membantu.