roda o apt-get com um usuário diferente

1

Eu tenho um script onde eu adiciono um novo usuário sudo e depois eu preciso instalar pacotes.

É possível executar o apt-get como novo usuário?

Por exemplo, estou logado com o usuário1. Eu corro o roteiro. Nesse script, eu crio user2 (sudoer). Depois, eu quero instalar os novos pacotes usando o user2

Eu só tenho que usar essa linha de comando e supostamente funciona?

sudo -u user2 apt-get -y install [packagename]
    
por sincos 19.11.2016 / 19:04

1 resposta

1

Você deve executar apt-get como root via sudo , não como outro usuário.

Muitos dos diretórios reais mantidos por apt para as informações do pacote precisam de root para serem mantidos; também, se um pacote está instalando em /bin ou similar, ele precisa de root.

O privilégio Sudoers permite que apenas um usuário que efetuou login use sudo e defina o que pode ou não fazer com o comando sudo . Ele não concede os privilégios que o apt-get precisa operar, pois precisa das permissões root efetivas que apenas o sudo apt-get forneceria. Portanto, se user1 estiver executando sudo apt-get , eles poderão. Se user2 não estiver em sudoers, eles não poderão executar esse comando. (Mas poderia se eles estivessem em sudoers).

Para fazer o que você está tentando fazer precisaria de dois comandos sudo encadeados (não testados pelo caminho):

sudo -u user2 sudo apt-get -y install PACKAGENAME

Note que normalmente não é assim que as coisas devem ser executadas e que isso pode levar a comportamentos ou estranheza possivelmente indefinidos.

user2 também precisaria ter permissões para executar como root, o que pode ou não ser o caso na configuração dos sudoers.

    
por Thomas Ward 19.11.2016 / 23:32