Sudo komutları için yol nasıl ayarlanır


37

Eğer çıkarsam

sudo my-command

Linux bunun için nasıl görünüyor my-command?

my-commandBenim PATH içindedir. Sorunsuz bir şekilde onu çağırabilirim. Bununla birlikte, onu çağırdığımda sudoalacağım command not found. İlginç, bunu daha önce hiç yaşamadım. Nasıl üstesinden gelirim?

EDIT: Bu "Olası kopya" nın seçtiği cevap, yanlış, yani en azından konuya değil. Terdon'dan gelen bu cevap doğru.

Yanıtlar:


48

Bu normalde içindeki secure_pathseçenek ile ayarlanır /etc/sudoers. Kimden man sudoers:

 secure_path   Path used for every command run from sudo.  If you don't
               trust the people running sudo to have a sane PATH environ‐
               ment variable you may want to use this.  Another use is if
               you want to have the “root path” be separate from the “user
               path”.  Users in the group specified by the exempt_group
               option are not affected by secure_path.  This option is not
               set by default.

Varsayılan olmayan komutları çalıştırmak için $PATH,

  1. Tam yolu kullanın sudo ~/bin/my-command:; veya

  2. Komutu içeren dizini ekleyin secure_path. sudo visudoGüvenli yol çizgisini çalıştırın ve düzenleyin:

    Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/youruser/bin/"
    

    Dosyayı kaydedin ve bir dahaki çalıştırışınızda sudodizin içinde ~/binolacaktır $PATH.


2
Ya da bu bir üretim makinesi değilse ve umursamıyorsak, tüm çizgiyi yorumlayınız. Sonra kullanıcıların PATH kullanacaktır. Varsayılan olarak ayarlanmadığını söylüyor, ancak bu her zaman doğru olmayabilir ...
Nagev 10

2

Geçici çözüm için kullandığım şey bu:

sudo cp $(which my-command) /usr/bin
...

whichKomut bulmak mümkün bu yüzden, kök olmayan bir alt kabukta çalıştırılır my-command, daha sonra, bir yol olduğunu kopyalar yürütülebilir sudo rootkullanıcı kutu erişimi. Güvenlik açısından pek iyi değil, ancak komut çalıştırıldıktan hemen sonra imha edilmiş olan bir liman işçisi görüntüsü çalıştırmak benim için sorun değildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.