Saya memiliki sistem linux jarak jauh yang dapat saya sambungkan melalui ssh dan kunci publik dan kemudian jalankan perintah berikut:
sudo jetty restart
Perintah ini pada sistem ini dikonfigurasi untuk memungkinkan siapa saja untuk mengeksekusi tanpa kata sandi sudo. Yaitu file sudoers mungkin terlihat seperti ini
%develop ALL = NOPASSWD: /opt/scripts/jetty
Ini bagus karena kita bisa menjalankan skrip ini dengan hak istimewa yang tinggi sambil menjaga semua yang lain dikunci. Masalahnya adalah ketika mencoba menjalankan perintah ini dari jarak jauh, saya selalu dimintai kata sandi sudo.
me@home:~$ ssh -t -i ~/.ssh/identity [email protected] 'sudo jetty restart'
Password: .....? (I don't have the sudo password!)
Apakah ada cara saya bisa menjalankan perintah ini dari jarak jauh?
requiretty
tidak aktif? Ada jugatty_tickets
parameter yang ingin Anda periksa.ssh -t
tty selalu dialokasikan. Selain itu, denganrequiretty
,sudo
akan gagal sebelum meminta kata sandi.Jawaban:
Pastikan
sudo
memilih perintah yang tepat; jika ada/usr/bin/jetty
atau tidak, aturan sudoers tidak akan cocok. (Perhatikan bahwa~/.bashrc
file Anda dan file semacam itu diabaikan ketika menggunakanssh <host> <command>
, sehingga$PATH
penyesuaian Anda tidak akan pernah terjadi.)sudo /opt/scripts/jetty restart
harus bekerja.sumber