Como gravar o acesso ao padrão /etc/init.d

0
Estou tentando instalar o software Proteios no Ubuntu 16. Um dos requisitos para este software é

  • (*) Acesso de gravação a $ SERVICE_PATH (padrão /etc/init.d)

Como posso conseguir isso?

    
por Steffi Ma 21.07.2018 / 12:30

2 respostas

3

As instruções dizem que o script de instalação deve ser executado como root: nesse ponto, ele deve ter acesso de gravação completo a tudo.

Se o software não for executado como raiz e ainda precisar de acesso a /etc/init.d após a instalação, é muito incomum , mas pode ser organizado se for realmente necessário:

1.) Crie um grupo. Você pode nomear como quiser. A opção -r cria usando o intervalo de números de GID alocado para grupos de sistemas, para que não se misture a grupos associados a usuários normais:

sudo groupadd -r proteios

2.) Adicione o usuário que precisa gravar o acesso a /etc/init.d a esse grupo:

sudo usermod -a -G proteios someuser

3.) Atribua a propriedade do grupo em /etc/init.d ao novo grupo. Se mais de um usuário precisar disso, basta repetir essa etapa quantas vezes forem necessárias:

sudo chgrp -R proteios /etc/init.d

4.) Atribuir acesso de escrita ao grupo:

sudo chmod -R g+rwX /etc/init.d

5.) Certifique-se de que todos os novos arquivos criados nesse diretório sejam de propriedade do grupo proteios por padrão:

sudo chmod g+s /etc/init.d

Eu preferiria fazer tudo isso em uma máquina virtual descartável primeiro, para ver o que esse software Proteios realmente quer fazer com /etc/init.d . Este software parece ter uma suposição embutida de que o computador onde o Proteios está instalado será usado apenas para Proteios e nada mais, e por isso não precisa se importar muito com as convenções de segurança ou padrão - uma suposição perigosa.

Se o software quiser apenas modificar seu próprio script de inicialização, ele o faz de tal forma que o acesso de gravação apenas ao script em si não é suficiente (por exemplo, ele deseja fazer backup do arquivo antigo antes de criar um script). um novo), então eu poderia não adicionar permissões ao% real/etc/init.d, mas tente redirecionar o aplicativo criando um diretório com permissões adequadas em outro lugar (por exemplo, /opt/proteios/etc/init.d ), adicionando

export SERVICE_PATH=/opt/proteios/etc/init.d

para o início do script de inicialização do Proteios e para o ambiente de qualquer usuário que use Proteios e, em seguida, crie um link simbólico do script de inicialização do (Proteonia) criado no diretório personalizado de volta para o real /etc/init.d :

sudo ln -s /opt/proteios/etc/init.d/* /etc/init.d/

Dessa forma, o Proteios pode modificar seus próprios arquivos o quanto quiser, mas não pode modificar outros serviços do sistema. Se quiser adicionar outros scripts de inicialização anteriormente desconhecidos, o administrador precisará criar links simbólicos para eles, caso esses scripts precisem realmente iniciar no momento da inicialização. Isso deve impedir que os usuários manipulem outros serviços do sistema por meio do Proteios.

    
por 21.07.2018 / 13:18
0

O pré-requisito é ter acesso de gravação a $SERVICE_PATH ( /etc/init.d por padrão) e a $CATALINA_HOME .

A documentação não diz em qual usuário você deve executar os comandos como, mas esse usuário precisa possuir esses dois caminhos, fazer parte de um grupo que possui acesso de gravação a esses caminhos ou alternar para a conta root ao executar o comandos que precisam gravar nesses caminhos.

Por exemplo, a documentação diz para editar o arquivo config em $CATALINA_HOME/webapps/proteios/WEB-INF . Para fazer isso, o arquivo de configuração deve ser gravável pelo usuário que edita o arquivo.

Não é explicitamente dito que outras etapas precisam ser escritas nesses caminhos, mas meu palpite é que a execução dos scripts install , update e init mencionados pode exigir isso (as instruções dizem para executar esses como root).

    
por 21.07.2018 / 13:06