Como criar um arquivo que somente o sudo possa ler?

4

Eu gostaria de ter um arquivo no meu computador que armazene um token específico (em vez de apenas exportá-lo para o env de shell). Como tal, eu gostaria que o token só pudesse ser lido pelo sudo, então o acesso a ele requer autorização. Como posso escrever um arquivo que só pode ser lido pelo sudo?

    
por balupton 13.07.2018 / 03:21

3 respostas

18

Note que sudo não é sinônimo de root / superusuário. De fato, o comando sudo permite executar comandos praticamente como qualquer usuário, conforme especificado pela política de segurança:

$ sudo whoami
root
$ sudo -u bob whoami
bob

Suponho que você quis criar um arquivo que somente root usuário possa ler:

# Create the file
touch file

# Change permissions of the file
# '600' means only owner has read and write permissions
chmod 600 file

# Change owner of the file
sudo chown root:root file

Quando você precisar editar o conteúdo do arquivo:

# Replace 'nano' with your prefered editor
sudo nano file

Veja como somente root pode ler o arquivo:

$ cat file
cat: file: Permission denied
$ sudo cat file
foo bar baz
    
por 13.07.2018 / 05:51
2

Descobri:

echo 'hello world' > test
sudo chown root test
sudo chmod 600 test
sudo cat test

Em outro terminal, se você fizer isso sem sudo:

> cat test
cat: test: Permission denied
    
por 13.07.2018 / 03:58
1

Com tee

$ echo "some text" | sudo tee tmpfile
some text
$ sudo chmod 700 tmpfile 
$ cat tmpfile
cat: tmpfile: Permission non accordée
$ sudo cat tmpfile
some text

Para acrescentar:

$ echo "text appened" | sudo tee -a tmpfile
$ sudo cat tmpfile
somme text
text appened
$ sudo rm tmpfile
    
por 13.07.2018 / 05:10

Tags