O root / superuser pode ler meus arquivos protegidos por leitura?

34

Em hospedagem unix compartilhada, se eu tiver um arquivo sensitive-data.txt e eu emitir:

chmod 600 sensitive-data.txt

O usuário root ainda pode ler meu arquivo? Especificamente, estou me perguntando se é seguro armazenar minha senha no arquivo mercurial hgrc.

UPDATE

Decidiu usar a extensão do chaveiro do mecurial, já que foi super fácil de configurar:

pip install mercurial_keyring

e, em seguida, adicione ao hgrc:

[extensions]
mercurial_keyring =

No entanto, ainda estou interessado na resposta a esta pergunta.

    
por User 27.02.2014 / 02:02

7 respostas

61

Sim, o root pode:

$ echo Hello you\! > file
$ chmod 600 file
$ ls -l file
-rw------- 1 terdon terdon 11 Feb 27 02:14 file
$ sudo -i
# cat file
Hello you!

Em qualquer caso, mesmo que o root não possa ler seus arquivos como root, eles podem sempre efetuar login sem senha:

$ whoami
terdon
$ sudo -i
[sudo] password for terdon: 
# whoami 
root
# su - terdon
$ whoami
terdon

Portanto, root pode mudar para qualquer outro nome de usuário usando su (ou sudo -iu username ) e poderá fazer qualquer coisa como se fosse você.

    
por 27.02.2014 / 02:16
23

Sempre assuma que root (e qualquer outro usuário / processo com CAP_DAC_OVERRIDE e CAP_DAC_READ_SEARCH ) pode fazer tudo a menos que um LSM (SELinux, AppArmor ou similar) o impeça de fazer isso .

Isso significa também que você deve assumir que todas as teclas digitadas podem ser lidas. As senhas não são realmente seguras. Se você quer um nível sério de segurança, então você deve usar um sistema que é completamente controlado por você (e nem mesmo usado por mais ninguém).

    
por 27.02.2014 / 02:17
9

Sim, o root tem todos os privilégios para fazer qualquer coisa

Aqui você pode ver que eu criei um teste de nome de diretório e toquei em um arquivo lonston.txt e listei os arquivos

root@system99:/tmp# mkdir test && touch lonston.txt && ls -l
total 4
-rw-r--r-- 1 root root    0 Feb 27 16:35 lonston.txt
drwxr-xr-x 2 root root 4096 Feb 27 16:35 test

Em seguida, alterei a permissão do arquivo e do Diretório para a permissão nula usando 000 e listei para ver a permissão

root@system99:/tmp# chmod 000 lonston.txt && chmod 000 test && ls -l
total 4
---------- 1 root root    0 Feb 27 16:35 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

Então, até eu posso escrever para o arquivo e ler o arquivo usando cat

root@system99:/tmp# echo "Yes root have all Privileges than other user's, let we see the permission of user's too" > lonston.txt 

root@system99:/tmp# cat lonston.txt 
Yes root have all Privilages than other user's, let we see the permission of user's too

Mesmo eu posso entrar no diretório que tem d --------- (nulo) 000 permissão, mesmo root não tem permissão de leitura ou escrita.

root@system99:/tmp# cd test/
root@system99:/tmp/test# pwd
/tmp/test

Mesmo eu posso criar os arquivos e pastas após a mudança de permissão de qualquer

root@system99:/tmp/test# touch /tmp/test/lonston/testdir/babin.txt

root@system99:/tmp/test# ls -l /tmp/test/lonston/testdir/
total 0
-rw-r--r-- 1 root root 0 Feb 27 16:39 babin.txt

Agora, aqui podemos ver a permissão com 400

root@system99:/tmp/test# chmod 400 babin.txt

Lista para ver a permissão do arquivo

root@system99:/tmp/test# ls -l
total 8
-r-------- 1 root root   34 Feb 27 16:42 babin.txt
drwxr-xr-x 3 root root 4096 Feb 27 16:38 lonston

Usando o vim im eu adicionei 1 linha ao arquivo babin.txt

root@system99:/tmp/test# vim babin.txt

Mas, enquanto no modo vim, ele nos notará W10: Aviso: Alterando um arquivo somente leitura Mas ainda é gravável

Agora podemos catar o arquivo para saída

root@system99:/tmp/test# cat babin.txt 
hi this is the write persmission 
this is added while the file have 400 permission

Então eu tenho o logout do usuário root para o usuário normal e listei o arquivo com permissão nula, o que na raiz também

root@system99:/tmp# exit
exit

Navegue para o diretório / tmp

sysadmin@system99:~$ cd /tmp/
sysadmin@system99:/tmp$ ls -l
total 8
---------- 1 root root   88 Feb 27 16:36 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test

