sudo adduser openhab sudosudo
sudo visudo -f /etc/sudoers.d/minodlna_restart
sudo -u openhab /etc/init.d/minidlna restart
sudo chmod 644 /etc/sudoers.d/minodlna_restart
sudo -u openhab systemctl restart minidlna.service
sudo -u openhab sudo -l
openhab ALL = NOPASSWD: /bin/systemctl restart minidlna.service
sudo -u openhab sudo /bin/systemctl restart minidlna.service
Выполнение в OH2 bash без пароля из под root
Re: Выполнение в OH2 bash без пароля из под root
Выше устарело, нужно делать так:
0)
sudo visudo -f /etc/sudoers.d/minodlna_restart
вносим руками в открывшийся редактор строку
mike ALL = NOPASSWD: /bin/systemctl restart minidlna.service
сохраняемся и выхоим.
дальнейшее спёрто отсюда https://beget.com/ru/kb/how-to/ssh/avto ... h-klyuchey
1) Cоздаем открытый и закрытый ключ нашей локальной системы:
$ ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa
3.1) копируем открытый ключ на удаленную систему 192.168.1.2:
scp ~/.ssh/id_rsa.pub mike@192.168.1.2:~
3.2) Авторизуемся на удаленном сервере под mike.
3.3) Заносим открытый ключ нашей локальный системы в авторизованные ключи удаленной системы, устанавливаем правильные права и "убираем за собой мусор":
remote$ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 711 ~/.ssh) # создаем директорию и даём права
remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # добавляем открытый ключ
remote$ chmod 600 ~/.ssh/authorized_keys # делаем правильные права
remote$ rm ~/id_rsa.pub # удаляем не нужное
4) Проверяем, что все работает, запускаем на локальном компьютере:
ssh -o StrictHostKeyChecking=no mike@192.168.1.2 sudo /bin/systemctl restart minidlna.service
В логе tail -f /var/log/auth.log
May 27 13:41:29 nas sshd[28872]: Accepted publickey for mike from 172.30.33.4 port 60308 ssh2: RSA SHA256:rXBhoETcSL1MbE7oVDW6vugLy052cNjzx
May 27 13:41:29 nas sshd[28872]: pam_unix(sshd:session): session opened for user mike by (uid=0)
May 27 13:41:29 nas systemd-logind[433]: New session 372 of user mike.
May 27 13:41:29 nas sudo: mike : TTY=unknown ; PWD=/home/mike ; USER=root ; COMMAND=/bin/systemctl restart minidlna.service
May 27 13:41:29 nas sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
May 27 13:41:30 nas sudo: pam_unix(sudo:session): session closed for user root
May 27 13:41:30 nas sshd[28878]: Received disconnect from 172.30.33.4 port 60308:11: disconnected by user
May 27 13:41:30 nas sshd[28878]: Disconnected from 172.30.33.4 port 60308
May 27 13:41:30 nas sshd[28872]: pam_unix(sshd:session): session closed for user mike
May 27 13:41:30 nas systemd-logind[433]: Removed session 372.
5) копирует приватный ключ в не зависящую от пользователя директорию
cp ~/.ssh/id_rsa /config/
6) в конфиг Home assistance вносим настройку:
shell_command:
restart_minidlna: "/usr/bin/ssh -i /config/id_rsa -o StrictHostKeyChecking=no mike@192.168.1.2 sudo /bin/systemctl restart minidlna.service"
input_button:
minidlna_restart:
name: Restart MiniDLNA
в автоматизации добавляем:
# по нажатию на кнопку запускаем скрипт на обновление базы minidlna
- id: 'button_mini_dlna_restart'
alias: Перезапуск minidlna
trigger:
- platform: state
entity_id: input_button.minidlna_restart
action:
- service: shell_command.restart_minidlna
обязательно перезапускаем весь HA и нажимаем на кнопку, для перезапуска minidlna
0)
sudo visudo -f /etc/sudoers.d/minodlna_restart
вносим руками в открывшийся редактор строку
mike ALL = NOPASSWD: /bin/systemctl restart minidlna.service
сохраняемся и выхоим.
дальнейшее спёрто отсюда https://beget.com/ru/kb/how-to/ssh/avto ... h-klyuchey
1) Cоздаем открытый и закрытый ключ нашей локальной системы:
$ ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa
3.1) копируем открытый ключ на удаленную систему 192.168.1.2:
scp ~/.ssh/id_rsa.pub mike@192.168.1.2:~
3.2) Авторизуемся на удаленном сервере под mike.
3.3) Заносим открытый ключ нашей локальный системы в авторизованные ключи удаленной системы, устанавливаем правильные права и "убираем за собой мусор":
remote$ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 711 ~/.ssh) # создаем директорию и даём права
remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # добавляем открытый ключ
remote$ chmod 600 ~/.ssh/authorized_keys # делаем правильные права
remote$ rm ~/id_rsa.pub # удаляем не нужное
4) Проверяем, что все работает, запускаем на локальном компьютере:
ssh -o StrictHostKeyChecking=no mike@192.168.1.2 sudo /bin/systemctl restart minidlna.service
В логе tail -f /var/log/auth.log
May 27 13:41:29 nas sshd[28872]: Accepted publickey for mike from 172.30.33.4 port 60308 ssh2: RSA SHA256:rXBhoETcSL1MbE7oVDW6vugLy052cNjzx
May 27 13:41:29 nas sshd[28872]: pam_unix(sshd:session): session opened for user mike by (uid=0)
May 27 13:41:29 nas systemd-logind[433]: New session 372 of user mike.
May 27 13:41:29 nas sudo: mike : TTY=unknown ; PWD=/home/mike ; USER=root ; COMMAND=/bin/systemctl restart minidlna.service
May 27 13:41:29 nas sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
May 27 13:41:30 nas sudo: pam_unix(sudo:session): session closed for user root
May 27 13:41:30 nas sshd[28878]: Received disconnect from 172.30.33.4 port 60308:11: disconnected by user
May 27 13:41:30 nas sshd[28878]: Disconnected from 172.30.33.4 port 60308
May 27 13:41:30 nas sshd[28872]: pam_unix(sshd:session): session closed for user mike
May 27 13:41:30 nas systemd-logind[433]: Removed session 372.
5) копирует приватный ключ в не зависящую от пользователя директорию
cp ~/.ssh/id_rsa /config/
6) в конфиг Home assistance вносим настройку:
shell_command:
restart_minidlna: "/usr/bin/ssh -i /config/id_rsa -o StrictHostKeyChecking=no mike@192.168.1.2 sudo /bin/systemctl restart minidlna.service"
input_button:
minidlna_restart:
name: Restart MiniDLNA
в автоматизации добавляем:
# по нажатию на кнопку запускаем скрипт на обновление базы minidlna
- id: 'button_mini_dlna_restart'
alias: Перезапуск minidlna
trigger:
- platform: state
entity_id: input_button.minidlna_restart
action:
- service: shell_command.restart_minidlna
обязательно перезапускаем весь HA и нажимаем на кнопку, для перезапуска minidlna