Jak uruchomić odtwarzacz VLC w katalogu głównym


23

Zainstalowałem VLC w Centos 6.5. Chcę uruchomić go jako root. Ale pojawia się następujący błąd,

„VLC nie powinien być uruchamiany jako root. Przepraszamy. Jeśli potrzebujesz używać priorytetów w czasie rzeczywistym i / lub uprzywilejowanych portów TCP, możesz użyć vlc-wrapper (upewnij się, że jest to root Set-UID i nie może być uruchamiany przez użytkownika innego niż najpierw zaufani użytkownicy). ”


13
Z ciekawości, jaki byłby tego powód?
kursus 19.04.14

2
Więc użyj, vlc-wrapperjak to mówi?
Kevin

3
Porada: nie rób tego.
HalosGhost

1
Mam nadzieję, że to ci pomoże. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
Na niektórych poziomach odnośnik stanowi interesujący hack (użyj edytora szesnastkowego, aby zastąpić getuidwywołanie getpid), ponieważ dostępny jest kod źródłowy, czystszym podejściem byłoby edytowanie źródła w celu całkowitego usunięcia testu i ponownej kompilacji. W obu przypadkach odradzam to, ale jeśli chcesz zestrzelić stopę. . .
hildred

Odpowiedzi:


51

To działało dla mnie. Kompilacja nie jest wymagana.

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

Korzystanie z odtwarzacza multimediów VLC 2.0.3 Twoflower na Raspberry Pi.


3
Działa jak urok. :)
Krishnadas PC

3
Tak, to jest piekło :) +1
onalbi

hahaha łata go, by sprawdzić PID zamiast UID, i działa świetnie. niesamowity hack!
hanshenrik

1
Działa to również niesamowicie w wersji VLC 3.0.1
Ofer Sadan

Pracowałem też dla mnie ...
Danny

17

Jednym ze sposobów jest rekompilacja. Przekaż --enable-run-as-rootflagę do, ./configurea VLC powinien być w stanie działać jako root. Powyższa odpowiedź pochodzi stąd .


2
rekompilacja to nie jedyny sposób, wystarczy zmienić wezwanie do geteuid, aby dostarczyć 1. Opisuję
Thorsten

@ThorstenStaerk, dzięki za dostarczenie mi informacji.
Ramesh

Czy możesz zaznaczyć pytanie jako udzielone?
Thorsten Staerk

@ThorstenStaerk: martwy link ...
Alexandre Bourlier

1
@Alexandre Bourlier: działa (ponownie)
Thorsten Staerk

1

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

  • wykonaj kopię zapasową pliku binarnego VLC:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • znajdź wezwanie do geteuidwewnątrz pliku binarnego VLC:

    # needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6;}')
    
  • zastąp połączenie, aby dostarczyć 01:

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

VLC powinno teraz działać pod rootem!


1

Będziesz mógł uruchomić VLC jako root, modyfikując plik binarny VLC znajdujący się w /usr/bin

Najpierw potrzebujesz edytora szesnastkowego, takiego jak Bless:

sudo apt-get install bless

Następnie otworzysz plik binarny VLC za pomocą edytora szesnastkowego:

sudo bless /usr/bin/vlc

Wyszukaj i zmień geteuidciąg getppid, zapisz i wyjdź.

Możesz teraz uruchomić VLC jako root.


0

VLC nie powinno być uruchamiane jako root. Przepraszam. - Rozwiązanie

W każdym razie zainstalowałem VLC za pomocą następującego polecenia;

# aptitude install vlc

Próbowałem uruchomić VLC jako root, ale na moim terminalu wystąpił błąd;

# vlc

VLC nie powinno być uruchamiane jako root. Przepraszam.

Jeśli potrzebujesz użyć priorytetów w czasie rzeczywistym i / lub uprzywilejowanych portów TCP

możesz użyć vlc-wrapper (upewnij się, że jest to root Set-UID i

najpierw nie mogą być uruchamiane przez niezaufanych użytkowników).

Ten błąd mówi, że bezpośrednio vlc nie może być uruchomiony jako użytkownik root. Co zrobić teraz? Nie panikuj. Oto zhakowane rozwiązanie 😀

# vi /usr/bin/vlc

wyszukaj geteuidi zamień nagetppid

Zapisz plik i wyjdź.

Teraz powinno działać, spróbuj uruchomić ponownie 😉

lub

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

Identyczne rozwiązanie podane w rodvlopes odpowiada 18 miesięcy wcześniej!

0

Idź, aby main menuznaleźć vlci ustawić właściwość jako:

gksu -u vlc

lub po prostu w typie terminala

gksu -u <username(no root)> vlc

Na przykład, jeśli masz abcużytkownika, Twoim poleceniem będzie:

gksu -u abc vlc

0

Kevin w komentarzach do pytania sugerował użycie vlc-wrapper. Miałem problemy ze znalezieniem sposobu korzystania z niego, więc opiszę, jak to działa:

musisz ustawić nieuprzywilejowanego użytkownika w SUDO_UID: eksportuj SUDO_UID = 1000

jeśli nie masz użytkownika do uruchomienia VLC w ramach Utwórz:

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

jeśli chcesz mieć zmienną SUDO_UID na stałe, dodaj ją do bashrc:

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

uważaj, aby nie pisać pojedynczego> zamiast >>

następnie użyj vlc-wrapper zamiast vlc


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

To działa.


2
Byłoby dobrze, gdybyś mógł wyjaśnić, dlaczego ta konkretna odpowiedź rozwiązuje problem.
Jeff Schaller

1
Identyczne rozwiązanie podane w rodvlopes odpowiada 8 miesięcy wcześniej!

1
-1, ponieważ jest to kopia-wklej innej odpowiedzi na tej dokładnej stronie.
aggregate1166877

@Jeff Schaller Jeśli geteuid zwróci 0, vlc wie, że jest rootem. Jednak getppid zawsze zwraca niezerowy wynik, a długość jego nazwy jest dogodnie taka sama jak w przypadku geteuid. Zatem plik binarny łączy teraz getppid zamiast geteuid, a vlc nigdy nie zdaje sobie sprawy, że jest rootem!
George

1
@George ja jestem świadoma, co robi; Miałem nadzieję, że użytkownik149272 może poprawić swoją odpowiedź za pomocą wyjaśnienia.
Jeff Schaller
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.