So führen Sie den VLC-Player im Stammverzeichnis aus


23

Ich habe eine VLC in Centos 6.5 installiert. Ich möchte es als root ausführen. Aber ich bekomme folgenden Fehler:

Msgstr "" "VLC sollte nicht als Root ausgeführt werden. Entschuldigung. Wenn Sie Echtzeitprioritäten und / oder privilegierte TCP - Ports verwenden müssen, können Sie vlc - wrapper verwenden (stellen Sie sicher, dass es sich um Set - UID - Root handelt und nicht von Nicht - Benutzern ausgeführt werden kann. vertrauenswürdige Benutzer zuerst). "


13
Was wäre aus Neugier der Grund dafür?
kursus

2
Also benutze vlc-wrapperwie es heißt?
Kevin

3
Pro-Tipp: Tun Sie dies nicht.
HalosGhost

1
Hoffe das hilft dir weiter. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
Chirag Hz

1
Auf einigen Ebenen ist der Link, auf den verwiesen wird, ein interessanter Hack (verwenden Sie einen Hex-Editor, um den getuidAufruf durch zu ersetzen getpid), da Quellcode verfügbar ist. Ein saubererer Ansatz wäre, die Quelle zu bearbeiten, um den Test vollständig zu entfernen und neu zu kompilieren. In beiden Fällen würde ich davon abraten, aber wenn Sie Ihren Fuß abschießen wollen. . .
Hildred

Antworten:


51

Das hat bei mir funktioniert. Keine Kompilierung erforderlich.

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

Verwenden des VLC Media Players 2.0.3 Twoflower auf einem Raspberry Pi.


3
Lief wie am Schnürchen. :)
Krishnadas PC

3
Ja, das ist die Hölle :) +1
onalbi

Hahaha, es zu patchen, um pid statt uid zu überprüfen, und es funktioniert großartig. Super Hack!
Hanshenrik

1
Dies funktionierte auch auf vlc 3.0.1 hervorragend
Ofer Sadan

Arbeitete auch für mich ...
Danny

17

Ein Weg, dies zu umgehen, ist das Neukompilieren. Übergeben Sie das --enable-run-as-rootFlag an ./configureund vlc sollte als root ausgeführt werden können. Die obige Antwort ist von hier .


2
Neukompilierung ist geteuid nicht die einzige Möglichkeit, ändern Sie einfach den Anruf 1. liefern ich dies zu beschreiben linuxintro.org/wiki/Run_vlc_as_root
Thorsten Staerk

@ThorstenStaerk, danke für die Information.
Ramesh

Könnten Sie bitte die Frage als beantwortet markieren?
Thorsten Staerk

@ Thorsten Staerk: Dead Link ...
Alexandre Bourlier

1
@Alexandre Bourlier: funktioniert (wieder)
Thorsten Staerk

1

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

  • Sichern Sie die VLC-Binärdatei:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • Finden Sie den Aufruf in geteuidder VLC-Binärdatei:

    # needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6;}')
    
  • Ersetzen Sie den Anruf, um nur zu liefern 01:

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

VLC sollte jetzt unter dem Root-Benutzer laufen!


1

Sie können VLC als Root ausführen, indem Sie die VLC-Binärdatei in ändern /usr/bin

Zunächst benötigen Sie einen Hex-Editor wie Bless:

sudo apt-get install bless

Dann öffnen Sie die VLC-Binärdatei mit dem Hex-Editor:

sudo bless /usr/bin/vlc

Suchen und ändern Sie die geteuidZeichenfolge mit getppid, speichern und beenden Sie sie.

Sie können jetzt VLC als root starten.


0

VLC soll nicht als root ausgeführt werden. Es tut uns leid. - Lösung

Trotzdem habe ich vlc mit folgendem Befehl installiert;

# aptitude install vlc

Und versuchte, VLC als root auszuführen Ich habe Fehler auf meinem Terminal;

# vlc

VLC soll nicht als root ausgeführt werden. Es tut uns leid.

Wenn Sie Echtzeitprioritäten und / oder privilegierte TCP-Ports verwenden müssen

Sie können vlc-wrapper verwenden (stellen Sie sicher, dass es sich um Set-UID root handelt und

kann nicht zuerst von nicht vertrauenswürdigen Benutzern ausgeführt werden).

Dieser Fehler besagt, dass VLC nicht als Benutzer mit Root-Rechten ausgeführt werden kann. Was nun? Sei nicht in Panik. Hier ist die gehackte Lösung 😀

# vi /usr/bin/vlc

suche es geteuidund ersetze es durchgetppid

Datei speichern & beenden.

Jetzt sollte es funktionieren, versuchen Sie es erneut 😉

oder

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

Identische Lösung, die in rodvlopes 18 Monate früher beantwortet wurde!

0

Gehen Sie, main menuum vlceine Immobilie zu finden und festzulegen als:

gksu -u vlc

oder einfach im Terminal-Typ

gksu -u <username(no root)> vlc

Wenn Sie beispielsweise einen abcBenutzer haben, lautet Ihr Befehl:

gksu -u abc vlc

0

Kevin in den Kommentaren der Frage schlug vor, mit VLC-Wrapper. Ich hatte Probleme, herauszufinden, wie ich es verwenden soll, und beschreibe daher, wie ich es zum Laufen gebracht habe:

Sie müssen Ihren nicht privilegierten Benutzer in SUDO_UID festlegen: export SUDO_UID = 1000

Wenn Sie keinen Benutzer haben, der vlc unter create one ausführen kann:

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

Wenn die Variable SUDO_UID permanent sein soll, fügen Sie sie zu bashrc hinzu:

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

Achten Sie darauf, nicht einzeln> statt >> zu schreiben

Verwenden Sie dann VLC-Wrapper anstelle von VLC


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

Es klappt.


2
Es wäre gut, wenn Sie erklären könnten, warum diese spezielle Antwort das Problem löst.
Jeff Schaller

1
Die identische Lösung, die in rodvlopes gegeben ist, antwortet 8 Monate früher!

1
-1, weil es sich um das Kopieren und Einfügen einer anderen Antwort auf genau dieser Seite handelt.
aggregate1166877

@ Jeff Schaller Wenn geteuid 0 zurückgibt, weiß vlc, dass es root ist. Getppid gibt jedoch immer ein Ergebnis ungleich Null zurück, und die Länge seines Namens entspricht zweckmäßigerweise der von geteuid. Daher verknüpft die Binärdatei jetzt getppid anstelle von geteuid, und vlc erkennt nie, dass es sich um root handelt!
George

1
@ George Ich bin mir bewusst, was es tut; Ich hatte gehofft, dass user149272 ihre Antwort mit einer Erklärung verbessern könnte.
Jeff Schaller
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.