Eu preciso de um comando para listar todos os usuários no terminal. E como adicionar, excluir, modificar usuários do terminal.
Isso poderia ajudar na administração de suas contas facilmente por terminal.
awk -F: '{ print $1 }' /etc/passwd
Eu preciso de um comando para listar todos os usuários no terminal. E como adicionar, excluir, modificar usuários do terminal.
Isso poderia ajudar na administração de suas contas facilmente por terminal.
awk -F: '{ print $1 }' /etc/passwd
Respostas:
Para listar todos os usuários locais, você pode usar:
cut -d: -f1 /etc/passwd
Para listar todos os usuários capazes de se autenticar (de alguma forma), incluindo não local, consulte esta resposta .
Alguns comandos mais úteis de gerenciamento de usuários (também limitados a usuários locais ):
Para adicionar um novo usuário, você pode usar:
sudo adduser new_username
ou:
sudo useradd new_username
Consulte também: Qual é a diferença entre adduser e useradd?
Para remover / excluir um usuário, primeiro você pode usar:
sudo userdel username
Em seguida, convém excluir o diretório inicial da conta de usuário excluída:
sudo rm -r / home / nome de usuário
Por favor, use com cuidado o comando acima!
Para modificar o nome de usuário de um usuário:
usermod -l new_username old_username
Para alterar a senha de um usuário:
sudo passwd username
Para alterar o shell para um usuário:
sudo chsh username
Para alterar os detalhes de um usuário (por exemplo, nome real):
sudo chfn username
Para adicionar um usuário ao sudo
grupo:
adduser username sudo
ou
usermod -aG sudo username
E, claro, ver também: man adduser
, man useradd
, man userdel
... e assim por diante.
sudo chfn <username>
alterações nos detalhes do usuário (por exemplo, nome real). Tentei adicionar isso como um comentário, mas recebi um erro ao me dizer que devo ter +50 de reputação para fazer isso.
Basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o (s) comando (s) abaixo:
cat /etc/passwd
OU
less /etc/passwd
more /etc/passwd
Você também pode usar o awk: awk
awk -F':' '{ print $1}' /etc/passwd
adduser
, useradd
deve se limitar a scripts em que o autor realmente sabe o que está fazendo.
A maneira mais fácil de obter esse tipo de informação é getent
- consulte a página de manual do getent
comando . Embora esse comando tenha a mesma saída cat /etc/passwd
que é útil lembrar, ele fornecerá listas de vários elementos no sistema operacional.
Para obter uma lista de todos os usuários digitados (conforme os usuários estão listados /etc/passwd
)
getent passwd
Para adicionar um usuário newuser para o sistema você deve digitar
sudo adduser newuser
para criar um usuário com todas as configurações padrão aplicadas.
Bônus: Para adicionar um usuário (por exemplo anyuser ) a um grupo (por exemplo, CD-ROM ) tipo
sudo adduser anyuser cdrom
Você exclui um usuário (por exemplo, obsoleto ) com
sudo deluser obsolete
Se você deseja excluir o diretório inicial / e-mails, digite
sudo deluser --remove-home obsolete
E
sudo deluser --remove-all-files obsolete
removerá o usuário e todos os arquivos pertencentes a esse usuário em todo o sistema.
getent passwd
sendo o comando certo
Isso deve obter, na maioria das situações normais , todos os usuários normais (não pertencentes ao sistema, não estranhos, etc.):
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
Isso funciona por:
/etc/passwd
:
como delimitadorIsso ocorre porque em muitos sistemas linux, nomes de usuário acima de 1000 são reservados para usuários sem privilégios (você poderia dizer normal). Algumas informações sobre isso aqui :
Um ID do usuário (UID) é um número inteiro positivo exclusivo designado por um sistema operacional semelhante ao Unix para cada usuário. Cada usuário é identificado no sistema por seu UID, e os nomes de usuário geralmente são usados apenas como uma interface para humanos.
Os UIDs são armazenados, juntamente com seus nomes de usuário correspondentes e outras informações específicas do usuário, no arquivo / etc / passwd ...
O terceiro campo contém o UID e o quarto campo contém o ID do grupo (GID), que por padrão é igual ao UID para todos os usuários comuns.
Nos kernels Linux 2.4 e acima, os UIDs são números inteiros de 32 bits sem sinal que podem representar valores de zero a 4.294.967.296. No entanto, é aconselhável usar valores apenas até 65.534, a fim de manter a compatibilidade com sistemas que usam kernels ou sistemas de arquivos mais antigos que só podem acomodar UIDs de 16 bits.
O UID 0 tem um papel especial: é sempre a conta raiz (ou seja, o usuário administrativo onipotente). Embora o nome de usuário possa ser alterado nessa conta e contas adicionais possam ser criadas com o mesmo UID, nenhuma ação é recomendada do ponto de vista de segurança.
O UID 65534 geralmente é reservado para ninguém, um usuário sem privilégios de sistema, em oposição a um usuário comum (ou seja, sem privilégios). Esse UID é frequentemente usado para pessoas que acessam o sistema remotamente via FTP (protocolo de transferência de arquivos) ou HTTP (protocolo de transferência de hipertexto).
Os UIDs 1 a 99 são tradicionalmente reservados para usuários especiais do sistema (às vezes chamados de pseudo-usuários), como wheel, daemon, lp, operator, news, mail, etc. algumas tarefas administrativas e, portanto, precisam de mais privilégios do que aqueles concedidos a usuários comuns.
Algumas distribuições Linux (ou seja, versões) iniciam UIDs para usuários não privilegiados aos 100. Outras, como a Red Hat, iniciam com 500 e outras ainda, como o Debian, iniciam com 1000. Devido às diferenças entre distribuições, manual intervenção pode ser necessária se várias distribuições forem usadas em uma rede em uma organização.
Além disso, pode ser conveniente reservar um bloco de UIDs para usuários locais, como 1000 a 9999, e outro bloco para usuários remotos (ou seja, usuários em outras partes da rede), como 10000 a 65534. O importante é decidir em um esquema e aderir a ele.
Uma das vantagens dessa prática de reservar blocos de números para tipos específicos de usuários é que torna mais conveniente pesquisar nos logs do sistema atividades suspeitas do usuário.
Ao contrário da crença popular, não é necessário que cada entrada no campo UID seja única. No entanto, UIDs não exclusivos podem causar problemas de segurança e, portanto, os UIDs devem ser mantidos exclusivos em toda a organização. Da mesma forma, a reciclagem de UIDs de usuários antigos deve ser evitada pelo maior tempo possível.
getent
vez de ler diretamente /etc/passwd
e procurar UID_MIN
/ em UID_MAX
vez de codificar os valores:getent passwd | awk -F: "{if (\$3 >= $(awk '/^UID_MIN/ {print $2}' /etc/login.defs) && \$3 <= $(awk '/^UID_MAX/ {print $2}' /etc/login.defs)) print \$1}"
lista de todos os usuários que podem efetuar login (nenhum usuário do sistema gosta: bin, deamon, email, sys, etc.)
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
adicionar novo usuário
sudo adduser new_username
ou
sudo useradd new_username
excluir / remover nome de usuário
sudo userdel username
Se você deseja excluir o diretório inicial (o diretório / home / nome de usuário)
sudo deluser --remove-home username
ou
sudo rm -r /path/to/user_home_dir
Se você deseja excluir todos os arquivos do sistema deste usuário (não é apenas o diretório inicial)
sudo deluser --remove-all-files
adduser
e useradd
. Também adicione o sudo
prefixo-ao primeiro comando. O arquivo de sombra da senha pode ser lido apenas como raiz.
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
me mostrou todos os usuários, incluindo bin, daemon, etc. e lançou este aviso: seqüência de escape \$' treated as plain
$' Eu encontrei este post stackoverflow.com/a/25867768/847954 e acrescentou mais uma barra invertida e funcionou muito bem:awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow
Ok, aqui está um truque que o ajudará a resolver isso. O terminal possui preenchimento automático se você digitar user e pressionar a tecla Tab duas vezes, listará todos os comandos existentes com o usuário como os 4 primeiros caracteres.
user (tab tab)
dá-me como opções possíveis useradd userdel usermod usuários users-admin
se você quiser saber mais sobre um comando google it ou digite man man useradd gives useradd - crie um novo usuário ou atualize as novas informações padrão do usuário ... ...
Para listar os usuários, você deve seguir o que Mitch disse.
Espero que ajude a adorar a conclusão de guias no bash me salve de lembrar das coisas.
Para descobrir os usuários que possuem diretórios pessoais na pasta / home na máquina, execute os seguintes comandos
cd /home
ls
Você pode ver os usuários que têm autorização para efetuar login no servidor. Se queremos examinar os arquivos de qualquer usuário, você deve ser o usuário root.
/home
. Embora o Ubuntu coloque os diretórios de usuário por padrão, ele não é de forma alguma obrigatório.
ls /home
também pode conter diretórios de usuários excluídos.
sed 's/:.*//' /etc/passwd