Questão Um comando para listar todos os usuários? E como adicionar, excluir, modificar usuários?


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 pelo terminal.


702
2018-01-24 20:23


origem


resposta sed sed 's/:.*//' /etc/passwd - Avinash Raj
lista de usuários: awk -F: '{ print $1 }' /etc/passwd - saviour123


Respostas:


Para listar todos local usuários que você pode usar:

cut -d: -f1 /etc/passwd

Para listar todos os usuários capazes de autenticar (de alguma forma), incluindo não locais, veja esta resposta: https://askubuntu.com/a/414561/571941

Alguns comandos mais úteis de gerenciamento de usuários (também limitados a local Comercial):

Para adicionar um novo usuário, você pode usar:

sudo adduser novo usuário

ou:

sudo useradd novo usuário

Veja 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, você pode querer excluir o diretório inicial da conta de usuário excluída:

sudo rm -r / home /username

(Por favor, use com cuidado o comando acima!)

Para modificar o nome de usuário de um usuário:

usermod -l novo usuário Nome de usuário antigo

Para alterar a senha de um usuário:

sudo passwd username

Para alterar o shell de um usuário:

sudo chsh username

Para alterar os detalhes de um usuário (por exemplo, nome real):

sudo chfn username

E, claro, veja também: man adduser, man useradd, man userdel... e assim por diante.


940
2018-01-24 19:28



Radu esqueceu de mencionar sudo chfn <username> que altera os detalhes do usuário (por exemplo, nome real). Eu tentei adicionar isso como um comentário, mas eu tenho erro me dizendo que eu devo ter +50 reputação para fazê-lo. - Mikaela
Eu acho que deve ser sublinhado que a resposta correta para a questão vinculada é askubuntu.com/a/381646/16395 --- caso contrário, você deve levar em conta as políticas do GID / UID Ubuntu manualmente. A resposta aceita não é tão clara. - Rmano
sudo userdel DOMAIN \\ johndoe me dá o erro: "userdel: não é possível remover a entrada 'DOMAIN \ johndoe' de / etc / passwd - Eu olhei em / etc / passwd e eles nem estão lá, provavelmente porque é um" domínio "conta? - 00fruX
@ 00fruX Sim ... Se você estiver usando um banco de dados de usuários centralizado, precisará lidar com isso diretamente. - Oli♦
+1 para Qual é a diferença entre adduser e useradd? - sonlexqt


Apenas pressione Ctrl+Alt+T no seu teclado para abrir o Terminal. Quando se abre, 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

73
2018-01-24 19:38



como adicionar usuários por comando? - nux
Você pode usar useradd comando. - Mitch♦
@nux Um pouco atrasado para a festa, mas a partir do uso da linha de comando adduser em vez de, useradd deve ser limitado a scripts onde o autor realmente sabe o que está fazendo. - flindeberg


A maneira mais fácil de obter esse tipo de informação é getent - Vejo manpage para o getent comando Manpage icon. Enquanto esse comando fornece a mesma saída cat /etc/passwd é útil lembrar, porque lhe dará listas de vários elementos no sistema operacional.

Para obter uma lista de todos os usuários que você digita (como os usuários são listados em /etc/passwd)

getent passwd

Para adicionar um usuário novo usuário para o sistema que você digitaria

sudo adduser newuser

para criar um usuário que tenha todas as configurações padrão aplicadas.

Bônus: para adicionar qualquer usuário (por exemplo qualquer usuário) para um grupo (por exemplo cdrom) tipo

sudo adduser anyuser cdrom

Você exclui um usuário (por exemplo obsoleto) com

sudo deluser obsolete

Se você quiser apagar o seu diretório pessoal / e-mails, digite

sudo deluser --remove-home obsolete

E

sudo deluser --remove-all-files obsolete

irá remover o usuário e todos os arquivos pertencentes a esse usuário em todo o sistema.


52



É útil lembrar que o getent não imprime apenas a saída de usuários em / etc / passwd, mas todos os usuários em todos os backends de userdb configurados em um determinado sistema, seja ele / etc / passwd ou LDAP, etc. - Marcin Kaminski


Isso deve ficar sob a maioria das situações normais, todos os usuários normais (não-sistema, não estranhos, etc):

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Isso funciona por:

  • lendo de dentro /etc/passwd
  • usando : como um delimitador
  • Se o terceiro campo (o número de identificação do usuário) for maior que 1000 e não 65534, o primeiro campo (o nome de usuário do usuário) será impresso.

Isso ocorre porque em muitos sistemas Linux, nomes de usuários 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 inteiro positivo exclusivo atribuído por um Unix-like   sistema operacional para cada usuário. Cada usuário é identificado para o sistema   por seu UID, e os nomes de usuários geralmente são usados ​​apenas como uma interface para   humanos.

