使用以下脚本片段添加新用户,每个用户都会自动创建一个公钥\私钥对,私钥位于他们的主目录中,用于 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
在失败时立即退出并显示某些消息。