Cómo ejecutar el reproductor VLC en la raíz


23

He instalado una vlc en centos 6.5. Quiero ejecutarlo como root. Pero me sale el siguiente error,

"No se supone que VLC se ejecute como root. Lo sentimos. Si necesita usar prioridades en tiempo real y / o puertos TCP privilegiados, puede usar vlc-wrapper (asegúrese de que sea root Set-UID y no pueda ser ejecutado por usuarios de confianza primero) ".


13
Por curiosidad, ¿cuál sería la razón para hacer esto?
kursus

2
¿Así que usa vlc-wrappercomo dice?
Kevin

3
Pro-tip: No hagas esto.
HalosGhost

1
Espero que esto te ayude. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
En algunos niveles, el enlace al que se hace referencia es un truco interesante (use un editor hexadecimal para reemplazar la getuidllamada getpid) ya que el código fuente está disponible, un enfoque más limpio sería editar la fuente para eliminar la prueba por completo y volver a compilar. En ambos casos, recomendaría no hacerlo, pero si quieres disparar. . .
hildred

Respuestas:


51

Esto es lo que funcionó para mí. No se requiere compilación.

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

Usando el reproductor multimedia VLC 2.0.3 Twoflower en una Raspberry Pi.


3
Trabajado como un encanto. :)
Krishnadas PC

3
Yeah This Is Hell :) +1
onalbi

jajaja parcheando para verificar pid en lugar de uid, y funciona muy bien. truco increíble!
hanshenrik

1
Esto también funcionó increíble en vlc 3.0.1
Ofer Sadan

También funcionó para mí ...
Danny

17

Una forma de evitar esto es volver a compilar. Pase el --enable-run-as-rootindicador a ./configurey vlc debería poder ejecutarse como root. La respuesta anterior es de aquí .


2
recompilar no es la única forma, simplemente cambie la llamada a geteuid para entregar 1. Describo
Thorsten Staerk

@ThorstenStaerk, gracias por proporcionarme la información.
Ramesh

¿Podría marcar la pregunta como respondida?
Thorsten Staerk

@ThorstenStaerk: enlace muerto ...
Alexandre Bourlier

1
@Alexandre Bourlier: funciona (nuevamente)
Thorsten Staerk

1

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

  • copia de seguridad del binario VLC:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • encuentra la llamada geteuiddentro del binario VLC:

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

    # sed -ir "s/$needle/\xb8\x01\x00\x00\x00/" /usr/bin/vlc
    
  • Pruébalo

¡VLC ahora debería ejecutarse bajo el usuario root!


1

Podrá ejecutar VLC como root modificando el binario VLC, ubicado en /usr/bin

Primero, necesitará un editor hexadecimal, como Bless:

sudo apt-get install bless

Luego, abrirá el binario VLC con el editor hexadecimal:

sudo bless /usr/bin/vlc

Busque y cambie la geteuidcadena por getppid, guarde y salga.

Ahora puede iniciar VLC como root.


0

No se supone que VLC se ejecute como root. Lo siento. - Solución

De todos modos, instalé vlc usando el siguiente comando;

# aptitude install vlc

Y traté de ejecutar vlc como root, recibí un error en mi terminal;

# vlc

No se supone que VLC se ejecute como root. Lo siento.

Si necesita usar prioridades en tiempo real y / o puertos TCP privilegiados

puede usar vlc-wrapper (asegúrese de que sea la raíz Set-UID y

no puede ser ejecutado por usuarios no confiables primero).

Este error dice que vlc no se puede ejecutar como usuario con privilegios de root. ¿Qué hacer ahora? No se asuste. Aquí está la solución pirateada 😀

# vi /usr/bin/vlc

buscar geteuidy reemplazarlo congetppid

Guardar archivo y salir.

Ahora debería funcionar, intenta ejecutarlo de nuevo 😉

o

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

¡La solución idéntica que se da en rodvlopes responde 18 meses antes!

0

Ir a main menubuscar vlcy establecer propiedad como:

gksu -u vlc

o simplemente en tipo de terminal

gksu -u <username(no root)> vlc

Por ejemplo, si tiene abcusuario, su comando será:

gksu -u abc vlc

0

Kevin en los comentarios de la pregunta sugirió usar vlc-wrapper. Tuve problemas para descubrir cómo usarlo, así que describiré cómo lo hice funcionar:

necesita configurar su usuario no privilegiado en SUDO_UID: export SUDO_UID = 1000

si no tiene un usuario para ejecutar vlc en crear uno:

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

si quieres la variable SUDO_UID permanente, agrégala a bashrc:

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

tenga cuidado de no escribir single> en lugar de >>

luego use vlc-wrapper en lugar de vlc


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

Funciona.


2
Sería bueno si pudiera explicar por qué esta respuesta particular resuelve el problema.
Jeff Schaller

1
¡La solución idéntica que se da en rodvlopes responde 8 meses antes!

1
-1 porque es una copia y pega de otra respuesta en esta página exacta.
agregado1166877

@Jeff Schaller Si geteuid devuelve 0, vlc sabe que es root. Sin embargo, getppid siempre devolverá un resultado distinto de cero, y la longitud de su nombre es convenientemente la misma que la de geteuid. Por lo tanto, el binario ahora vincula getppid en lugar de geteuid, ¡y vlc nunca se da cuenta de que es root!
George

1
@George Yo soy consciente de lo que está haciendo; Esperaba que user149272 pudiera mejorar su respuesta con una explicación.
Jeff Schaller
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.