С помощью следующего фрагмента сценария для добавления новых пользователей каждый пользователь получает автоматически созданную пару открытый \ закрытый ключ с закрытым ключом в своем домашнем каталоге для выхода. Скрипт работает с одной проблемой: 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
правильное название группы (я не уверен, что chgrp
ты делаешь что хочешь).
Вы также можете запустить весь этот скрипт под set -x
и установить ловушку для ERR
немедленно выйти в случае сбоя с каким-либо сообщением.