LINUX.ORG.RU
ФорумAdmin

Как дать права за запуск скрипта от другого пользователя?

 , , ,


0

1

Здравствуйте, уважаемые! На домашнем сервачке стоит motion - пишет видео с камер по движению. Файлы складываются в специальную папочку nextcloud, которая должна сразу по окончании записи засинхриться, а для этого ей надо дать команду на сканирование папки на наличие новых файлов от имени апач-юзера owncloud. Для этого в конфиге motion указано:

on_event_end /home/seventh/rescan_motion.sh
А в этом скрипте:
#!/bin/sh
sudo -u owncloud php /var/www/nextcloud/occ files:scan -p /seventh/files/motion

Только вот сам motion работает от своего пользователя motion, поэтому после каждого обнаружения движения, я получаю на почту письмо:

*** SECURITY information for server ***

server : Mar 21 15:29:27 : motion : user NOT in sudoers ; TTY=unknown ; PWD=/ ; USER=owncloud ; COMMAND=/usr/bin/php /var/www/nextcloud/occ files:scan -p /seventh/files/motion

И, соответственно, директория не сканируется. Как грамотно реализовать задуманное?

Тоже юзаю motion, но лью все на яндекс.диск, наличие новых файлов проверяю таким простым скриптом:

#!/bin/sh
alarm="no"
again="yes"

while [ "$again" = "yes" ]
do
t=`ls -l /home/yandex.disk/snap/ | wc -l`

if [ "$t" -ge "2" ]
                                        then
                                   bin/telegram-cli -k /etc/telegram-cli/server.pub -c /home/.telegram-cli/config -W -e "msg ... Alarm!"
                                       
                                        sleep 3600s
                                        mv  /home/yandex.disk/snap/*  /home/yandex.disk/snap.old/
                                       
                                        fi

done



exit 0


null123 ★★ ()
Ответ на: комментарий от Radjah

Ну оно не совсем мгновенное и достаточно ресурсоёмкое. Поэтому прям раз в 10 секунд такое делать - нагрузка, а раз в минуту редко, да и тоже нагрузка. Типа, если преступник придёт, то за минуту вполне успеет обнаружить камеру и вырубить всё, что можно (писк ИБП будет ему подсказывать что рубить). В общем, хотелось бы это делать максимально быстро сразу после события.

seventhsite ()

В /etc/sudoers

Defaults    requiretty
Defaults:%group !requiretty
Defaults:user !requiretty

Defaults    !visiblepw
Defaults    always_set_home
Defaults    env_reset
Defaults    mail_badpass

Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Cmnd_Alias SOME_SCRIPT = /path/to/some-script
user  ALL=(another-user-who-have-rights) NOPASSWD: SOME_SCRIPT

Glafir ()
Ответ на: комментарий от sin_a

Плохой вариант. Сети может и не быть по разным причинам. Скорее правильнее писать локально плюс по возможности удаленно.

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Там есть возможность подключения локальной ФС.

sin_a ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.