Como criar um usuário Linux onde o sudo solicita a senha root e não o usuário atual

Como criar um usuário Linux onde o sudo solicita a senha root e não o usuário atual

Criei um novo usuário com, addusermas quando tentei sudo da conta dele, obtive xxxx * is not in the sudoers file. This incident will be reported..

Então comecei a mexer no visudocomando ...

Eu entendo que a conta root tem a seguinte configuração:

root    ALL=(ALL:ALL) ALL

Mas não quero duplicar isso para meu novo usuário ...


Quero que meu usuário xxxx NÃO tenha acesso root, exceto ao usar o sudo.
Ao usar o sudo, quero que o usuário xxxx solicite a senha root e não sua própria senha !!

THX


Usando debian 10
VM, somente ssh

Responder1

Quero que meu usuário xxxx NÃO tenha acesso root, exceto ao usar o sudo.

Na verdade, esse é o estado normal para usuários comuns: você não precisa fazer nada além de configurar sudopara especificar quais comandos permitir.

root    ALL=(ALL:ALL) ALL

Esta linha existe apenas para permitir o uso sudocaso você já tenha mudado para o usuário root. A linha importante que concede permissões a usuários não-root é esta:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

(Em algumas distribuições Linux, o primeiro usuário regular gerado durante a instalação do sistema operacional pode se tornar um membro do sudogrupo e, portanto, ter acesso root habilitado automaticamente. Esta é a exceção, não um padrão para todos os usuários.)

A forma básica da especificação de permissão no arquivo sudoers é

<who>  <where>=(<as_who>) <what>
  • <who>especifica quais usuários podem usar esta entrada. Pode ser um usuário, um grupo (prefixado com um sinal %) ou um User_Alias ​​previamente definido (basicamente uma abreviação para uma longa lista de usuários e/ou grupos) e algumas outras coisas.

  • <where>pode ser um nome de host: restringe esta entrada a um sistema específico. Pode ser útil em um ambiente corporativo onde você coloca um sudoersarquivo padrão gerenciado centralmente em todos os hosts, mas geralmente é especificado como ALL para evitar problemas caso a resolução do nome do host não esteja funcionando ou o sistema esteja configurado incorretamente.

  • (<as_who>)define as contas de usuário nas quais os comandos podem ser executados. O padrão é root, mas você também pode restringir um usuário para poder executar comandos com sudo apenas em alguma conta específica de aplicativo não root, por exemplo.

  • <what>é o comando (ou comandos, separados por vírgulas) para permitir.

Existem também várias tags e opções, mas o que está acima é a parte importante do sudoersarquivo em poucas palavras.

Ao usar o sudo, quero que o usuário xxxx solicite a senha root e não sua própria senha

Isso é possível e muito fácil de fazer. Se você adicionar estas linhas ao seu sudoersarquivo:

Defaults:xxxx rootpw,timestamp_timeout=0
xxxx    ALL=(ALL:ALL) ALL

então para o usuário xxxx(eapenaspara eles), o sudocomando solicitará uma senha de root - e solicitarátoda vezo sudocomando é usado, em vez do comportamento padrão de permitir até 15 minutos para usar o sudocomando sem solicitar a senha novamente.

Isso é importante se você planeja monitorar o usuário e digitar a senha root quando necessário por esse usuário - se você perder a timestamp_timeout=0opção, o usuário pode primeiro solicitar que você insira a senha root para alguma ação legítima e, em seguida, inventar alguma distração para você nos próximos 15 minutos, e durante esse tempo eles poderão usar sudoo que quiserem.

Mas observe quese você informar ao seu usuário a senha root, ele também poderá usá-la com o sucomando, a menos que você aplique restrições não padrão ao su. A maneira clássica (e geralmente a única) de restringir sué exigir que o usuário seja membro de um grupo específico, caso contrário ele não poderá usar sunada. Para aplicar esta restrição, edite /etc/pam.d/sue encontre esta parte perto do início:

# Uncomment this to force users to be a member of group root
# before they can use `su'. You can also add "group=foo"
# to the end of this line if you want to use a group other
# than the default "root" (but this may have side effect of
# denying "root" user, unless she's a member of "foo" or explicitly
# permitted earlier by e.g. "sufficient pam_rootok.so").
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
# auth       required   pam_wheel.so

Basta remover o #do início da última linha e o sucomando poderá ser utilizado apenas pelos membros do rootgrupo.

informação relacionada