Qual usuário executa os comandos definidos em /etc/rc.local?

13

Os comandos são /etc/rc.localexecutados supor padrão?
Preciso especificar sudoantes de cada comando ou eles serão executados suindependentemente?

SK '
fonte

Respostas:

17

sunão é um usuário , é um programa para executar comandos / programas subsequentes sob uma identidade alternativa de outro usuário que não aquele que executa o comando. É muito semelhante a sudoesse respeito.

A menos que outro usuário seja especificado, os dois comandos terão como padrão executar o comando sob a identidade alternativa do rootusuário, o superusuário / administrador.

A principal diferença entre sue sudoé que:

  • su requer que você saiba a senha desse usuário alternativo, em que
  • sudosolicitará a senha do usuário que está executando o sudocomando e requer configuração para que o usuário possa executar os comandos / programas solicitados.

(Quando rooté executada uma suou sudonenhuma senha é necessária.)


Como qualquer script de inicialização, o /etc/rc.localscript é executado pelo rootusuário e você não precisa prefixar quer suou sudoaos comandos / programas que precisam ser executados como root.

Você ainda pode precisar usar suou sudoem seus scripts init se esses comandos precisarem ser executados não comoroot outra conta de usuário / serviço ...

su -oracle/do/something/as/oracle/user

HBruijn
fonte
O que faço se eu colocar su - user /path/to/script.sh em rc.local e, ao buscá-la, solicita a senha do usuário (e fecha o terminal posteriormente). Como faço para não solicitar a senha do usuário?
alonso s
10

Sim, todos os scripts e programas são chamados diretamente pela raiz.

O /etc/rc.localarquivo é chamado diretamente pelo processo init.

dmourati
fonte
1
Então, não precisamos adicionar sudocomandos antes /etc/rc.local?
Benyamin Jafari