Cara menjalankan VLC player di root


23

Saya telah menginstal vlc di centos 6.5. Saya ingin menjalankannya sebagai root. Tapi saya mendapatkan kesalahan berikut,

"VLC tidak seharusnya dijalankan sebagai root. Maaf. Jika Anda perlu menggunakan prioritas waktu nyata dan / atau port TCP istimewa Anda dapat menggunakan vlc-wrapper (pastikan itu adalah set-UID root dan tidak dapat dijalankan oleh non- pengguna tepercaya terlebih dahulu). "


13
Karena penasaran, apa alasan untuk melakukan ini?
kursus

2
Jadi gunakan vlc-wrapperseperti yang tertulis?
Kevin

3
Pro-tip: Jangan lakukan ini.
HalosGhost

1
Semoga ini bisa membantu Anda. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
Pada tingkat tertentu, tautan yang dirujuk adalah retasan yang menarik (gunakan hex editor untuk menggantikan getuidpanggilan getpid) karena kode sumber tersedia, pendekatan yang lebih bersih adalah mengedit sumber untuk menghapus tes sepenuhnya, dan mengkompilasi ulang. Dalam kedua kasus ini saya akan merekomendasikan untuk tidak melakukannya, tetapi jika Anda ingin melepaskan kaki Anda. . .
Hildred

Jawaban:


51

Inilah yang bekerja untuk saya. Tidak diperlukan kompilasi.

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

Menggunakan VLC media player 2.0.3 Twoflower pada Raspberry Pi.


3
Bekerja seperti pesona. :)
Krishnadas PC

3
Yeah This Is Hell :) +1
onalbi

hahaha menambalnya untuk memeriksa pid bukan uid, dan itu berfungsi dengan baik. hack luar biasa!
hanshenrik

1
Ini bekerja luar biasa di vlc 3.0.1 juga
Ofer Sadan

Bekerja untuk saya juga ...
Danny

17

Salah satu cara mengatasinya adalah mengkompilasi ulang. Lewati --enable-run-as-rootbendera ke ./configuredan vlc harus dapat dijalankan sebagai root. Jawaban di atas berasal dari sini .


2
mengkompilasi ulang bukan satu-satunya cara, cukup ubah panggilan ke geteuid untuk mengirim 1. Saya jelaskan ini di linuxintro.org/wiki/Run_vlc_as_root
Thorsten Staerk

@ ThorstenStaerk, terima kasih telah memberikan saya informasi.
Ramesh

Bisakah Anda menandai pertanyaan sebagai dijawab?
Thorsten Staerk

@ThorstenStaerk: dead link ...
Alexandre Bourlier

1
@Alexandre Bourlier: works (again)
Thorsten Staerk

1

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

  • buat cadangan biner VLC:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • temukan panggilan ke geteuiddalam biner VLC:

    # needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6;}')
    
  • ganti panggilan untuk hanya mengirim 01:

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

VLC sekarang harus dijalankan di bawah pengguna root!


1

Anda akan dapat menjalankan VLC sebagai root dengan memodifikasi biner VLC, yang terletak di /usr/bin

Pertama, Anda memerlukan hex-editor, seperti Bless:

sudo apt-get install bless

Kemudian, Anda akan membuka biner VLC dengan hex-editor:

sudo bless /usr/bin/vlc

Cari dan ubah geteuidstring dengangetppid , simpan dan keluar.

Anda sekarang dapat meluncurkan VLC sebagai root.


0

VLC tidak seharusnya dijalankan sebagai root. Maaf. - Solusi

Bagaimanapun, saya menginstal vlc menggunakan perintah berikut;

# aptitude install vlc

Dan mencoba menjalankan vlc sebagai root saya mendapat kesalahan pada terminal saya;

# vlc

VLC tidak seharusnya dijalankan sebagai root. Maaf.

Jika Anda perlu menggunakan prioritas waktu nyata dan / atau port TCP istimewa

Anda dapat menggunakan vlc-wrapper (pastikan root dan Set-UID

tidak dapat dijalankan oleh pengguna yang tidak dipercaya terlebih dahulu).

Kesalahan ini mengatakan straight forward vlc tidak dapat dijalankan sebagai pengguna istimewa root. Apa yang harus dilakukan sekarang? Jangan panik. Inilah solusi yang diretas 😀

# vi /usr/bin/vlc

cari geteuiddan ganti dengangetppid

Simpan file & Keluar.

Sekarang sudah berfungsi, coba jalankan lagi 😉

atau

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

Solusi identik yang diberikan dalam rodvlopes menjawab 18 bulan sebelumnya!

0

Buka untuk main menumenemukan vlcdan menetapkan properti sebagai:

gksu -u vlc

atau hanya dalam tipe terminal

gksu -u <username(no root)> vlc

Misalnya, jika Anda memiliki abcpengguna, perintah Anda adalah:

gksu -u abc vlc

0

Kevin dalam komentarnya menyarankan menggunakan vlc-wrapper. Saya kesulitan menemukan cara menggunakannya sehingga saya akan menjelaskan bagaimana saya membuatnya bekerja:

Anda perlu mengatur pengguna yang tidak memiliki hak istimewa di SUDO_UID: export SUDO_UID = 1000

jika Anda tidak memiliki pengguna untuk menjalankan vlc di bawah buat satu:

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

jika Anda ingin variabel SUDO_UID permanen, tambahkan ke bashrc:

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

berhati-hatilah untuk tidak menulis tunggal> alih-alih >>

kemudian gunakan vlc-wrapper bukan vlc


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

Berhasil.


2
Akan lebih baik jika Anda bisa menjelaskan mengapa jawaban khusus ini menyelesaikan masalah.
Jeff Schaller

1
Solusi identik yang diberikan dalam rodvlopes menjawab 8 bulan sebelumnya!

1
-1 karena ini adalah salin-rekatkan jawaban lain di laman ini.
aggregate1166877

@ Jeff Schaller Jika geteuid mengembalikan 0, vlc tahu itu root. Namun, getppid akan selalu mengembalikan hasil yang tidak nol, dan panjang namanya sama dengan geteuid. Jadi, biner sekarang menautkan getppid sebagai ganti geteuid, dan vlc tidak pernah menyadari rootnya!
George

1
@ George saya tahu apa yang dilakukannya; Saya berharap bahwa user149272 dapat meningkatkan jawaban mereka dengan penjelasan.
Jeff Schaller
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.