AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 410244
Accepted
nux
nux
Asked: 2014-01-25 11:20:51 +0800 CST2014-01-25 11:20:51 +0800 CST 2014-01-25 11:20:51 +0800 CST

Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

  • 772

Eu preciso de um comando para listar todos os usuários, bem como comandos para adicionar, excluir e modificar usuários do terminal - quaisquer comandos que possam ajudar na administração de contas de usuário facilmente pelo terminal.

command-line
  • 9 9 respostas
  • 3471510 Views

9 respostas

  • Voted
  1. Best Answer
    Radu Rădeanu
    2014-01-25T12:23:12+08:002014-01-25T12:23:12+08:00

    Listar

    Para listar todos os usuários locais , 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 .

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

    Adicionar

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

    sudo adduser new_username

    ou:

    sudo useradd new_username

    Veja também: Qual é a diferença entre adduser e useradd?

    Para remover/excluir

    Para remover/excluir um usuário, primeiro você pode usar:

    sudo userdel username

    Então você pode querer 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

    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 de 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 sudogrupo:

    adduser username sudo

    ou

    usermod -aG sudo username

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

    • 1347
  2. Mitch
    2014-01-25T11:28:53+08:002014-01-25T11:28:53+08:00

    Basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Ao abrir, execute o(s) comando(s) abaixo:

    cat /etc/passwd
    

    OU

    less /etc/passwd
    more /etc/passwd
    

    Você também pode usar awk: awk

    awk -F':' '{ print $1}' /etc/passwd
    
    • 114
  3. guntbert
    2014-02-03T10:50:08+08:002014-02-03T10:50:08+08:00

    A maneira mais fácil de obter esse tipo de informação é getent- consulte a página de manual do getentcomandoÍcone da página de manual . Embora esse comando forneça a mesma saída cat /etc/passwd, é útil lembrar porque fornecerá listas de vários elementos no sistema operacional.

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

    getent passwd
    

    Para adicionar um usuário newuser ao sistema, 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 anyuser ) a um grupo (por exemplo cdrom ) digite

    sudo adduser anyuser cdrom
    

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

    sudo deluser obsolete
    

    Se você quiser excluir o diretório inicial/e-mails dele, digite

    sudo deluser --remove-home obsolete
    

    E

    sudo deluser --remove-all-files obsolete
    

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

    • 78
  4. Ravexina
    2017-06-15T04:51:15+08:002017-06-15T04:51:15+08:00

    Você também pode usar compgen o GNU bash embutido :

    compgen -u
    

    Will lista todos os usuários.

    • 53
  5. Wilf
    2015-06-09T12:03:28+08:002015-06-09T12:03:28+08:00

    Isso deve obter, na maioria das situações normais , todos os usuários normais (não do sistema, não estranhos, etc):

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

    Isso funciona por:

    • lendo de/etc/passwd
    • usando :como delimitador
    • se o terceiro campo (o número de ID 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ário acima de 1000 são reservados para usuários sem privilégios (você poderia dizer normais). Algumas informações sobre isso aqui :

    Um ID de usuário (UID) é um número inteiro positivo exclusivo atribuído por um sistema operacional do tipo 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 superiores, os UIDs são inteiros de 32 bits sem sinal que podem representar valores de zero a 4.294.967.296. No entanto, é aconselhável usar apenas valores até 65.534 para manter a compatibilidade com sistemas que usam kernels mais antigos ou sistemas de arquivos que só podem acomodar UIDs de 16 bits.

    O UID de 0 tem um papel especial: é sempre a conta root (ou seja, o usuário administrativo onipotente). Embora o nome de usuário possa ser alterado nesta conta e contas adicionais possam ser criadas com o mesmo UID, nenhuma ação é sensata do ponto de vista da 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 por indivíduos que acessam o sistema remotamente via FTP (protocolo de transferência de arquivos) ou HTTP (protocolo de transferência de hipertexto).

    Os UIDs de 1 a 99 são tradicionalmente reservados para usuários especiais do sistema (às vezes chamados de pseudousuários), como wheel, daemon, lp, operator, news, mail, etc. algumas tarefas administrativas e, portanto, precisam de mais privilégios do que aqueles concedidos aos usuários comuns.

    Algumas distribuições Linux (ou seja, versões) iniciam UIDs para usuários não privilegiados em 100. Outras, como Red Hat, iniciam em 500, e ainda outras, como Debian, iniciam em 1000. Por causa das diferenças entre as 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 outros lugares da rede), como 10000 a 65534. O importante é decidir em um esquema e aderir a ele.

    Entre as vantagens dessa prática de reservar blocos de números para determinados tipos de usuários é que torna mais conveniente pesquisar nos logs do sistema por atividades suspeitas de usuários.

    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 ex-usuários deve ser evitada pelo maior tempo possível.

    • 33
  6. Donovan Vesters
    2014-09-26T07:47:50+08:002014-09-26T07:47:50+08:00

    lista de todos os usuários que podem fazer 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 /remover nome de usuário

    sudo userdel username
    

    Se você deseja excluir o diretório inicial (o 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 inicial)

    sudo deluser --remove-all-files
    
    • 19
  7. user239243
    2014-01-25T11:38:26+08:002014-01-25T11:38:26+08:00

    Ok, aqui está um truque que irá ajudá-lo a resolver isso. O terminal tem preenchimento automático se você digitar user e pressionar 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 users users-admin
    se você quiser saber mais sobre um comando google it ou digite man man useradd dá useradd - crie um novo usuário ou atualize as informações padrão do novo usuário ... ...

    para listar usuários você deve seguir o que Mitch disse.

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

    • 8
  8. anvesh
    2014-12-19T14:53:44+08:002014-12-19T14:53:44+08:00

    Para descobrir os usuários que têm 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 fazer login no servidor. Se quisermos examinar os arquivos de qualquer usuário, você deve ser o usuário root.

    • 7
  9. WinEunuuchs2Unix
    2019-11-14T17:33:17+08:002019-11-14T17:33:17+08:00

    A primeira resposta recomenda:

    cut -d: -f1 /etc/passwd
    

    Mas usando isso e contando o número de usuários, você obtém:

    $ cut -d: -f1 /etc/passwd | wc -l
    46
    

    46 usuários para um laptop são muito!. Então use isso em vez disso:

    $ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync)' | cut -d: -f1
    root
    rick
    guest-atkb2q
    guest-u4sf2i
    guest-rmlbtg
    guest-mz53vp
    

    Para remover contas de convidados (que não têm arquivos salvos de qualquer maneira), use:

    $ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync|guest-)' | cut -d: -f1
    root
    rick
    

    Alguns usuários de amostra removidos da listagem são:

    systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    sync:x:4:65534:sync:/bin:/bin/sync
    guest-atkb2q:x:999:999:Guest:/tmp/guest-atkb2q:/bin/bash
    

    Acontece que a maioria dos usuários em um sistema de usuário único são, na verdade, programas que se configuraram como usuários.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve