Execute o aplicativo "motion" do Linux como usuário

1

Estou tentando executar o aplicativo Motion em uma caixa do Linux.

Por vários motivos de segurança, prefiro executá-lo como usuário regular de sudo. No entanto, quando eu executo "service motion start" sem o sudo na frente, ele diz:

chown: changing ownership of '/var/run/motion': Operation not permitted 

O google não parece produzir resultados relevantes para essa situação.

    
por Uzumaki Naruto 07.02.2014 / 19:46

3 respostas

2

Quando instalei o motion no passado, ele foi executado para que ele seja executado como seu próprio usuário designado, normalmente motion . Eu sugeriria fazer a mesma coisa aqui para a sua instalação também.

EDIT # 1

O OP perguntou como isso foi feito. Eu expliquei que se você instalasse o pacote motion via Debian / Ubuntu ou Fedodra repos a instalação seria feita para que tudo que você precisasse executar motion como outro usuário, motion em meus casos, fosse feito fora do caixa por padrão.

Se você observar os arquivos que normalmente seriam instalados com motion , geralmente é fornecido um script de inicialização SYSV, /etc/init.d/motion . Dentro deste script, no Ubuntu, é uma seção como esta:

case "$1" in
  start)
    if check_daemon_enabled ; then
        if ! [ -d /var/run/motion ]; then
                mkdir /var/run/motion
        fi
        chown motion:motion /var/run/motion

    log_daemon_msg "Starting $DESC" "$NAME" 
if start-stop-daemon --start --oknodo --exec $DAEMON -b --chuid motion ; then
            log_end_msg 0
        else
            log_end_msg 1
            RET=1
        fi
    fi
    ;;

Se você observar a linha start-stop-daemon , perceberá que quando motion for iniciado ( $DAEMON ), o comutador --chuid motion será passado, o que executará o processo% daemonmotion como usuário motion .

Algo semelhante é feito no meu Fedora & Os sistemas CentOS também em seus scripts /etc/init.d correspondentes para motion .

    
por 07.02.2014 / 21:01
1

Está tentando alterar o proprietário do arquivo /var/run/motion e não tem permissão suficiente.

Se o arquivo existir, você pode tentar alterar o proprietário

sudo chown username /var/run/motion

Depois disso, ele pode avançar e encontrar um novo problema.

Seria melhor reconfigurar os valores padrão do movimento e, em seguida, localizar esses tipos de arquivos em sua estrutura / home / username ou criar um diretório que você possua abaixo de / var / run para seus arquivos de aplicativo de tempo de execução.

    
por 07.02.2014 / 20:55
1

A maneira padrão de lidar com isso é criar um grupo e designar o (s) usuário (s) que usarão o programa para o grupo. Então você chown de todos os diretórios para o novo grupo e chmod deles para permitir que os membros do grupo leiam e escrevam lá.

groupadd motion_users
vipw  # to update groups for user(s)
chown -R motion_users /var/run/motion  # and anything else
chmod g+rwx /var/run/motion

Agora faça o login como o usuário e ele deve funcionar desde que as permissões do dispositivo estejam lá. Observe que você precisa fazer logout e voltar para os grupos a serem adicionados a um usuário.

    
por 07.02.2014 / 20:56