it-swarm-tr.com

Linux üzerinde diğer kullanıcı üzerinden grafik uygulama çalıştırmak için xauth nasıl kullanılır

Normal kullanıcı hesabım, diyelim ki user1. Ben user1 olarak x oturum açarken çalıştırmak istiyorum bazı x uygulama için ayrı user2 yarattı ama bir şekilde user1 verilere okuma/yazma erişimi engelleyecektir. Ben bu uygulamayı çalıştırmak için user1 gelen user2 için xauth ve Sudo/su kullanabilirsiniz düşündüm. Bunu nasıl yaparım? Xauth'u nasıl yapılandıracağından emin değilim.

48
Phil

KDE'de benim için harika bir şey buldum

kdesu -u username /path/to/program
2
Phil

Xauth selective, öğesini user1 run olarak kullanmak için:

xauth list|grep `uname -n`

Bu, sizin için hexkey yetkilendirme girdilerini yazdırır. Siz bu ana bilgisayarlarla ilişkili farklı ekranlara sahip olabilirsiniz.

User2 ekranınızı ayarladıkça (varsayılan durum varsayılırsa):

DISPLAY=:0; export DISPLAY

O zaman koş:

xauth add $DISPLAY . hexkey

$ DISPLAY sonrasında ve hexkey'den önceki noktaya dikkat edin.

Artık erişim gerekli olmadığında, user2 olarak şunları çalıştırabilirsiniz:

xauth remove $DISPLAY
33
Randall

.zshrc 'A export XAUTHORITY=~/.Xauthority İçeren bir satır ekledim ve şimdi Sudo -E xcommand' U yürütebiliyorum. Çok fazla googling yaptıktan sonra, benim için en kolay yol buydu.

12
kfl62

Birincisi: xhost + Kullanmayın, oldukça güvensizdir (battaniye izin ver/reddet).

Bunun yerine X-Cookie mekanizmasını kullanın:

su user2
cp /home/user1/.Xauthority /home/user2/.Xauthority 
export DISPLAY=:0

Alternatif olarak, sux yüklüyse, bunu kullanın (ehempel'in cevabına bakın).

Her iki durumda da user2, X sunucusuna yetki vermek için .Xauthority içindeki gizli çerezi kullanacak ve başka hiç kimse buna erişemeyecektir.

Notlar:

  • Dosya izinlerinize bağlı olarak, .Xauthority'yi başka bir şekilde kopyalamanız gerekebilir.
  • .Xauthority Kopyalamak yerine, yetki anahtarını çıkarmak ve kopyalamak için xauth kullanabilirsiniz (Randall'ın cevabına bakın). .Xauthority Dosyasında birden fazla anahtar varsa, bu daha seçicidir; aksi halde bir tat meselesidir.
9
sleske

Debian veya ubuntu varsayarsak (Red Hat/SUSE'de benzer olmalıdır).

Sudo apt-get install sux
sux user -c 'command'
9
ehempel

Bu, sorunu tüm kullanıcılar için çözecektir:

cat <<EOF > /etc/profile.d/xauth.sh
#!/sbin/bash
export XAUTHORITY=~/.Xauthority
EOF
7
JMS

Kök olarak:

xhost local:yourusername

Kullanıcı adınız kullanıcı adınız olduğunda :)

O zaman su kullanıcısı xclock kurulu ise çalışmalıdır

4
ACV

Bunlar sadece hack'lerdir:

  • xauth + (güvenli değil)
  • ssh -X user2 @ localhost (çirkin)

yukarıdaki sleske, bence, doğru çözüm var.

2
alex

Bu şekilde suse/opensuse içinde yapılmıştır: http://www.novell.com/support/kb/doc.php?id=700374

Basitçe /etc/pam.d/su dosyasını değiştirerek (kalın) seçeneği ekleyin:

oturum isteğe bağlı pam_xauth.so sistem kullanıcısı = 1

Sonra su ile geçiş yapmadan -:

su user2

ve uygulamayı grafik olarak çalıştırın.

0
pojem