Выполнение в OH2 bash без пароля из под root

для временного размещения всего на свете
Ответить
TechMike
Site Admin
Сообщения: 213
Зарегистрирован: Вт окт 06, 2009 3:37 pm
Контактная информация:

Выполнение в OH2 bash без пароля из под root

Сообщение TechMike »

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
TechMike
Site Admin
Сообщения: 213
Зарегистрирован: Вт окт 06, 2009 3:37 pm
Контактная информация:

Re: Выполнение в OH2 bash без пароля из под root

Сообщение TechMike »

Выше устарело, нужно делать так:

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
Ответить