Authorized_keys não obtendo permissões ou proprietário configurado corretamente quando executado a partir do script bash

1

Com o seguinte fragmento de um script para adicionar novos usuários, cada usuário recebe um par public \ private key criado automaticamente, com a chave privada em seu diretório home para o winscping out. O script funciona com um problema: authorized_keys sempre obtém a raiz do proprietário e a raiz do grupo . Mesmo que eu atribua o usuário que está sendo adicionado como proprietário antes e depois de mover a chave pública para o arquivo authorized_keys. Se eu executar novamente os comandos manualmente após o script, tudo funcionará bem. Estou executando o script como root. Permissões também aparecem para definir incorretamente. Alguma idéia?

    usermod -g webteam $UNAME

    cd /home/$UNAME
    ssh-keygen -b 1024 -t dsa -N $UPASS -f $UNAME"key" > key.log
    mkdir .ssh
            chown $UNAME $UNAME"key.pub"
    chgrp $UNAME $UNAME"key.pub"
    mv $UNAME"key.pub" .ssh/authorized_keys
    chmod 740 $UNAME"key"
    chown $UNAME $UNAME"key"

    chown $UNAME .ssh
            echo "PYTHONPATH=/usr/local/lib/python2.4/site-packages" >> .ssh/environment
    chown $UNAME .ssh/*
    chgrp $UNAME .ssh/*
    chmod 700 .ssh/*
    chmod 750 .ssh
    
por Joshua Enfield 12.07.2010 / 20:04

1 resposta

1

Você pode simplificar isso apenas fazendo um

chown -hR $UNAME:webteam /home/$UNAME/.ssh
chmod -R 700 /home/$UNAME/.ssh

no final? Assumindo que $UNAME é de fato o nome de usuário e webteam é o nome de grupo correto (não sei se chgrp faz o que você quer).

Você também pode querer executar esse script inteiro em set -x e definir uma interceptação para ERR para sair imediatamente após uma falha com alguma mensagem.

    
por 12.07.2010 / 20:30