Alternatif olarak sux, grafik komutunu güvenli şekilde çalıştırmak için ( firefox-esraşağıdaki örnekte) $AUTHUSER( guestaşağıdaki örnekte):
AUTHUSER=guest
AUTHSTRING=SI:localuser:${AUTHUSER}
xhost +${AUTHSTRING} > /dev/null
SUDO_ASKPASS=/usr/bin/ssh-askpass
export SUDO_ASKPASS
sudo -k --askpass -u ${AUTHUSER} /usr/bin/firefox-esr
xhost -${AUTHSTRING} > /dev/null
sudo -K
kod mu:
- verir
guestmevcut kullanıcıdan kullanıcı erişimi $DISPLAYyoluylaxhost +SI:localuser:guest
ssh-askpassgrafik olarak sizden şifre istemek için kullanır (elbette, sudoers(5) NOPASSWD:güvenlik politikanızın uygun olduğunu düşünüyorsanız, bundan kaçınmak için kullanabilirsiniz . Veya başka askpassprogramlar kullanabilir veya bunları config dosyalarında belirtebilirsiniz ( sudo(8)ayrıntılar için --askpass).
- Eğer şifre tamamsa (ve izinleriniz varsa
sudoers(5)) komutu /usr/bin/firefox-esrbaşka bir kullanıcı olarak çalıştırır ( guest)
- Program tamamlandıktan sonra diğer kullanıcı (için izinler
guesterişim), kayıt $DISPLAYyoluyla iptal edilirxhost -SI:localuser:guest
Sonunda, sudo -Könbelleğe alınmış şifreyi kaldırır, bu nedenle bir sonraki çağrınızda ssh-askpasssizden tekrar şifre isteyeceksiniz (önbellek şifresini kullanmak yerine)
ne olduğundan gksu(8)veya sux(8)ondan biraz daha fazla iş olsa da, betik yazılabilir ve aşağıdakilerden çok daha güvenlidir:
xhost + (herhangi bir kullanıcı yürürlükte olduğu sürece grafik ekranınıza erişebilir)
- diğer kullanıcılar tarafından okunabilir ~ / .xauth (bu kullanıcının ekranınıza sınırsız erişimi)
- ne
gksu/ suxyaptı (geçici kopyası, ~/.Xauthoritybelirtilen kullanıcının MIT-MAGIC-COOKIE-1gksu / sux bittikten sonra bile (sizin makinenizi kapatma ve ekrandan çıkmadığınız sürece) ekranınızı kullanmaya devam etmesine izin verir . Ekran koruyucular, hazırda bekletme vb. sihri değiştirmediyse kurabiye).
yalnızca bir yerel kullanıcının ekranınıza erişmesine izin verecek ve ardından yalnızca komut çalıştığı sürece (komut bittiğinde, $AUTHUSERekranınıza hiçbir şekilde erişemez).
Başka bir güvenli alternatif ssh -X( -Yaslında sizi daha az güvende kılar! Ayrıntılar için bkz ForwardX11Trusted. ssh_config(5)), Eğer komut dosyası yazmıyorsanız kullanımı daha kolaydır, ancak ek yükü tetikler (örneğin daha yavaş) ve bazı programlar düzgün çalışmayabilir olmadan güvensiz -Y .
$XAUTHORITYkullanıcının kullanmaya~/.Xauthorityçalıştığı ve programın okumaya çalışacağı tahmin edilen kullanıcı1'lere ayarlanmış olmasından kaynaklandığını ve bu dosyanın genellikle-rw-------kullanılamadığı anlamına gelen 0600 ( ) moduna sahip olmasından kaynaklanıyor. user2 içeren "other" grubundaki herkes tarafından okunması için. Yani eğerchmod o+r ~/.Xauthority(kullanıcı1 olarak), bu problemi çözebilirsin. Bunu gösteren bir senaryo yazdım .