ls -l /etc/passwd
dá
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Assim, um usuário comum pode ler o arquivo. Isso é uma brecha na segurança?
ls -l /etc/passwd
dá
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Assim, um usuário comum pode ler o arquivo. Isso é uma brecha na segurança?
Respostas:
Os hashes de senha reais são armazenados /etc/shadow
, o que não é legível por usuários regulares. /etc/passwd
contém outras informações sobre IDs de usuário e shells que devem ser legíveis por todos os usuários para que o sistema funcione.
/etc/shadow
. Os BSDs usam /etc/master.passwd
. Solaris usa /etc/security/passwd
. Usos HP-UX /.secure/etc/passwd
e a lista continua ...
Normalmente, as senhas com hash são armazenadas na /etc/shadow
maioria dos sistemas Linux:
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
(Eles são armazenados em /etc/master.passwd
em sistemas BSD .)
Os programas que precisam executar autenticação ainda precisam ser executados com root
privilégios:
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
Se você não gostar dos setuid root
programas e de um único arquivo contendo todas as senhas com hash do sistema, poderá substituí-lo pelo módulo Openwall TCB PAM . Isso fornece a cada usuário seu próprio arquivo para armazenar sua senha com hash - como resultado, o número de setuid root
programas no sistema pode ser drasticamente reduzido.
As senhas não são armazenadas /etc/passwd
há anos; o nome é herdado, a função de ser o banco de dados local do usuário permanece e deve ser legível por todos para esse fim.
Até certo ponto, é possível identificar usuários. No passado, você também pode pegar suas senhas. No entanto, aquele que realmente vale a pena quebrar é root
conhecido sem o arquivo de senhas.
A utilidade de ter o mundo dos arquivos de senhas legível geralmente supera em muito o risco. Mesmo que não fosse legível pelo mundo, um getent passwd
comando em funcionamento tornaria o ganho de segurança nulo.
A capacidade de usuários não raiz identificarem arquivos pertencentes a terceiros desapareceria. Ser capaz de identificar arquivos pertencentes (usuário no arquivo passwd) e não proprietário (usuário não no arquivo passwd) pode ser útil na revisão do conteúdo de um sistema de arquivos. Embora fosse possível resolver isso com setuid
programas apropriados , isso adicionaria um enorme vetor de ataque por meio desses programas.
No final, é uma questão de equilíbrio e, neste caso, eu diria que o equilíbrio está firmemente em ter a senha do mundo legível.