Um usuário com chaves ssh pode definir sua própria senha depois de efetuar o login com as chaves sem saber sua senha?

0

Estou brincando com um script para criar um usuário em várias máquinas. Eu gostaria de não saber a senha do usuário a qualquer momento, mas ter as chaves públicas SSH é bastante aceitável para mim. O usuário precisará usar o sudo para que seja necessária uma senha para escalonamento de privilégios. O usuário pode definir a senha para si sem ter uma senha para efetuar login? Até agora, todos os meus testes deste esquema de criação de senha não conseguiram encontrar uma maneira para o usuário alterar sua senha.

Aqui está o script até agora.

# Must be run with root permissions 
# sudo will be sufficient

if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

# Create User
user=newadmin
adduser $user --disabled-password --gecos "New Admin"
adduser $user sudo
adduser $user adm

# Create and populate authorized keys
keys=/home/$user/.ssh/authorized_keys
mkdir /home/$user/.ssh
chmod 700 /home/$user/.ssh
touch $keys
chmod 600 $keys

cat <<EOT >> $keys
${relevant_content_for-authorized_keys-file_here}
EOT

chown -R $user:$user /home/$user/.ssh

# Check that the file exists and that ownership is correct
# TODO: check permissions of file and directory also
if [ 'stat -c '%U' $keys'==$user ]
then
  echo "Successfully created $keys for $user"
else
  echo "Failed to configure $keys properly for $user"
fi

Se eu precisar, voltarei com uma expiração de senha curta, mas prefiro que eles não sejam capazes de elevar os privilégios até que a senha deles esteja definida como algo que não sei.

echo "password:$user" | chpasswd
chage -M 4 $user

Sim, eu sei que sou um administrador de sistemas paranóico. :-)

    
por flickerfly 12.05.2015 / 17:53

1 resposta

3

Sua pergunta não faz muito sentido, pois o usuário em questão tem acesso ao sudo.

Então ...

  1. Sim, um uso pode alterar a senha nas chaves ssh.

e

  1. Um usuário com acesso raiz pode alterar a senha de qualquer outro usuário no sistema ou bloquear uma conta sem saber a senha da conta de destino.

Não sei ao certo como você está dando a eles acesso root ou se o acesso root está limitado de alguma forma. Se você estiver usando a configuração padrão do sudo, eles saberão sua senha para poder alterá-la. Se você estiver usando su, uma vez que eles tenham acesso root, eles podem fazer o que quiserem, a menos que você os restrinja com uma ferramenta como apparmor ou selinux

Talvez você possa bloquear a conta e forçar o novo usuário a definir uma senha no primeiro login.

De link

Adicione isso ao seu script:

% bl0ck_qu0te%     
por Panther 12.05.2015 / 18:05