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 privilégiés TCP, vous pouvez utiliser vlc-wrapper (assurez-vous qu'il est défini sur Racine UID et ne peut pas être exécuté par des utilisateurs non approuvés en premier). "
C'est ce qui a fonctionné pour moi. Aucune compilation requise.
sed -i 's/geteuid/getppid/' /usr/bin/vlc
Utilisation du lecteur multimédia VLC 2.0. Twoflower sur un Raspberry Pi.
Explication: Le script d'initialisation vérifie si l'UID est égal à zéro. Zero est réservé à l'utilisateur root. Utiliser sed
pour remplacer geteuid
pour getppid
trompe le script d'initialisation car il est toujours > 0
.
Bien que l'exécution de VLC en tant que root ne soit pas recommandée, cela fonctionne. Soyez conscient des risques et évitez de le faire pour les environnements de production.
Une solution consiste à recompiler. Passe le --enable-run-as-root
drapeau à ./configure
et vlc devraient pouvoir s'exécuter en tant que root. La réponse ci-dessus est de ici .
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 à geteuid
à l'inté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 livrer simplement 01
:
# sed -ir "s/$needle/\xb8\x01\x00\x00\x00/" /usr/bin/vlc
essaye-le
VLC devrait maintenant fonctionner sous l'utilisateur root!
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 chaîne geteuid
par getppid
, enregistrez et quittez.
Vous pouvez maintenant lancer VLC en tant que root.
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
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 privilégiés TCP
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 geteuid
et remplacez-le par getppid
Enregistrer le fichier et quitter.
Maintenant ça devrait marcher, essayez de le relancer ????
o
sed -i 's/geteuid/getppid/' /usr/bin/vlc
Aller à main menu
trouver vlc
et définir la propriété comme:
gksu -u vlc
ou simplement de type terminal
gksu -u <username(no root)> vlc
Par exemple, si vous avez abc
utilisateur, votre commande sera:
gksu -u abc vlc