从bash脚本运行时,Authorized_keys没有正确获取权限或所有者

通过下面的脚本片段来添加新用户,每个用户都可以自动创build一个公用\私人密钥对,用私钥在其主目录中进行胜出。 该脚本可以解决一个问题: 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 

你可以简化这一点只是做一个

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

在最后? 假设$UNAME webteam实际上是用户名, webteam是正确的组名(我不知道你有什么chgrp做你想做的)。

您可能还想在set -x下运行整个脚本,并设置一个陷阱让ERR在出现故障时立即退出。