У меня есть несколько систем Ubuntu, которые используют команду su из скрипта rc.local. Это обновляет git-репозиторий пользователей на локальном компьютере, поэтому важно, чтобы владение файлами сохранялось корректным пользователем.
Это работало до патчей specter / meltdown, но теперь я получаю несогласованные результаты при запуске скрипта. Некоторые машины могут запускать команду su, но многие говорят, что «su должно быть запущено из терминала», и сценарий не запускается.
Я изо всех сил пытаюсь понять, что изменилось в последних обновлениях, которые нарушит это.
Не знаю, почему su -s перестали работать так, как раньше, но sudo -u username действительно разрешает проблему.
Мне нужно было сгруппировать команды для изменения каталога, поскольку sudo -u username сбрасывает рабочий каталог в домашний каталог пользователя:
sudo -S -u username -i /bin/bash -l -c 'cd /opt/bin; git reset --hard'
Не знаю, почему su -s перестали работать так, как раньше, но sudo -u username действительно разрешает проблему.
Мне нужно было сгруппировать команды для изменения каталога, поскольку sudo -u username сбрасывает рабочий каталог в домашний каталог пользователя:
sudo -S -u username -i /bin/bash -l -c 'cd /opt/bin; git reset --hard'