Para que serve o usuário da lixeira?

27

Como escrevi em /unix//a/484626/5132, isso é digno de suas próprias perguntas e respostas.

Em sistemas operacionais Linux…

% bin de senhas getent
bin: x: 2: 2: bin: / bin: / usr / sbin / nologin
%
... e no FreeBSD ...

% bin de senhas getent
bin: *: 3: 7: Comandos e origem dos binários: /: / usr / sbin / nologin
%
... e no OpenBSD ...

$ getent passwd bin
bin: *: 3: 7: Comandos e origem dos binários: /: / sbin / nologin
$
... ainda hoje podemos encontrar uma binconta. Mas é praticamente indocumentado. A versão 5 do Linux Standard Base diz apenas…

Notas: O binID do usuário / ID do grupo está incluído para compatibilidade com aplicativos herdados. Novos aplicativos não devem mais usar o binID do usuário / o ID do grupo.
… Sem explicar a natureza do mecanismo de compatibilidade. Como Joey Hess colocou em 2001 :

bin:

AJUDA : Nenhum arquivo no meu sistema pertence ao usuário ou grupo bin. Que bom eles são? Historicamente, eles provavelmente eram os donos de binários /bin? Não é mencionado na FHS, na política Debian ou no changelog de base-passwd ou base-files.

A pergunta de M. Hess permanece sem resposta no documento Debian para seu pacote base-passwd até hoje , 17 anos depois.

Então, para que serve a binconta?

JdeBP
fonte
Uma pergunta relacionada é unix.stackexchange.com/questions/244989 .
JdeBP

Respostas:

34

bin não foi adequado para nada durante toda a vida útil do Linux.

Como os níveis de execução e a initgeração gettypor causa dos registros /etc/inittab, a binconta era obsoleta no mundo Unix antes do Linux ser inventado. Foi uma ideia dos anos 80 que foi quebrada pela invenção e adoção do NFS (Network File System) e de seu nobodyusuário. Sua presença contínua nos bancos de dados de contas de usuários no final de 2010, quando as pessoas no mundo comercial do Unix descontinuaram ativamente seu uso nos anos 90, é uma prova de inércia.

A idéia era que o binusuário possuísse vários diretórios como /bine /usr/bin(e de fato alguns dos outros mencionados em /unix//a/448799/5132 como /usr/mbine /usr/5bin) e o UID não definido / não- arquivos set-GID dentro deles. Também possuía arquivos e diretórios doco, como páginas de manual.

(Em casos mais extremos em alguns Unices, ele ainda possuía /e /etc, embora o último tenha sido um erro reconhecido na criação de uma imagem do sistema operacional SunOS. O primeiro foi apenas um desentendimento.)

Portanto, a permissão para aprovar atualizações de software, executando como usuário bin, não era uma permissão geral, executando como superusuário, para executar qualquer ação que fosse contra o sistema. O atualizador de software não pôde ler / gravar arquivos de usuários particulares, acessar caixas de correio e assim por diante; qual atualização de softwares como o superusuário, é claro.

Várias outras entradas de conta especiais no seu /etc/passwdarquivo devem ter senhas. Estas são as contas administrativas - bin, daemon, sys, uucp, lp, e adm. […] O principal motivo da existência dessas contas é a propriedade segura de comandos, scripts, arquivos e dispositivos. E alguns administradores instalam senhas para essas contas e realmente as usam. […] Uma binconta sem senha é extremamente útil para um disjuntor do sistema.
- Rebecca Thomas e Rik Farrow (1989). Guia de Administração do UNIX para o System V . Prentice Hall. ISBN 9780139428890. p. 452

O NFS foi inventado no início dos anos 80 e quebrou completamente essa ideia.

Já estava em terreno instável, como alude a citação citada. Isso ocorreu porque a capacidade de atualizar os arquivos de imagem do programa para utilitários básicos que o superusuário executou normalmente, como /bin/lspor exemplo, é um vetor direto para obter privilégios de superusuário e a divisão de acesso no uso de uma binconta apenas evitou acidentalmente modificar os diretórios errados em vez de impedir que um malfeitor obtenha acesso ao superusuário.

O advento do NFS destacou isso. Embora o NFS tenha um mecanismo para remapear a conta de superusuário para uma conta de usuário comum que não seja do sistema, ele não possui o mesmo para contas não raiz, como bin. Portanto, se alguém pudesse obter binacesso a um cliente NFS, ele teria binacesso aos arquivos do sistema operacional em um servidor NFS. De fato, ele permitiu que um superusuário em um cliente NFS, que seria remapeado para um usuário comum que não seja do sistema no servidor, para obter acesso do proprietário aos arquivos e diretórios do sistema operacional do servidor.

Isso era de conhecimento geral no início dos anos 90, e, na época, a sabedoria recebida era o chownque pertencia bina pertencer ao superusuário, para corrigir esse buraco que já havia se tornado um item de relatório padrão nas ferramentas de auditoria de segurança Unix e foi advertido contra como o documento de instalação do Sendmail.

No que diz respeito às perguntas de M. Hess, essa idéia nunca foi adotada no Debian, que só surgiu anos depois que era conhecida como uma má idéia no mundo Unix, que na verdade sabia que era uma má idéia antes do próprio Linux foi inventado. Os sistemas operacionais BSD cuja história faz volta estiramento na década de 1980 há muito que acabou com a propriedade real, mas ainda assim mantêm a conta de usuário no banco de dados conta. O FreeBSD converteu bin: binposse para root: wheelpropriedade em 1998 , por exemplo.

Leitura adicional

JdeBP
fonte
1
Eu vi arquivos hoje pertencentes ao binusuário e grupo nos sistemas AIX. É possível que a IBM o use por um motivo. Um conjunto de arquivos AIX que vem à mente é java. Vou ter que pular nos sistemas AIX no trabalho para verificar mais.
Peschke
Ainda há um número substancial de arquivos bin: pertencentes a bin em um sistema AIX hoje. O IBM Knowledge Center para AIX 7.2 , na seção Segurança - Protegendo o sistema operacional básico - Usuários, grupos e senhas, possui uma página vinculada, explicando o objetivo das várias "Contas de usuário especiais do sistema", incluindo bin.
Jeff Schaller
No link anterior, nãobin é um dos IDs de usuário padrão comuns que você pode remover . Também: 's entrada de senha é:binbin:!:2:2::/bin:
Jeff Schaller
-8

Existem 2 casos de uso que utilizo bin para 2018. 1: executável - principalmente para arquivos .exe do lado do servidor web, usados ​​para concluir funções. E 2: logs - às vezes eu coloco meus arquivos .log ou .dat na minha pasta bin.

Jeová diz
fonte
3
Você está falando sobre o /bindiretório? Ou o usuário da lixeira?
Sparhawk
6
Você está em algum tipo de Unix? Você está falando sobre .exearquivos.
User2357112 suporta Monica
5
E por que você colocaria arquivos de log ou arquivos de configuração em um diretório "bin"?
Lightness Races com Monica