Если запуск reboot
напрямую от имени пользователя без полномочий root работает, когда вы вошли в систему, это потому, что ваша система настроена так, чтобы позволить пользователям, которые физически вошли в систему, перезагружать систему. Это работает через Polkit .
Из crontab вы не вошли в сеанс. Задание cron, которое перезагружает систему, должно выполняться от имени пользователя root.
Я не думаю, что перезагрузка - это решение для создания сетевого интерфейса. Просто позвоните, как обычно, чтобы включить VPN. И для этого вам, вероятно, понадобится суперпользователь (для настройки сетевого интерфейса вам потребуется суперпользователь, так что либо vpnrestart1.sh
должен запускаться как root, или он получает права root через программу setuid, такую как sudo, для критических частей, или делегирует NetworkManager, который может использовать Polkit, чтобы разрешить некоторым пользовательским сеансам влиять на конфигурацию системы).