2012-05-28 17 views
5

benim programını çalıştırmak için sudo kullanmak zorunda: Ben programdan git clone çalıştırmak çalışıyorumSudo'd programından asıl kullanıcı olarak nasıl bir komut yürütürüm?

sudo ./my_program 

ama benim yerime kök kullanıcının SSH anahtarlarını kullanmaya çalışır. Bu tek komutu, programımı ilk başta kullanan kullanıcı olarak yürütmenin bir yolu var mı?

ben yapabilirim sanırım:

su - original_user -c "git --version" 

Ama nasıl orijinal kullanıcısının kullanıcı adını anlayabilirim? Ya da bu başka bir zarif çözüm var mı?

cevap

3

sudo el kitabında, $SUDO_USER'un orijinal kullanıcının kullanıcı adını vermesi ve $SUDO_UID orijinal kullanıcının UID'sini vermesi gerektiğini gösterir.

+0

Ve orijinal kullanıcının UID'si olan "SUDO_UID". –

0

Bir web uygulamasından dosyalar oluştururken, bir NAS üzerinde Samba ile ilgili bir sorun yaşadım.

Bu durumda, çalışan işlemleri aldım ve hangi kullanıcının samba çalıştırdığını belirledim. Bu ismi ayırdıktan sonra doğru kullanıcı hesabım vardı. Belki bu senin durumun için de işe yarayacak?

Bu durumda ps çıktısını filtrelemeniz ve programınızın adını aramanız gerektiğini hayal ediyorum. Bash üzerinde test ederek işe yarayıp yaramadığını görün.

+0

Üzgünüm, onun diğer yolu. Kullanıcıları aktif hale getirmek için ** ps -u ** kullanın ve hangi işlemi başlattığını belirlemek için ** komutu ** altındaki değeri değerlendirin. – Digitalis

İlgili konular