Comment exécuter le lecteur VLC en root


23

J'ai installé un vlc dans centos 6.5. Je veux l'exécuter en tant que root. Mais je reçois l'erreur suivante,

"VLC n'est pas censé être exécuté en tant que root. Désolé. Si vous devez utiliser des priorités en temps réel et / ou des ports TCP privilégiés, vous pouvez utiliser vlc-wrapper (assurez-vous qu'il s'agit de la racine Set-UID et ne peut pas être exécuté par des non-utilisateurs). utilisateurs de confiance en premier). "


13
Par curiosité, quelle serait la raison de faire cela?
kursus

2
Alors, utilisez vlc-wrappercomme il est dit?
Kevin

3
Conseil de pro: ne faites pas cela.
HalosGhost

1
J'espère que cela vous aidera. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
À certains niveaux, le lien référencé est un hack intéressant (utilisez un éditeur hexadécimal pour remplacer l' getuidappel getpid) car le code source est disponible, une approche plus propre serait de modifier la source pour supprimer complètement le test et de recompiler. Dans les deux cas, je recommanderais de ne pas le faire, mais si vous voulez tirer votre pied. . .
hildred

Réponses:


51

C'est ce qui a fonctionné pour moi. Aucune compilation requise.

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

Utilisation de VLC media player 2.0.3 Twoflower sur un Raspberry Pi.


3
A fonctionné comme un charme. :)
Krishnadas PC

3
Ouais c'est l'enfer :) +1
onalbi

hahaha le patcher pour vérifier pid au lieu de uid, et cela fonctionne très bien. hack génial!
hanshenrik

1
Cela a également fonctionné sur vlc 3.0.1
Ofer Sadan

A travaillé pour moi aussi ...
Danny

17

Une solution consiste à recompiler. Passez le --enable-run-as-rootdrapeau à ./configureet vlc devrait pouvoir s'exécuter en tant que root. La réponse ci-dessus vient d' ici .


2
la recompilation n'est pas le seul moyen, il suffit de changer l'appel à geteuid pour livrer 1. Je le décris sur linuxintro.org/wiki/Run_vlc_as_root
Thorsten Staerk

@ThorstenStaerk, merci de m'avoir fourni les informations.
Ramesh

Pourriez-vous s'il vous plaît marquer la question comme ayant été répondue?
Thorsten Staerk

@ThorstenStaerk: lien mort ...
Alexandre Bourlier

1
@Alexandre Bourlier: fonctionne (encore)
Thorsten Staerk

1

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

  • sauvegarder le binaire VLC:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • trouver l'appel à l' geteuidintérieur du binaire VLC:

    # needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6;}')
    
  • remplacer l'appel pour simplement livrer 01:

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

VLC devrait maintenant fonctionner sous l'utilisateur root!


1

Vous pourrez exécuter VLC en tant que root en modifiant le binaire VLC, situé dans /usr/bin

Tout d'abord, vous aurez besoin d'un éditeur hexadécimal, comme Bless:

sudo apt-get install bless

Ensuite, vous ouvrirez le binaire VLC avec l'éditeur hexadécimal:

sudo bless /usr/bin/vlc

Recherchez et modifiez la geteuidchaîne pargetppid , enregistrez et quittez.

Vous pouvez maintenant lancer VLC en tant que root.


0

VLC n'est pas censé être exécuté en tant que root. Désolé. - Solution

Quoi qu'il en soit, j'ai installé vlc en utilisant la commande suivante;

# aptitude install vlc

Et j'ai essayé d'exécuter vlc en tant que root, j'ai eu une erreur sur mon terminal;

# vlc

VLC n'est pas censé être exécuté en tant que root. Désolé.

Si vous devez utiliser des priorités en temps réel et / ou des ports TCP privilégiés

vous pouvez utiliser vlc-wrapper (assurez-vous qu'il s'agit de la racine Set-UID et

ne peut pas être exécuté par des utilisateurs non approuvés en premier).

Cette erreur indique que vlc simple ne peut pas être exécuté en tant qu'utilisateur privilégié root. Que faire maintenant? Ne paniquez pas. Voici la solution piratée 😀

# vi /usr/bin/vlc

recherchez geteuidet remplacez-le pargetppid

Enregistrer le fichier et quitter.

Maintenant, cela devrait fonctionner, essayez de le réexécuter 😉

ou

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

Solution identique à celle donnée dans les rodvlopes 18 mois plus tôt!

0

Accédez à la main menurecherche vlcet définissez la propriété en tant que:

gksu -u vlc

ou simplement de type terminal

gksu -u <username(no root)> vlc

Par exemple, si vous avez un abcutilisateur, votre commande sera:

gksu -u abc vlc

0

Kevin dans les commentaires de la question a suggéré d'utiliser vlc-wrapper. J'ai eu du mal à savoir comment l'utiliser, je vais donc décrire comment je l'ai fait fonctionner:

vous devez définir votre utilisateur non privilégié dans SUDO_UID: export SUDO_UID = 1000

si vous n'avez pas d'utilisateur pour exécuter vlc en créer un:

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

si vous voulez que la variable SUDO_UID soit permanente, ajoutez-la à bashrc:

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

attention à ne pas écrire single> au lieu de >>

puis utilisez vlc-wrapper au lieu de vlc


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

Ça marche.


2
Ce serait bien si vous pouviez expliquer pourquoi cette réponse particulière résout le problème.
Jeff Schaller

1
Solution identique à celle donnée dans les rodvlopes réponse 8 mois plus tôt!

1
-1 car il s'agit d'un copier-coller d'une autre réponse sur cette page exacte.
aggregate1166877

@Jeff Schaller Si geteuid renvoie 0, vlc sait que c'est root. Cependant, getppid renverra toujours un résultat différent de zéro, et la longueur de son nom est commodément la même que celle de geteuid. Ainsi, le binaire relie maintenant getppid à la place de geteuid, et vlc ne réalise jamais que c'est root!
George

1
@George Je suis conscient de ce qu'il fait; J'espérais que user149272 pourrait améliorer sa réponse avec une explication.
Jeff Schaller
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.