Come eseguire VLC player in root


23

Ho installato un vlc in centos 6.5. Voglio eseguirlo come root. Ma ricevo il seguente errore,

"VLC non dovrebbe essere eseguito come root. Siamo spiacenti. Se è necessario utilizzare priorità in tempo reale e / o porte TCP privilegiate, è possibile utilizzare vlc-wrapper (assicurarsi che sia root Set-UID e non può essere eseguito da non- prima gli utenti fidati). "


13
Per curiosità, quale sarebbe la ragione per farlo?
kursus,

2
Quindi usa vlc-wrappercome dice?
Kevin,

3
Consiglio dell'esperto: non farlo.
HalosGhost

1
Spero che questo ti aiuti. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
Su alcuni livelli il collegamento a cui si fa riferimento è un hack interessante (utilizzare un editor esadecimale per sostituire la getuidchiamata getpid) poiché il codice sorgente è disponibile, un approccio più pulito sarebbe quello di modificare la fonte per rimuovere completamente il test e ricompilare. In entrambi i casi, mi sconsiglio di farlo, ma se vuoi sparare al piede. . .
Hildred

Risposte:


51

Questo è ciò che ha funzionato per me. Nessuna compilazione richiesta.

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

Utilizzando VLC media player 2.0.3 Twoflower su un Raspberry Pi.


3
Ha funzionato come un fascino. :)
Krishnadas PC

3
Sì, questo è l'inferno :) +1
onalbi il

hahaha patchalo per controllare pid invece di uid, e funziona benissimo. hack fantastico!
Hanshenrik,

1
Questo ha funzionato alla grande anche su vlc 3.0.1
Ofer Sadan,

Ha funzionato anche per me ...
Danny il

17

Un modo per aggirare questo è la ricompilazione. Passa il --enable-run-as-rootflag a ./configuree vlc dovrebbe essere in grado di funzionare come root. La risposta sopra è da qui .


2
ricompilare non è l'unico modo, basta cambiare la chiamata in geteuid per consegnare 1. Lo descrivo su linuxintro.org/wiki/Run_vlc_as_root
Thorsten Staerk

@ThorstenStaerk, grazie per avermi fornito le informazioni.
Ramesh,

La prego di contrassegnare la domanda come risposta?
Thorsten Staerk,

@ThorstenStaerk: dead link ...
Alexandre Bourlier,

1
@Alexandre Bourlier: funziona (di nuovo)
Thorsten Staerk il

1

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

  • eseguire il backup del file binario VLC:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • trova la chiamata geteuidall'interno 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;}')
    
  • sostituire la chiamata per consegnare 01:

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

VLC ora dovrebbe essere eseguito sotto l'utente root!


1

Sarai in grado di eseguire VLC come root modificando il binario VLC, che si trova in /usr/bin

Innanzitutto, avrai bisogno di un editor esadecimale, come Bless:

sudo apt-get install bless

Quindi, aprirai il binario VLC con l'editor esadecimale:

sudo bless /usr/bin/vlc

Cerca e modifica la geteuidstringa di getppid, salva ed esci.

Ora puoi avviare VLC come root.


0

VLC non dovrebbe essere eseguito come root. Scusate. - Soluzione

Comunque, ho installato vlc usando il seguente comando;

# aptitude install vlc

E ho provato ad eseguire vlc come root ho riscontrato un errore sul mio terminale;

# vlc

VLC non dovrebbe essere eseguito come root. Scusate.

Se è necessario utilizzare priorità in tempo reale e / o porte TCP privilegiate

puoi usare vlc-wrapper (assicurati che sia root Set-UID e

non può essere eseguito prima da utenti non fidati).

Questo errore indica che vlc diretto non può essere eseguito come utente con privilegi di root. Cosa fare adesso? Non fatevi prendere dal panico. Ecco la soluzione compromessa 😀

# vi /usr/bin/vlc

cercare geteuide sostituirlo congetppid

Salva file ed esci.

Ora dovrebbe funzionare, prova a eseguirlo di nuovo 😉

o

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

Soluzione identica che data in rodvlopes risponde 18 mesi prima!

0

Vai a main menutrovare vlce impostare la proprietà come:

gksu -u vlc

o semplicemente nel tipo di terminale

gksu -u <username(no root)> vlc

Ad esempio, se hai abcutente, il tuo comando sarà:

gksu -u abc vlc

0

Kevin nei commenti alla domanda ha suggerito di usare vlc-wrapper. Ho avuto problemi a scoprire come usarlo, quindi descriverò come l'ho fatto funzionare:

devi impostare il tuo utente non privilegiato in SUDO_UID: esporta SUDO_UID = 1000

se non hai un utente per eseguire vlc in creane uno:

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

se vuoi la variabile SUDO_UID permanente, aggiungila a bashrc:

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

fai attenzione a non scrivere single> invece di >>

quindi usa vlc-wrapper invece di vlc


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

Funziona.


2
Sarebbe bello se tu potessi spiegare perché questa particolare risposta risolve il problema.
Jeff Schaller

1
Soluzione identica che data in rodvlopes risponde 8 mesi prima!

1
-1 perché è un copia-incolla di un'altra risposta in questa pagina esatta.
aggregato

@Jeff Schaller Se geteuid restituisce 0, vlc sa che è root. Tuttavia, getppid restituirà sempre un risultato diverso da zero e la lunghezza del suo nome è convenientemente uguale a quella di geteuid. Quindi, il binario ora collega getppid al posto di geteuid, e vlc non si rende mai conto che è root!
George,

1
@George mi rendo conto di cosa vuol fare; Speravo che user149272 potesse migliorare la loro risposta con una spiegazione.
Jeff Schaller
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.