Minha conta de usuário comum é, digamos, user1. Criei user2 separado para algum aplicativo x que eu gostaria de executar enquanto estivesse conectado ao x como user1, mas de uma maneira que impedisse o acesso de leitura / gravação aos dados do user1. Eu pensei que eu poderia usar xauth e sudo / su para user2 de user1 para executar este aplicativo. Como eu faço isso? Não sei como configurar o xauth.
48
.Xauthority
arquivo no diretório inicial do usuário2. Problema 2: De alguma forma e por algum motivo eu não entendo, depois quesu
XAUTHORITY mantém o caminho de arquivo para os user1's. Mas esse arquivo não é legível pelo usuário2.unset XAUTHORITY
no user2 #hexkey
noxauth add
comando da mesma a partir dexauth list
ou eu tenho que criar um novo aleatório?Coloquei na minha
.zshrc
linhaexport XAUTHORITY=~/.Xauthority
e agora sou capaz de executarsudo -E xcommand
. Depois de pesquisar bastante, para mim, essa era a maneira mais fácil.fonte
sudo -E
(e o uso-E
está desativado na maioria das instalações padrão) porque normalmente asudoers
configuração padrão permite que aXAUTHORITY
variável de ambiente seja passada para o sudo.-E
. Pode ser definido como uma variável que pode ser passada, e é sugerida pela Red Hat ou pelo Debian.Supondo debian ou ubuntu (deve ser semelhante no Red Hat / SUSE).
fonte
sux
não está mantido (e foi removido dos repositórios Debian / Ubuntu): packages.qa.debian.org/s/sux/news/20140101T172633Z.htmlPrimeiro: não use
xhost +
, é bastante inseguro (permitir / negar cobertor).Em vez disso, use o mecanismo X-Cookie:
Como alternativa, se você
sux
instalou, use isso (consulte a resposta do ehempel).Nos dois casos, o usuário2 usará o cookie secreto no .Xauthority para autorizar o servidor X, e ninguém mais terá acesso a ele.
Notas:
.Xauthority
, você também pode usarxauth
para extrair e copiar a chave de autorização (consulte a resposta de Randall). Se você tiver várias chaves no.Xauthority
arquivo, isso é mais seletivo; caso contrário, é uma questão de gosto.fonte
Isso corrigirá o problema para todos os usuários:
fonte
Como raiz:
Onde yourusername é o seu nome de usuário :)
Então faça su como seu usuário
xclock
deve funcionar se estiver instaladofonte
Estes são apenas hacks:
Acho que a sleske acima tem a solução adequada.
fonte
ssh -X
é uma solução muito simples e elegante, não depende de nada do gtk / kde obsoleto / não mantido (que requer a instalação de mais binários com o bit SUID ...).Encontrei algo que funciona muito bem para mim no KDE
fonte
kde-cli-tools
, e não dentro,$PATH
mas dentro/usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu
(obviamente dependendo da arquitetura).Desta forma, feita em suse / opensuse: http://www.novell.com/support/kb/doc.php?id=7003743
Simplesmente modifique o /etc/pam.d/su, adicionando a opção (negrito):
Então você pode alternar com su sem -:
e execute o aplicativo graficamente.
fonte
Para o GNOME (e realmente sem qualquer ambiente de desktop, eu o uso apenas com o icewm)
gksu
:fonte