Eu sou um usuário root e suponho que desejo executar qualquer aplicativo como outro usuário. Isso é possível, sem mudar para outro usuário?
Algo como
# google-chrome user=abc
Na verdade, estou executando um programa CLI como um usuário não raiz. Eu configurei o bit adesivo e estou usando o setuid, portanto, o programa é executado com privilégios de root. Agora estou usando system()
dentro do programa para chamar um aplicativo GUI. Mas não quero executá-lo como root, portanto, quero eliminar temporariamente os privilégios de root apenas para essa chamada.
Respostas:
Uma solução portátil seria:
No entanto, como o google-chrome está exigindo acesso ao X11, isso provavelmente falhará, a menos que você o tenha desprotegido, o que seria uma péssima idéia, principalmente durante a execução como root.
Se o tunelamento / encaminhamento X11 for permitido, uma maneira melhor seria
ou
fonte
su abc -c google-chrome
provavelmente falhará em primeiro lugar porqueabc
não pode usar a sessão do root,.Xauthority
sendo ilegível paraabc
.Resposta curta: "Sim, isso é possível".
se você deseja executar um aplicativo não-X, basta usar o seguinte comando:
Se você deseja executar algum aplicativo X como outro usuário, mas primeiro com seu próprio desktop, é necessário criar um script auxiliar, que tornará sua vida mais simples
e usando seu editor de texto favorito, crie um arquivo da
~/bin/xsudo
seguinte maneira:então torne-o executável:
e use da mesma maneira,
sudo
mas sem nenhuma chave:Apreciar.
PS A
xsession
partir daroot
conta é fortemente desencorajado!fonte
ssh -X abc@localhost google-chrome
:)Existe uma maneira de executar o chromium quando conectado ao usuário root. Se você abrir normalmente, ocorrerá um erro como "o cromo não pode ser executado como raiz".
Para executá-lo sem o erro, right clicko seu ambiente de trabalho, criar um novo lançador com o comando:
chromium-browser --user-data-dir
. Você pode nomear o que quiser, salvá-lo, quando você o abrir, ele fornecerá o navegador chromium. (Funciona no Ubuntu 10.04.4 LTS)fonte
fonte