从 bash 脚本运行时,Authorized_keys 未获得权限或正确设置所有者

从 bash 脚本运行时,Authorized_keys 未获得权限或正确设置所有者

使用以下脚本片段添加新用户,每个用户都会自动创建一个公钥\私钥对,私钥位于他们的主目录中,用于 winscping。该脚本有一个问题:authorized_keys 始终获得所有者根和组根。即使我在将公钥移动到 authorized_keys 文件之前和之后将要添加的用户指定为所有者。如果我在脚本之后手动重新运行命令,一切都会正常工作。我以 root 身份运行脚本。权限似乎也设置不正确。有什么想法吗?

    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

答案1

你能简化一下吗?只需做一个

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

在最后?假设$UNAME实际上是用户名并且webteam是正确的组名(我不确定chgrp你拥有的是否符合你的要求)。

您可能还想运行整个脚本set -x并设置一个陷阱,以便ERR在失败时立即退出并显示某些消息。

相关内容