Я хотел создать сценарий установки для моего raspberry pi, который обеспечивает установку по умолчанию путем настройки / усиления s sh, установки брандмауэра и fail2ban и, наконец, избавления от пользователя Raspbian по умолчанию. Все остальные части работают, но последняя часть всегда показывает мне ошибку. Новый пользователь создан и добавлен в группу sudo. После этого я хочу удалить старого пользователя 'pi'. Поскольку скрипт запускается с sudo в пользовательском контексте 'pi', я подумал, что смогу решить эту проблему, переключившись на 'su', но я просто получаю сообщение об ошибке, что пользователь не может быть удален, поскольку он используется процессом:
echo "Enter the new user name? Only lower case letters allowed!"
read user
sudo adduser $user && adduser $user sudo
echo "default user 'pi' will now be deleted"
su -c "deluser -remove-home pi"
Если я проверю «пользователи», пользователь «пи» пропадет, но я все равно смогу войти в систему с этой учетной записью. Как я могу решить эту проблему внутри скрипта?
Я попробовал ответы, которые нашел здесь: Как мне использовать su для выполнения остальной части скрипта bash от имени этого пользователя? и здесь: https://unix.stackexchange.com/questions/361327/how-to-login-as-different-user-inside-shell-script-and-execute-a-set-of-commands но, похоже, ничего не работает. Я искал Google, но не могу найти решение, которое работает. Возможно ли то, что я пытаюсь сделать?