Em um dos primeiros post publicados aqui foi sobre Como redefinir a senha root no Debian 12, ele explica com detalhes com deve ser o processo, agora de maneira simplificada trago como podemos fazer isso em sistemas como CentOS e Fedora.
Perder a senha do root pode ser um problema. No entanto, há duas maneiras de recuperar a senha:
A primeira, é utilizar uma conta de usuário que faça parte do grupo de “sudoers”, e possa trocar a senha do root utilizando o comando sudo:
$ sudo su –# passwd
Se não for possível entrar no sistema com alguma conta privilegiada, ainda assim é possível reiniciar o computador, e entrar no modo de emergência para efetuar a troca de senha do root.
Em sistemas Debian/Ubuntu, o passo a passo é:
Reiniciar o computador;
Entrar no Menu do Grub;
Escolher a linha do Menu que será usada para o boot;
Apertar a tecla “E” para editar a linha;
Procurar no editor a linha que começa com “linux” ou “linux16“;
No final desta linha, dar um espaço, e acrescentar o número 1;
Pressionar Ctrl-X para reiniciar o sistema;
Use o comando passwd para alterar a senha de root;
Reiniciar o sistema normalmente;
Em sistemas como CentOS/Fedora, especialmente aqueles que usam o SELinux, é um pouco diferente:
Reiniciar o computador;
Entrar no Menu do Grub;
Escolher a linha do Menu que será usada para o boot;
Apertar a tecla “E” para editar a linha;
Procurar no editor a linha que começa com “linux” ou “linux16“;
Procurar nesta linha por “ro” (readonly). Apague o “ro” e escreva no lugar: “rw init=/sysroot/bin/sh“
Pressionar Ctrl-X para reiniciar o sistema;
Digite “chroot /sysroot”;
Use o comando passwd para alterar a senha de root;
Se o sistema usar o SELinux, force-o a reetiquetar a partição raiz com o comando “touch /.autorelabel“
Digite “exit“;
Reinicie o sistema normalmente com o comando “reboot“;
Prontinho, agora você deve conseguir fazer login no seu sistema usando sua conta root.
Gostou? Se tiverem algumas sugestões, dica ou se ficou com alguma dúvida sobre este tutorial, não tem problema! Basta comentar no post que iremos responder suas dúvidas assim que for possível.
Existem várias maneiras de administrar uma conta de usuários local no Windows. A opção escolhida depende apenas do que for mais rápido para você e se você deseja, então vamos demostrar algumas possibilidades.
1º método netplwiz | control userpasswords2
Você pode chamar/executar esse recuso de diversas formas, por exemplo:
1 – Pressione as teclas Win + R do seu teclado e na janela de comando digitar netplwiz ou control userpasswords2 e clicar no botão OK.
2 – Na janela que surge “Contas de Usuário“, você adicionar, remover ou alterar uma conta, em nosso exemplo vamos alterar uma conta existe, clique no nome de usuário atual e selecione Propriedades.
3 – Navegue até a aba Geral (1), lá você pode alterar as descrições do usuário selecionado, já na aba Associação de Grupo (2) você pode alterar o grupo de acesso ao qual o usuário pertence.
2º método lusrmgr.msc
Outra forma de você ter acesso as propriedades de uma conta de usuário local é Gerenciador de Usuários e Grupos Locais “lusrmgr.msc“, nessa opção você tem mais opções de recursos de administração da conta.
1 – Pressione as teclas Win + R do seu teclado e na janela de comando digitar lusrmgr.msce clicar no botão OK.
2- Clique duas vezes na pasta Usuários na parte esquerda da janela vai exibir uma lista de todos os usuários.
3- Agora, clique duas vezes no nome da conta do usuário para abrir a janela de “Propriedades de Suporte” e lá você poderá fazer as alterações que deseja, na aba Geral veja que agora você tem opções como bloqueio e desativação de conta, bem como gerenciamento da senha.
Na aba “Membro de” você pode alterar o grupo de acesso ao qual o usuário pertence.
Na aba “Perfil” você pode definir o local onde os arquivos do perfil do usuário será guardado, script de logon e mapeamento de rede.
E se você clicar com o botão auxiliar do mouse em cima da conta você ainda terá mais opções (2) com (Re)Definir a senha, excluir a conta e outras opções.
3º método prompt de comando NET USER
ATENÇÃO: O prompt de comando dele ser executado com elevação de administrador.
Criar um usuário no CMD (Prompt de Comando) do Windows pode ser uma tarefa útil para administradores de sistemas ou para automatizar processos. Neste artigo, forneceremos exemplos de scripts para criar usuários utilizando comandos do CMD.
Digite o comando net user /? para conhecer as opções disponíveis.
net user /?
Use o comando abaixo para listar os usuários locais do computador:
net user
Para visualizarmos informações de um usuário local executamos o comando:
net user nome_usuario
Para visualizarmos os usuários de um grupo de usuário executamos o comando net localgroup nome_doGrupoDeUsuario. Se for nome com espaços coloque entre aspas: “Fulano de Tal”
net localgroup nome_doGrupoDeUsuario
Para adicionar um usuário local sem senha digite:
net user nome_usuario /add
Para adicionar um usuário local com senha digite:
net user nome_usuario senha_usario /add
Para alterar a senha de um usuário local digite:
net user nome_usuario nova_senha
Ou você pode digitar:
net user nome_usuario *
Para adicionar um usuário local ao Grupo de usuário digite:
net localgroup nome_Grupo nome_usuario /add
Para desativar/ ativar uma conta digite:
net user nome_usuario /active:no | yes
Para impedir/ permitir que o usuário realize a alteração da senha:
net user nome_usuario /passwordchg:no | yes
Para configurar para a conta do usuário expire em 06/04/2023:
net user nome_usuario /expires:06/04/2023
Para configurar para que a senha do usuário nunca expire:
net user nome_usuario /expires:never
Para define que o usuário Marcos não / requer senha para logar:
net user nome_usuario /passwordreq:no | yes
Para define que o usuário pode apenas se logar de Segunda á Sábado das 08:00 as 18:00hs:
net user nome_usuario /times:Se-Sá,08:00-18:00
Para permite que o usuário logue em qualquer horário.
net user nome_usuario /times:ALL
Para descobrir qual foi o Dia e Hora do Último logon do usuário.
net user nome_usuario | findstr /B /C:"Último logon"
Para excluir um usuário local:
net user nome_usuario /delete
Tarefas com Grupo de usuários
Digite o comando net localgroup para listar todos os grupos locais existentes no computador.
net localgroup
Criando o grupo local PenTest.
net localgroup PenTest /add
Adicionando o usuário ao grupo PenTest.
net localgroup PenTest nome_usuario /add
Deletando o grupo local Pentest.
net localgroup PenTest /del
Parâmetros opcionais:
Para acrescentar o campo Nome Completo e Descrição:
net user nome_usuario senha /add /fullname:"Nome Completo" /comment:"Descrição do usuário"
Para editar o nome completo ou a descrição, digite:
net user nome_usuario /fullname:"Novo nome Completo" /comment:"Nova descrição do usuário"
O exemplo a seguir adiciona uma conta de usuário para um usuário cujo nome completo é Jay Jamison e cujo nome de conta de usuário é jayj, com direitos de logon das 8h às 17h, de segunda a sexta-feira (sem espaços nas designações de horário), uma senha obrigatória (Cyk4 ^g3B) e o nome completo do usuário:
net user jayj Cyk4^g3B /add /passwordreq:yes /times:monday-friday,8am-5pm /fullname:"Jay Jamison"
Sintaxe do comando Net user
net user [ { | *} []] [/domain] net user [ { | *} /add [] [/domain]] net user [ [/delete] [/domain]]
Parâmetros que podem ser usados:
Sintaxe de opção de linha de comando
Descrição
/ativo:{não | sim}
Habilita ou desabilita a conta do usuário. Se a conta do usuário não estiver ativa, o usuário não poderá acessar os recursos do computador. O padrão é sim (ou seja, ativo).
/comentário:”<Texto>”
Fornece um comentário descritivo sobre a conta do usuário. Este comentário pode ter até 48 caracteres. Coloque o texto entre aspas.
/código do país:<NNN>
Usa os códigos de país/região do sistema operacional para implementar os arquivos de idioma especificados para a Ajuda e mensagens de erro de um usuário. Um valor 0 significa o código padrão de país/região.
Faz com que a conta do usuário expire se você especificar a data. As datas de expiração podem estar nos formatos [MM/DD/AAAA], [DD/MM/AAAA] ou [mmm,dd,AAAA], dependendo do código do país/região. Observe que a conta expira no início da data especificada. Para o valor do mês, você pode usar números, soletrar ou usar uma abreviatura de três letras (ou seja, janeiro, fevereiro, março, abril, maio, junho, julho, agosto, setembro, outubro, novembro, dezembro). Você pode usar dois ou quatro números para o valor do ano. Use vírgulas ou barras para separar partes da data. Não use espaços. Se você omitir <AAAA>, será assumida a próxima ocorrência da data (ou seja, de acordo com a data e hora do seu computador). Por exemplo, as seguintes entradas serão equivalentes se inseridas entre 10 de janeiro de 1994 e 8 de janeiro de 1995:9 de janeiro1/9/959 de janeiro de 19951/9
/nome completo:”<Nome>”
Especifica o nome completo de um usuário em vez de um nome de usuário. Coloque o nome entre aspas.
/homedir:<Caminho>
Define o caminho para o diretório inicial do usuário. O caminho deve existir.
/passwordchg:{sim | não}
Especifica se os usuários podem alterar suas próprias senhas. O padrão é sim .
/passwordreq:{sim | não}
Especifica se uma conta de usuário deve ter uma senha. O padrão é sim .
/profilepath:[<Caminho>]
Define um caminho para o perfil de logon do usuário. Este caminho aponta para um perfil de registro.
/scriptpath:<Caminho>
Define um caminho para o script de logon do usuário. <Path> não pode ser um caminho absoluto. <Caminho> é relativo a %systemroot%\System32\Repl\Import\Scripts.
Especifica os horários em que os usuários têm permissão para usar o computador. <Tempo> está limitado a incrementos de uma hora. Para os valores <Dia>, você pode soletrar os nomes dos dias ou usar abreviações (ou seja, M,T,W,Th,F,Sa,Su). Você pode usar a notação de 12 ou 24 horas para horas. Se você usar a notação de 12 horas, use AM e PM ou AM e PM. Todos os valores significam que um usuário sempre pode fazer logon. Um valor nulo (em branco) significa que um usuário nunca poderá fazer logon. Separe dia e hora com vírgulas e unidades separadas de dia e hora com ponto e vírgula (por exemplo, M,4AM-5PM;T,13PM-3PM ). Não use espaços ao designar horários.
/usercomment:”<Texto>”
Especifica que um administrador pode adicionar ou alterar o “Comentário do usuário” da conta. Coloque o texto entre aspas.
/estações de trabalho:{<NomedoComputador>[,…] | *}
Lista até oito estações de trabalho nas quais um usuário pode fazer logon na rede. Separe várias entradas na lista com vírgulas. Se /workstations não tiver nenhuma lista ou se a lista for um asterisco (*), os usuários poderão efetuar logon em qualquer computador.
4º método usando WMIC
Podemos gerenciar contas de usuário em um computador Windows usando comandos WMIC. Você pode encontrar comandos para várias operações.
O utilitário WMIC (linha de comando WMI) foi preterido a partir de Windows 10, versão 21H1, e a partir da versão de canal semestral 21H1 do Windows Server. Esse utilitário foi substituído pelo Windows PowerShell para WMI (confira Capítulo 7 – Como trabalhar com o WMI). Essa substituição se aplica somente ao utilitário WMIC (linha de comando WMI). O próprio WMI (Instrumentação de Gerenciamento do Windows) não é afetado. Confira também os recursos do Windows 10 que não estamos mais desenvolvendo.
Listar contas de usuário:
wmic useraccount get name
O comando acima listará os nomes de login de todos os usuários no computador local. Para imprimir o nome de login e o nome completo, podemos executar o comando abaixo.
wmic useraccount get name,fullname
Bloquear/ Desbloquear conta de usuário:
wmic useraccount where name='username' set disabled=false | true
Remova o requisito de senha para fazer login:
wmic useraccount where name='username' set PasswordRequired=false
Renomear conta de usuário:
wmic useraccount where name='username' rename newname
Impedir que o usuário altere a senha:
wmic useraccount where name='username' set passwordchangeable=false
Para saber o SID Digite o comando:
WMIC useraccount get name, sid
Caso você já tenha o nome do usuário e preciso apenas do SID pode usar o comando WMIC com o parâmetro WHERE NAME=“NOME“, substituindo a palavra NOME pelo nome de usuário a ser identificado:
wnic useraccount where name="nome" get sid
5º método usando Powershell
O PowerShell é uma ferramenta poderosa e flexível para administração, aqui nós veremos apenas alguns comando básicos.
Microsoft fornece uma coleção de cmdlets chamada Microsoft.PowerShell.LocalAccounts . Anteriormente, você precisava baixá-lo e importá-lo explicitamente para o PowerShell e também instalar o Windows Management Framework 5.1; nos sistemas operacionais Windows Server 2016 e Windows 10, a coleção de cmdlets está incluída como módulo padrão.
Existem 15 cmdlets no módulo LocalAccounts . Você pode ver a lista completa executando o seguinte comando:
Add-LocalGroupMember — Adicione um usuário ao grupo local
Disable-LocalUser —Desativa uma conta de usuário local
Enable-LocalUser — Habilite uma conta de usuário local
Get-LocalGroup — Veja as preferências do grupo local
Get-LocalGroupMember — Veja a lista de todos os membros do grupo local
Get-LocalUser — Veja as preferências de uma conta de usuário local
New-LocalGroup — Crie um novo grupo local
New-LocalUser — Crie uma nova conta de usuário local
Remove-LocalGroup — Remova um grupo local
Remove-LocalGroupMember — Remove um membro de um grupo local
Remove-LocalUser — Remova uma conta de usuário local
Rename-LocalGroup — Renomeie um grupo local
Rename-LocalUser — Renomeie uma conta de usuário local
Set-LocalGroup — Altere as configurações de um grupo local
Set-LocalUser — Altere as configurações da conta de um usuário local
Vamos ver como você pode usar esses comandos para executar tarefas comuns relacionadas ao gerenciamento de usuários locais
Primeiro, vamos obter uma lista de todas as contas de usuários locais na máquina. Usaremos o cmdlet Get-LocalUser :
Get-LocalUser
Como você pode ver, temos duas contas de usuários locais, e uma delas está desabilitada (aquela que tem “Falso” na coluna “Ativado”).
Se quiser gerar todas as propriedades e seus valores para uma conta de usuário local, você precisará usar o cmdlet Get-LocalUser com os seguintes parâmetros:
Get-LocalUser -Name ‘username’ | Select-Object *
Para obter o valor de um atributo de conta de usuário local específico, digite seu nome após o parâmetro Select-Object . Neste exemplo, queremos saber o valor do atributo PasswordLastSet para a conta com o nome de usuário “suporte”:
Criando um usuário local com PowerShell
Vamos criar um novo usuário com a ajuda do cmdlet New-LocalUser . Este cmdlet pode criar os seguintes tipos de contas de usuário:
Contas de usuários locais do Windows
Contas da Microsoft
Contas do Azure Active Directory
Primeiro você vai criar uma variável para armazenar a senha da conta. Ao criar uma conta de usuário local, nunca digite a senha como texto simples; sempre converta-o em uma string segura usando o parâmetro AsSecureString ou ConvertTo-SecureString . Aqui está o comando para criar uma nova conta de usuário local:
$password = Read-Host -AsSecureString
Após pressionar a tecla você deve digitar uma senha para a conta, agora digite o comando abaixo para criar uma nova conta de usuário utilizando a senha que foi criada.
Caso deseje criar uma conta de usuário sem senha basta digitar o comando abaixo:
New-LocalUser -Name 'User02' -Description 'Description of this account.' -NoPassword
Em um ambiente Windows 10, os usuários podem autorizar em suas contas da Microsoft, para que possamos criar uma nova conta de usuário local vinculada às credenciais de uma conta da Microsoft. Use o script a seguir para fazer isso (observe que você não precisa digitar a senha porque ela está armazenada na nuvem da Microsoft):
O Disable-LocalUser cmdlet desabilita contas de usuário locais. Quando uma conta de usuário é desabilitada, o usuário não pode fazer logon.
Esse comando desabilita a conta de usuário chamada Admin02.
Disable-LocalUser -Name "Admin02"
Esse comando obtém a conta de convidado interna usando Get-LocalUsero e a passa para o cmdlet atual usando o operador de pipeline(|). Esse cmdlet desabilita essa conta.
Get-LocalUser Guest | Disable-LocalUser
Excluindo uma conta de usuário local com PowerShell
Para remover uma conta de usuário local, use o cmdlet Remove-LocalUser :
Remove-LocalUser -Name “AdminContoso02”
Gerenciando grupos locais com PowerShell
Agora vamos voltar nossa atenção dos usuários locais para os grupos locais. Primeiro, vamos obter uma lista de todos os grupos em nosso Windows Server:
Get-LocalGroup
Adicionando um grupo local com PowerShell
Agora vamos criar um novo grupo:
New-LocalGroup -Nome 'Usuários Netwrix' -Descrição 'Grupo de usuários Netwrix'
Adicionando usuários a um grupo local com PowerShell
Para adicionar um usuário (ou grupo) a um grupo local, precisamos usar o cmdlet Add-LocalGroupMember. Por exemplo, suponha que desejamos adicionar usuários ao grupo Administradores local, mas não queremos adicioná-los um por um. Vamos adicionar um grupo aos Administradores locais, nomeadamente o grupo “Usuários Netwrix”:
Se o seu computador ou servidor fizer parte do domínio, você também poderá adicionar contas de domínio e grupos a grupos locais para conceder a esses usuários direitos locais especiais no servidor. Adicione-os usando o formato “DomainNameUser” (para um usuário) ou “DomainNameDomain Group” (para um grupo).
Visualizando a associação de um grupo específico com PowerShell
Agora vamos listar todos os membros de um determinado grupo local:
Get-LocalGroupMember -Grupo 'Usuários Netwrix'
Como você pode ver, o comando mostra todas as contas e grupos locais que são membros do grupo “Usuários Netwrix”. Embora apenas contas e grupos locais estejam listados aqui, este comando também mostrará quaisquer usuários e grupos de domínio, bem como todas as contas do Microsoft e do Azure AD.
Visualizando todos os grupos dos quais um usuário é membro usando o PowerShell Para listar todos os grupos dos quais um determinado usuário é membro, executaríamos o seguinte script:
foreach ($LocalGroup em Get-LocalGroup){
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue){
$LocalGroup.Nome
}
}
Removendo um grupo local com PowerShell
Para remover uma conta de usuário local de um grupo, você precisa usar o cmdlet Remove-LocalGroupMember :
Gerenciando usuários e grupos locais remotamente com PowerShell
Se quiser gerenciar contas e grupos de usuários locais remotamente, você precisará conectar-se às estações de trabalho remotas via WinRM usando os cmdlets Invoke-Command e Enter-PSSession . Por exemplo, se quisermos gerar a associação do grupo Admin local remotamente em vários computadores, precisamos executar o seguinte script:
Como você pode ver, é bastante fácil gerenciar grupos e usuários locais via PowerShell, mas para garantir a segurança, a conformidade e a continuidade dos negócios, é essencial auditar todas essas alterações.
Mais a frente daremos mais exemplos, por hoje ficamos por aqui.
Gostou? Se tiverem algumas sugestões, dica ou se ficou com alguma dúvida sobre este tutorial, não tem problema! Basta comentar no post que iremos responder suas dúvidas assim que for possível.
As senhas são a primeira linha de defesa na segurança de qualquer sistema, incluindo Linux. O Linux é considerado um dos sistemas mais seguros do mundo devido à maneira que seus processos são executados. Porém, cada sistema operacional depende, de uma maneira ou de outra, de senhas.
O Linux gerencia essas senhas de maneira semelhante a outros sistemas. Entretanto, existem dois arquivos importantes para cuidar desse gerenciamento. O primeiro é o arquivo é o /etc/passwd, onde você encontra todos os usuários no sistema. Adicionalmente, é mostrado em qual grupo do sistema ele pertence. É possível que vejamos muitos usuários, mas poucos poderão logar por serem usuários do sistema.
Para ver o conteúdo do arquivo podemos usar o seguinte comando:
cat /etc/passwd
O segundo arquivo do Linux que está relacionado com as senhas é o /etc/shadow. Neste arquivo, podemos ver as senhas criptografadas dos usuários e se eles possuem uma chave SSH.
cat /etc/shadow
O recomendado é que todas as senhas sejam fortes, para que ninguém consiga adivinhá-las. Mas, se você suspeita que a senha tenha sido comprometida, é possível mudá-la.
Recomendamos que a alteração de senhas seja feito com frequência!
Como Alterar Senha Linux?
No terminal digite o seguinte comando:
passwd
Após executar o comando, será solicitado será solicitado que insira a senha atual e depois a nova senha e para redigir novamente. Neste caso, quando nenhum usuário é especificado, estamos alterando a senha logado.
Como Alterar Senha Linux para Outro Usuário?
Também é possível mudar a senha para outro usuário no mesmo sistema. Para isto, precisamos logar como usuário root e adicionar o nome do usuário no comando passwd.
O comando fica assim:
passwd nomeDoUsuário
Por exemplo, para alterar a senha do usuário suporte:
passwd suporte
Bem simples, não é? Agora você já sabe como alterar senha no Linux!
na console do Zabbix, até a próxima!
Gostou? Se tiverem algumas sugestões, dica ou se ficou com alguma dúvida sobre este post, não tem problema! Basta comentar no que iremos responder suas dúvidas assim que for possível.