Sudo`yu başlatan kullanıcının adı nasıl alınır?


12

Benim sorunum: Bir Python programım var ve kullanıcı onu kullanarak başlattı sudo. Bazen kullanıcının evini almak zorundayım ve bunu sadece adını bilerek yapabilirim:

import pwd

pwd.getpwnam(username)

Peki: programı başlatan kullanıcının adını nasıl alabilirim?


1
En yapılandırmaları inder, sudoyapraklar HOMEsağlam ortam değişkeni (bu derleme ya da çalışma zamanında geçersiz kılınmış olabilir). Ancak kullanıcı için farklı bir değer belirtirse ne olmasını istediğinize bağlı olarak ortam değişkenini kullanabilir veya kullanamayabilirsiniz HOME(ya bob çalışırsa HOME=/home/joe sudo your_script?). Muhtemelen gerektiğini çağıran kullanıcıya senin EUID ayarlayın (tarafından verilen SUDO_UID(aslında komut kök izin gerektirir ne olursa olsun dışında) herhangi bir dosya sistemi erişimi yapmadan önce).
Gilles 'SO- kötü olmayı kes'

Tavsiye için teşekkür ederim. Tamam, benim ayarlayacaktır euidTo SUDO_UID.
rubik

Yanıtlar:


22

sudoBirkaç ortam değişkeni olan bir şeyi ateşlediğinizde , özellikle aradığınızı düşünüyorum SUDO_UID. Bunlara, ortam değişkenlerine erişimin olağan kanalları üzerinden çalışan tüm programlar erişebilmelidir.

Bir kabuktan hile yaparak ayarlanan diğer şeyleri görebilirsiniz: sudo env | grep SUDO


1
+1 Vay canına! Çok teşekkür ederim! Tam da aradığım şey buydu. Sanırım kullanacağım SUDO_UIDve SUDO_USER. Tekrar teşekkürler.
rubik

1
SUDO_USERtam olarak aradığım şeydi.
phoenix
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.