UIDs são armazenados, juntamente com seus nomes de usuário e outros   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   Comercial.

Nos kernels 2.4 e superiores do Linux, os UIDs são números inteiros de 32 bits não assinados   que podem representar valores de zero a 4.294.967.296. No entanto, é   aconselhável utilizar apenas valores até 65.534 para manter   compatibilidade com sistemas que usam kernels mais antigos ou sistemas de arquivos   acomodar apenas UIDs de 16 bits.

O UID de 0 tem uma função especial: é sempre a conta raiz (ou seja,   o usuário administrativo onipotente). Embora o nome do usuário possa ser   alterado nesta conta e contas adicionais podem ser criadas com   o mesmo UID, nenhuma ação é sábia do ponto de vista da segurança.

O UID 65534 é comumente reservado para ninguém, um usuário sem sistema   privilégios, em oposição a um usuário comum (ou seja, não privilegiado).   Este UID é frequentemente usado para indivíduos que acessam o sistema remotamente   via FTP (protocolo de transferência de arquivos) ou HTTP (transferência de hipertexto   protocolo).

Os UIDs 1 a 99 são tradicionalmente reservados para usuários especiais do sistema   (às vezes chamado de pseudo-usuários), como roda, daemon, lp, operador,   notícias, e-mail, etc. Esses usuários são administradores que não precisam do total   root poderes, mas que realizam algumas tarefas administrativas e, portanto, precisam   mais privilégios do que aqueles dados a usuários comuns.

Algumas distribuições do Linux (ou seja, versões) começam os UIDs para   usuários não privilegiados em 100. Outros, como a Red Hat, iniciam-nos em   500, e ainda outros, como o Debian, inicie-os em 1000. Por causa do   diferenças entre distribuições, a intervenção manual 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 (por exemplo,   usuários em outros locais da rede), como 10000 a 65534. O importante   coisa é decidir sobre um esquema e aderir a ele.

Entre as vantagens desta prática de reservar blocos de números   para determinados tipos de usuários é que isso torna mais conveniente   pesquisar nos logs do sistema por atividade suspeita do usuário.

Ao contrário da crença popular, não é necessário que cada entrada no   O campo UID é exclusivo. No entanto, UIDs não exclusivos podem causar segurança   problemas e, portanto, os UIDs devem ser mantidos únicos em todo o   organização. Da mesma forma, a reciclagem de UIDs de antigos usuários deve ser   evitado pelo maior tempo possível.


21





Você pode usar compgen embutido também:

compgen -u

Irá listar todos os usuários.


21





Lista de todos os usuários que podem fazer o login (nenhum usuário do sistema como: bin, deamon, mail, sys, etc.)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

adicionar novo usuário

sudo adduser new_username

ou

sudo useradd new_username

excluir/ remove o nome de usuário

sudo userdel username

Se você deseja excluir o diretório inicial (padrão, o diretório / home / username)

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 base)

sudo deluser --remove-all-files

15



Talvez você deva explicar a diferença entre adduser e useradd. An também adicionar o sudo-prefixo ao primeiro comando. O arquivo de sombra da senha só pode ser lido como root. - s3lph
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow mostrou-me todos os usuários, incluindo bin, daemon, etc. e lançou este aviso: escape sequence \$' treated as plain $ 'Encontrei este post stackoverflow.com/a/25867768/847954  e adicionei mais uma barra invertida e funcionou bem: awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow - jeff musk


Ok, aqui está um truque que irá ajudá-lo a resolver isso. O terminal tem preenchimento automático se você digitar o usuário e apertar a tecla Tab duas vezes, ele listará todos os comandos que existem com o usuário como os primeiros 4 caracteres.

user (tab tab)

me dá como opções possíveis     useradd userdel usermod usuários users-admin
se você quiser saber mais sobre um comando google ou digite man     man useradd dá     useradd - cria um novo usuário ou atualiza as informações do novo usuário padrão     ...     ...

para listar os usuários, você deve ir com o que Mitch disse.

Espero que ajude eu amo a conclusão de tabulação no bash me salva de lembrar as coisas.


7





Para descobrir os usuários que possuem diretórios home na pasta / home-na máquina, execute os seguintes comandos

cd /home
ls 

Você pode então ver os usuários que têm autorização para efetuar login no servidor. Se quisermos examinar os arquivos de qualquer usuário, você deve ser o usuário root.


6



Isso só mostra o conteúdo de /home. Enquanto o Ubuntu coloca diretórios de usuários lá por padrão, não é obrigatório. - David Foerster