Mas, ao ler o arquivo do usuário normal, não podemos

sysadmin@system99:/tmp$ cat lonston.txt 
cat: lonston.txt: Permission denied

sysadmin@system99:/tmp$ cd test/
cat: test/: Permission denied

É isso aí, Espero que você tenha o poder do usuário root

Se você está no Usuário Normal, se você precisa privilégios de root, precisamos usar o sudo, ele vai pedir a senha do sudo

exemplo:

sysadmin@system99:/tmp$ sudo cat lonston.txt 
[sudo] password for sysadmin: 
Yes root have all Privilages than other user's, let we see the permission of user's too

Usuário do Sudo tem collabration com o grupo do usuário root, então o sudo tem o privilégio de root.

Para saber mais sobre o sudo

# man sudoers

Aqui podemos ver que eles definiram como o usuário normal pode ter direitos Sudo Apenas menos linhas eu mencionei aqui.

sysadmin@system99:/tmp$ sudo cat /etc/sudoers

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Totalmente podemos ler ou editar ou Excluir os arquivos mesmo root Não tem permissão de leitura.

    
por 27.02.2014 / 12:26
8

No Unix tradicional, o root é todo poderoso. Em particular, o root pode ler qualquer arquivo e até espionar o que seus programas estão fazendo internamente. Se os dados forem realmente confidenciais, mantenha apenas cópias criptografadas (considere, por exemplo, guarda GNU Privacy para isso, mas leia sua documentação cuidadosamente antes), e nunca decriptografá-lo em uma máquina que não esteja sob seu controle total.

(A paranóia é maravilhosa, nunca é o suficiente; -)

Sério, pense cuidadosamente sobre os custos que o vazamento de dados pode causar e, portanto, quanto você estará preparado para pagar pela segurança. Perfeita segurança é impossível, para obter um pouco mais de segurança, o custo começa a aumentar rapidamente. Mas tome cuidado para não cair na armadilha de uma medida cara que realmente não aumenta a segurança ...

    
por 27.02.2014 / 02:16
3

Também deve ser assumido que qualquer pessoa que tenha a oportunidade de estar na mesma sala que o hardware pode ler ou escrever o que quiser. Se eles forem muito pacientes, poderão entender dados criptografados. Eles não precisam de métodos de canais secundários se puderem substituir o software de criptografia.

    
por 27.02.2014 / 10:43
2

Sim, o root pode ler o arquivo protegido mesmo quando o proprietário não pode (embora o proprietário obviamente possa remover a proteção e ler o conteúdo):

echo "123" > abc.txt
chmod 000 abc.txt
cat abc.txt

cat: abc.txt: permissão negada

su
cat abc.txt

123

No entanto, sob a configuração normal, o root não pode acessar arquivos protegidos nos sistemas de arquivos remotos como o NFS ("root squash").

    
por 28.02.2014 / 13:38
2

Para evitar que root ou qualquer um possa ler seus arquivos, você precisa criptografá-los. A Criptografia de Arquivos é uma opção muito conveniente para investigar se você deseja evitar ter que lidar com manipulações complexas do sistema de arquivos.

Opções de criptografia:

  1. Criptografar arquivos comuns e impedir que todos, exceto você, possam visualizá-los
  2. Criptografe os Scripts Shell e torne as versões criptografadas executáveis, mas também impeça que todos possam modificá-las ou visualizá-las

Se escolher a opção 1, veja uma maneira de criptografar seus arquivos:

cat (your-file) | openssl aes-128-cbc -a -salt -k "(specify-a-password)" > (your-file).enc

Para descriptografar o arquivo acima, você executa um comando como este:

cat (your-file).enc | openssl aes-128-cbc -a -d -salt -k "(specify-the-password)" > (your-file).dec

- Você pode colocar o texto acima em um script para que ele não apareça no seu histórico. Ou, você pode simplesmente remover o parâmetro " -k ", que solicitará que o openssl solicite uma senha.

Se escolher a opção 2, basta copiar e colar seu script no seguinte site:

link

Após o envio do seu script para esse site, um arquivo zip será criado instantaneamente para você. Copie o link para o arquivo zip e, em seguida, vá para sua caixa UNIX e execute estas etapas:

  1. wget link para o arquivo zip
  2. descompacte o arquivo zip recém-baixado
  3. cd / tmp / KingLazySHIELD
  4. ./install.sh / var / tmp / KINGLAZY / SHIELDX- (nome-do-seu-script) / home / (seu-nome de usuário) -force

Depois de concluir as etapas anteriores, você poderá executar o script criptografado de onde quer que esteja especificado para instalá-lo na etapa 4 .... por exemplo, / home / (seu-nome de usuário) / (seu script criptografado) .sh

    
por 04.06.2016 / 16:26