Назад | Перейти на главную страницу

Authorized_keys не получает права доступа или владельца, установленного правильно при запуске из сценария bash

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