Linux Mint Forums
Forum rules
Before you post please read how to get help. Topics in this forum are automatically closed 6 months after creation.
Run script as root on startup
Post by skibum505 » Thu Jan 26, 2017 4:58 pm
I want to run a bash file on startup as root. I found instructions on an Ubuntu site to add the command to /etc/rc.local so I added the line
to rc.local to see if it works. Trial.sh is a simple shell which has been tested. (It is not the shell I ultimately want to run.) rc.local is executable. It does not work.
I am running Mint 18.1 Cinnamon, 64 bit. There is a similar topic on the «Newbies» thread. A response to this topic implies that things are different in 18 from 17, but does not say how.
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 2 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
Re: Run script as root on startup
Post by Mute Ant » Thu Jan 26, 2017 5:06 pm
The rc.local file is already running as root in a shell, you just have to announce.
/etc/trial.sh
. and it will try to execute the sub-script.
If you specifically want bash to run a script, it’s.
/bin/bash -c «/etc/trial.sh»
This has not changed since forever; it’s standard GNU-Linux.
Re: Run script as root on startup
Post by Habitual » Thu Jan 26, 2017 5:31 pm
crontab -e @reboot /etc/trial.sh
@reboot /bin/bash /etc/trial.sh
@reboot /bin/bash -c "/etc/trial.sh"
Re: Run script as root on startup
Post by skibum505 » Fri Jan 27, 2017 6:31 pm
thanks to you both — but — neither of these approaches seem to work.
It’s my understanding that, to run a cron job as root, you must edit crontab as root («sudo crontab -e»). I had already changed crontab to run a backup weekly (that needs to run as root) and it works. So I added the line «@boot /etc/trial.sh» to my existing crontab. No luck.
I also tried the suggested changes to «rc.local». Same result.
I looked at «/var/log/syslog» as I found a suggestion on an Ubuntu forum. There is a line
Jan 27 14:30:11 gary-XPS-8900 CRON[1335]: (root) CMD (/etc/trial.sh)
but nothing to indicate any errors.
Автозагрузка программы под root правами без запроса пароля
Необходимо, чтобы одна программа, требующая прав рута загружалась в автозагрузке\авторизации обычным пользователем без ввода рутового пароля. Как сделать?
Спасибо за наводку, но там огромная документация, и на английском.
Вычитал пока что надо юзать visudo, но синтаксис этой штуки мягко говоря вообще не понятен
А погуглить?
visudo — просто редактирование файла /etc/sudoers
## User privilege specification ## root ALL=(ALL) ALL user ALL=(ALL) ALL ## Uncomment to allow members of group wheel to execute any command # %wheel ALL=(ALL) ALL ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL user host=NOPASSWD: /pass/to/programm ## Uncomment to allow members of group sudo to execute any command # %sudo ALL=(ALL) ALL
вроде как тут редактить, но всё-равно запуск через sudo, просто не будет требовать пароля, если не так поправьте (:
можно еще chmod +s сделать из-под рута, и скрипт в будущем с рутовыми правами будет запускаться.
Cool idea!
Причем, любым пользователем 🙂 Не надо setuid ставить без острой на то необходимости.
Как сделать добавить скрипт в автозагрузку под root правами
Суть такая у меня есть скрипт на с, в нем написан приложение с графической оболочкой, но запустить его можно только root правами, мне нужно добавить этот скрипт в автозагрузку, как это сделать? Пытался добавить его через сервис, но ничего не получилось скрипт не запускается. делал следующие команды
sudo nano /lib/systemd/system/runscript.service [Unit] Description=runscript [Service] ExecStart=/home/ubuntu/Desktop/mqtt/mod User=root [Install] WantedBy=multi-user.target systemctl enable runscript.service systemctl start runscript.service sudo reboot
Но когда перезапускаю ввожу логи и пароль программа не запускается что не так. Пробовал через rc.local, но файла такого нет нашел, как он выглядит создал, добавил все равно не запускает.
sudo nano /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /home/ubuntu/Desktop/mqtt/mod exit 0
-- Logs begin at Mon 2019-05-27 08:54:08 UTC, end at Mon 2019-05-27 10:33:52 UTC -- No entries --
У меня стоит граф оболочка lxde на ubuntu 18.04 пытался включить его в автозапуск использую lxde но под root все равно не запускается для добавление открывал файл autostart
nano /etc/xdg/lxsession/LXDE/autostart @lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE @xscreensaver -no-splash @lxterminal//мое добавление
[Desktop Entry] Name=LXTerminal Type=Application Exec= /home/ubuntu/Desktop/mqtt/mod Terminal=false
если оставить так приложение запускается, но не под root пытался изменить строчку Exec= /home/ubuntu/Desktop/mqtt/mod на Exec=sudo /home/ubuntu/Desktop/mqtt/mod или Exec=gksu /home/ubuntu/Desktop/mqtt/mod но не работает пытался использовать Xspice nano /home/ubuntu/Desktop/mqtt/mod_on_xspice.sh использовал этот скрипт, а потом добавить его в сервис, но снова мимо проблема с Xspice его нету, а установить не получается нашел способ установить https://s3hh.wordpress.com/2014/04/18/xspice-in-containers/ ,но выдает ошибку на репозиторий, когда обновляюсь в итоге нашел программу с исходниками, раскидал по всем папкам, где должны быть файлы, но так этот метод и не сработал, подскажите, что не так
#!/bin/bash export DISPLAY=:4 /usr/bin/Xspice --port 5900 --disable-ticketing $DISPLAY & /home/ubuntu/Desktop/mqtt/mod