Alternatif olarak sux
, grafik komutunu güvenli şekilde çalıştırmak için ( firefox-esr
aşağıdaki örnekte) $AUTHUSER
( guest
aş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
guest
mevcut kullanıcıdan kullanıcı erişimi $DISPLAY
yoluylaxhost +SI:localuser:guest
ssh-askpass
grafik 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 askpass
programlar 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-esr
başka bir kullanıcı olarak çalıştırır ( guest
)
- Program tamamlandıktan sonra diğer kullanıcı (için izinler
guest
erişim), kayıt $DISPLAY
yoluyla 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-askpass
sizden 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
/ sux
yaptı (geçici kopyası, ~/.Xauthority
belirtilen kullanıcının MIT-MAGIC-COOKIE-1
gksu / 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, $AUTHUSER
ekranınıza hiçbir şekilde erişemez).
Başka bir güvenli alternatif ssh -X
( -Y
aslı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
.
$XAUTHORITY
kullanı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 .