Como executar o VLC player no root


23

Eu instalei um vlc no centos 6.5. Eu quero executá-lo como root. Mas eu recebo o seguinte erro,

"O VLC não deve ser executado como root. Desculpe. Se você precisar usar prioridades em tempo real e / ou portas TCP privilegiadas, poderá usar o vlc-wrapper (verifique se é o Set-UID root e não pode ser executado por outros usuários"). usuários confiáveis ​​primeiro). "


13
Por curiosidade, qual seria o motivo para fazer isso?
Kursus #

2
Então use vlc-wrappercomo diz?
19414 Kevin

3
Dica profissional: não faça isso.
HalosGhost

1
Espero que isso ajude você. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
Em alguns níveis, o link mencionado é um hack interessante (use um editor hexadecimal para substituir a getuidchamada getpid), pois o código fonte está disponível, uma abordagem mais limpa seria editar a fonte para remover completamente o teste e recompilar. Nos dois casos, eu recomendaria não fazê-lo, mas se você quiser dar um tiro no pé. . .
Hildred

Respostas:


51

Isto é o que funcionou para mim. Nenhuma compilação necessária.

sed -i 's/geteuid/getppid/' /usr/bin/vlc

Usando o VLC media player 2.0.3 Twoflower em um Raspberry Pi.


3
Funcionou como um encanto. :)
Krishnadas PC

3
Sim, isso é o inferno :) +1
onalbi

hahaha corrigindo para verificar pid em vez de uid, e funciona muito bem. corte impressionante!
precisa saber é o seguinte

1
Isso funcionou surpreendente em vlc 3.0.1 bem
Ofer Sadan

Trabalhou para mim também ...
Danny

17

Uma maneira de contornar isso é recompilar. Passe o --enable-run-as-rootsinalizador para ./configuree o vlc deve ser capaz de executar como root. A resposta acima é daqui .


2
recompilar não é a única maneira, basta alterar a chamada para geteuid para entregar 1. Eu descrevo isso em linuxintro.org/wiki/Run_vlc_as_root
Thorsten Staerk

@ ThorstenStaerk, obrigado por me fornecer as informações.
Ramesh

Você poderia marcar a pergunta como respondida?
Thorsten Staerk

@ThorstenStaerk: dead link ...
Alexandre Bourlier

1
@Alexandre Bourlier: works (again)
Thorsten Staerk

1

Veja http://www.linuxintro.org/wiki/Run_vlc_as_root :

  • faça backup do binário do VLC:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • encontre a chamada para geteuiddentro do binário do VLC:

    # needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6;}')
    
  • substitua a chamada para apenas entregar 01:

    # sed -ir "s/$needle/\xb8\x01\x00\x00\x00/" /usr/bin/vlc
    
  • teste-o

Agora o VLC deve ser executado sob o usuário root!


1

Você poderá executar o VLC como root modificando o binário do VLC, localizado em /usr/bin

Primeiro, você precisará de um editor hexadecimal, como o Bless:

sudo apt-get install bless

Em seguida, você abrirá o binário do VLC com o editor hexadecimal:

sudo bless /usr/bin/vlc

Pesquise e altere a geteuidstring por getppid, salve e saia.

Agora você pode iniciar o VLC como root.


0

O VLC não deve ser executado como root. Desculpe. - Solução

De qualquer forma, instalei o vlc usando o seguinte comando;

# aptitude install vlc

E tentei executar o vlc como root, obtive um erro no meu terminal;

# vlc

O VLC não deve ser executado como root. Desculpe.

Se você precisar usar prioridades em tempo real e / ou portas TCP privilegiadas

você pode usar o vlc-wrapper (verifique se é o root Set-UID e

não pode ser executado por usuários não confiáveis ​​primeiro).

Este erro diz que o vlc direto não pode ser executado como usuário com privilégios de root. O que fazer agora? Não fique em pânico. Aqui está a solução invadida 😀

# vi /usr/bin/vlc

procure geteuide substitua-o porgetppid

Salvar arquivo e sair.

Agora deve funcionar, tente executá-lo novamente 😉

ou

sed -i 's/geteuid/getppid/' /usr/bin/vlc

Solução idêntica dada em rodvlopes responde 18 meses antes!

0

Vá para main menulocalizar vlce definir propriedades como:

gksu -u vlc

ou simplesmente no tipo de terminal

gksu -u <username(no root)> vlc

Por exemplo, se você tiver abcusuário, seu comando será:

gksu -u abc vlc

0

Kevin nos comentários da pergunta sugerida usando o vlc-wrapper. Eu tive problemas para descobrir como usá-lo, então descreverei como o fiz funcionar:

você precisa definir seu usuário não privilegiado em SUDO_UID: export SUDO_UID = 1000

se você não tiver um usuário para executar o vlc em create one:

useradd -g users vlc
# this will show you the uid of vlc user
id -u vlc

se você quiser que a variável SUDO_UID seja permanente, adicione-a ao bashrc:

echo "export SUDO_UID=1000" >> /root/.bashrc

tenha cuidado para não escrever single> em vez de >>

use vlc-wrapper em vez de vlc


-1
sed -i 's/geteuid/getppid/' /usr/bin/vlc

Funciona.


2
Seria bom se você pudesse explicar por que essa resposta específica resolve o problema.
Jeff Schaller

1
Solução idêntica dada em rodvlopes responde 8 meses antes!

1
-1 porque é uma cópia e colagem de outra resposta nesta página exata.
aggregate1166877

@ Jeff Schaller Se o geteuid retornar 0, o vlc sabe que é raiz. No entanto, o getppid sempre retornará um resultado diferente de zero e o tamanho do nome é convenientemente o mesmo do geteuid. Assim, o binário agora liga o getppid no lugar do geteuid, e o vlc nunca percebe que é raiz!
George

1
@George Eu estou ciente do que está fazendo; Eu esperava que o user149272 pudesse melhorar sua resposta com uma explicação.
Jeff Schaller
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.