Como obter acesso indireto em um arquivo através de script no linux

0

Eu tenho um arquivo text1, neste, apenas um usuário (user1) leu, escreveu, executou permissões, o resto do mundo (user2) leu e executou permissões. Eu pensei em ter um script que altera o conteúdo do arquivo text1 como abaixo, que será executado pelo user2

sed -i '/s/eg1/eg0/' text1

Eu quero modificar o script acima para alterar o conteúdo de text1 sem dar diretamente acesso de gravação ao user2. Eu quero dizer que o usuário2 não deve ser capaz de escrever diretamente no texto1, mas quando ele executa o script, o conteúdo do texto1 deve ser modificado, pois não é possível dar acesso direto à escrita no texto1

    
por Revanth 18.11.2014 / 13:15

1 resposta

1

Tente este procedimento:

  • faça o login como user1
  • salve seu comando no arquivo de script, por exemplo changeText.sh
  • torne-o executável:

      chmod 755 changeText.sh
    
  • definir a permissão SUID (Definir proprietário do ID do usuário em execução):

      chmod u+s changeText.sh
    

Depois disso, changeTest.sh se parece com:

      -rwsr-xr-x 1 user1 user1 xxxx nov 15  2014 /path/to/file/changeText.sh

O SUID concede permissões temporárias a um usuário para executar um programa / arquivo com as permissões do proprietário do arquivo em vez do usuário que o executa.

Em outras palavras, quando user2 for executado, /path/to/file/changeText.sh receberá as permissões do proprietário do arquivo e alterará o texto no arquivo texto1, mesmo que user2 não tenha permissão de gravação.

Aqui é um link útil.

    
por Lety 19.11.2014 / 00:03