Depois de ler Listar todos os usuários humanos , notei que há uma conta de usuário chamada 'ninguém' no meu sistema Ubuntu.
Também notei que posso fazer login nesta conta no terminal usando o seguinte comando e minha senha:
sudo su nobody
Isso não me importa, mas quero saber qual é o objetivo deste usuário? Ele é criado por padrão em uma nova instalação do Ubuntu ou é criado instalando um pacote específico?
users
username
switch-user
Radu Rădeanu
fonte
fonte
sudo su nobody
return Esta conta não está disponível no momento. porque o shell para o usuárionobody
está definido como/usr/sbin/nologin
(getent passwd nobody
).root_squash
ele mapeará a raiz para ninguém em sistemas remotos. Isso é mais ou menos exatamente o oposto do que essa resposta indicaRespostas:
Está lá para executar coisas que não precisam de permissões especiais. Geralmente, é reservado para serviços vulneráveis (httpd, etc), para que, se forem invadidos, tenham um dano mínimo no restante do sistema.
Compare isso com a execução de algo como um usuário real, se esse serviço fosse comprometido (servidores da Web são ocasionalmente explorados para executar código arbitrário), ele seria executado como esse usuário e teria acesso a tudo o que o usuário tivesse. Na maioria dos casos, isso é tão ruim quanto obter root.
Você pode ler um pouco mais sobre o usuário ninguem no Ubuntu Wiki:
Para responder aos seus acompanhamentos:
Por que não consigo acessar esta conta
su nobody
?sudo grep nobody /etc/shadow
mostrará que ninguém não tem uma senha e você não podesu
sem uma senha de conta. A maneira mais limpa ésudo su nobody
fazê-lo. Isso deixará você em umash
concha bem desolada .Você pode dar um exemplo específico quando é indicado o uso dessa conta?
Quando não são necessárias permissões para as operações de um programa. Isso é mais notável quando nunca haverá atividade em disco.
Um exemplo real disso é
memcached
(um cache / banco de dados / coisa na memória de valor-chave), sentado no meu computador e no meu servidor rodando na conta de ninguém. Por quê? Porque ele simplesmente não precisa de permissões e fornecer uma conta com acesso de gravação a arquivos seria apenas um risco desnecessário.fonte
su nobody
e 2) você pode dar um exemplo específico quando é indicado o uso dessa conta?su
é um usuário comum, deve fornecer a senha do usuário de destino. Tentesudo -i
então asu nobody
partir do shell raiz (que não exigirá uma senha).Network File System
mapeiaroot
paranobody
que a raiz local não possa acessar tudo como a raiz remota.nobody
é realmente / principalmente usado pelo NFS como estados linuxstandardbase .Informações retiradas de http://en.wikipedia.org/wiki/Nobody_(username) .
fonte
nobody
é estritamente para NFS e não deve ser usado por outros serviços e, certamente, não por administradores de sistema. Obrigado.O usuário ninguém está reservado apenas para NFS.
As respostas acima estão bastante erradas, porque elas assumem que esse
nobody
é um ID de usuário anônimo / convidado "genérico".No modelo de controle de acesso UNIX / Linux, não existem IDs de usuário no estilo anônimo / convidado e estas são más sugestões:
nobody
, especialmente servidores, para limitar os danos que poderiam ser causados por um usuário mal-intencionado que ganhou o controle deles. ", devido ao seguinte: " No entanto, a utilidade dessa técnica é reduzida se mais de um daemon é executado desta maneira, porque ganhar o controle de um daemon forneceria o controle de todos ".memcached
(um cache / banco de dados / coisa na memória de valor-chave), sentado no meu computador e no meu servidor executando sob anobody
conta. Por quê? Porque simplesmente não precisa de permissões e para conceder uma conta que tivesse acesso de gravação a arquivos seria apenas um risco desnecessário " .O
nobody
nome de usuário com o ID de usuário 65534 foi criado e reservado para uma finalidade específica e deve ser usado apenas para essa finalidade: como um espaço reservado para usuários "não mapeados" e IDs de usuário nas exportações da árvore NFS.Ou seja, a menos que o mapeamento de usuário / ID esteja configurado para exportação de árvore NFS, todos os arquivos na exportação parecerão pertencentes a
nobody
. O objetivo disso é impedir que todos os usuários no sistema de importação acessem esses arquivos (a menos que tenham "outras" permissões), pois nenhum deles (excetoroot
) pode ser / se tornarnobody
.Portanto, é uma péssima idéia usá-lo
nobody
para qualquer outra finalidade, porque sua finalidade é ser um nome de usuário / ID de usuário para arquivos que não devem estar acessíveis a ninguém.A entrada do Wiki também está muito errada.
A prática do UNIX / Linux é criar uma nova conta para cada "aplicativo" ou área de aplicativo que precise de um domínio de controle de acesso separado e nunca reutilizar
nobody
fora do NFS .fonte
root_squash
on,root
é mapeado para o usuárionobody
; portanto, os arquivos com proprietárionobody
não fazem absolutamente nenhum sentido. Além disso, a afirmação de que os arquivos pertencentes a ninguém devem estar inacessíveis a ninguém faz pouco sentido, pois as permissões de arquivos são separadas da propriedade no UNIX. Eu não estou dizendo que tudo na resposta está errado, apenas que elementos dela fazem pouco ou nenhum sentido para mim :)nobody
. Está dizendo a você que onobody
NFS deve usar no mapeamento de permissões, e esse é o ponto mais importante para mim. Como NFS usanobody
é menos interessante do que o fato de que ele não usarnobody
. Obrigado.man exports
, ele pode estar muito confuso.O
nobody
usuário é criado por padrão em uma nova instalação (marcada no Ubuntu Desktop 13.04).fonte
ninguém é uma conta especial de usuário e grupo. Por ser um nome de usuário real (e nome do grupo) e pode ser usado por processos e até usuários, não é literalmente ninguém . Por exemplo, algumas configurações do Apache não possuem ninguém como usuário / grupo que possui os arquivos e diretórios do site. O problema ocorre quando vários processos podem usar o usuário ninguém, como diretórios NFS e o servidor da web.
fonte
Correção menor para ' O usuário ninguém está reservado apenas para NFS. ' responda. O
nobody
usuário também é usado para contêineres sem privilégios com montagens de ligação no momento.Isso é obtido no systemd-nspawn, especificamente na opção --bind mount:
systemd-nspawn
fonte