Kaynak $ USER değişkenine `sudo` ile çalıştırılan bir komut dosyasından erişebilir miyim?


19

Tuhaf bir soru, biliyorum. İşte senaryo:

echo $USER

İşte çalıştırmak için kullandığım komut:

sudo ./myscript.sh

Şu anda "root" yazıyor jon, fakat kullanıcı adımı yazdırmasını istiyorum . Komutu değil, komut dosyasını değiştirerek bunu yapmanın bir yolu var mı?


Evet, bunu yapmanın yolları var. Ama belki de en kolay yol bir çözümdür. Bu komut dosyasını, 'sudo komut dosyasının' erişebilmesi için kullanıcı kimliğinizi 'kaydettiğiniz' başka bir komut dosyasından çağırın.
sudodus

Yanıtlar:


28

Kullanım SUDO_USERyerine ortam değişkeni USER.

sudoonu SUDO_USERortam değişkeninde çalıştıran kullanıcının adını yerleştirir :

ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek

Böylece betiğinizde $USERile değiştirebilirsiniz $SUDO_USER:

echo $SUDO_USER

Daha fazla okuma

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.