Як запустити плеєр VLC в root


23

Я встановив vlc в centos 6.5. Я хочу запустити його як root. Але я отримую таку помилку,

"VLC не повинен запускатися як root. Вибачте. Якщо вам потрібно використовувати пріоритети в режимі реального часу та / або привілейовані порти TCP, ви можете використовувати vlc-обгортку (переконайтеся, що він є коренем Set-UID і не може бути запущений не- спочатку довірених користувачів). "


13
З цікавості, що було б причиною цього?
kursus

2
Так використовуйте, vlc-wrapperяк це каже?
Кевін

3
Порада: Не робіть цього.
HalosGhost

1
Сподіваюсь, це допоможе вам. hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
На деяких рівнях посилання є цікавим хаком (використовуйте шестигранний редактор для заміни getuidвиклику getpid), оскільки вихідний код доступний, більш чистим підходом буде редагування джерела для повного видалення тесту та перекомпіляція. В обох випадках я б не рекомендував цього робити, але якщо ви хочете відстріляти ногу. . .
hildred

Відповіді:


51

Це те, що працювало для мене. Не потрібна компіляція.

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

Використання медіаплеєра VLC 2.0.3 Twoflower на Raspberry Pi.


3
Працював як шарм. :)
Krishnadas PC

3
Так це пекло :) +1
onalbi

ха-ха-лат, щоб перевірити pid замість uid, і він чудово працює. приголомшливий хак!
hanshenrik

1
Це спрацювало дивовижно і на vlc 3.0.1
Ofer Sadan

Працював і для мене ...
Денні

17

Одним із способів цього є перекомпіляція. Передайте --enable-run-as-rootпрапор ./configureі vlc повинен мати змогу запускатися як root. Наведена відповідь звідси .


2
перекомпіляція - не єдиний спосіб, просто змініть виклик на geteuid для доставки 1. Я описую це на linuxintro.org/wiki/Run_vlc_as_root
Thorsten Staerk

@ThorstenStaerk, дякую за надання мені інформації.
Рамеш

Не могли б ви позначити це питання як відповідь?
Торстен Стаерк

@ThorstenStaerk: мертве посилання ...
Олександр Бурлер

1
@Alexandre Bourlier: працює (знову)
Thorsten Staerk

1

Див. Http://www.linuxintro.org/wiki/Run_vlc_as_root :

  • резервне копіювання двійкового VLC:

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • знайдіть виклик geteuidвсередині двійкового файлу VLC:

    # needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6;}')
    
  • замініть дзвінок просто на доставку 01:

    # sed -ir "s/$needle/\xb8\x01\x00\x00\x00/" /usr/bin/vlc
    
  • перевірити його

Тепер VLC має працювати під користувачем root!


1

Ви зможете запустити VLC як корінь, змінивши бінарний файл VLC, розташований у /usr/bin

По-перше, вам знадобиться шестнадцятковий редактор, як-от Bless:

sudo apt-get install bless

Потім ви відкриєте двійковий код VLC за допомогою шестигранного редактора:

sudo bless /usr/bin/vlc

Шукайте та змінюйте geteuidрядок за допомогою getppid, збереження та вихід.

Тепер ви можете запустити VLC як root.


0

VLC не повинен запускатися як root. Вибачте. - Рішення

У будь-якому разі я встановив vlc за допомогою наступної команди;

# aptitude install vlc

І спробував запустити vlc як root, я отримав помилку на своєму терміналі;

# vlc

VLC не повинен запускатися як root. Вибачте.

Якщо вам потрібно використовувати пріоритети в режимі реального часу та / або привілейовані порти TCP

ви можете використовувати vlc-обгортку (переконайтеся, що це корень Set-UID та

не може спочатку запускатись недовірених користувачів).

Ця помилка говорить, що прямий вперед vlc не може бути запущений як користувач з правами root. Що ж тепер робити? Не варто панікувати. Ось зламане рішення 😀

# vi /usr/bin/vlc

шукайте geteuidта замінюйте йогоgetppid

Зберегти файл та вийти.

Тепер це має працювати, спробуйте запустити його знову 😉

або

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

Ідентичне рішення, яке дано в rodvlopes, відповідає на 18 місяців раніше!

0

Перейдіть, щоб main menuзнайти vlcта встановити властивість як:

gksu -u vlc

або просто термінального типу

gksu -u <username(no root)> vlc

Наприклад, якщо у вас є abcкористувач, ваша команда буде:

gksu -u abc vlc

0

Кевін у коментарях до цього питання запропонував використовувати vlc-обгортку. У мене виникли проблеми з тим, як його використовувати, тому я опишу, як я змусив його працювати:

вам потрібно встановити непривілейованого користувача в SUDO_UID: експортувати SUDO_UID = 1000

якщо у вас немає користувача, щоб запустити vlc під створенням:

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

якщо ви хочете, щоб змінна SUDO_UID була постійною, додайте її до bashrc:

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

будьте обережні, щоб не писати жодного> замість >>

потім використовуйте vlc-обгортку замість vlc


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

Це працює.


2
Було б добре, якби ви могли пояснити, чому саме ця відповідь вирішує проблему.
Jeff Schaller

1
Ідентичне рішення, яке дано в rodvlopes, відповідає на 8 місяців раніше!

1
-1 тому, що це копія-вставка іншої відповіді на цій точній сторінці.
aggregate1166877

@Jeff Schaller Якщо geteuid повертає 0, vlc знає, що це root. Однак getppid завжди поверне ненульовий результат, а довжина його імені зручно однаковою, як у гетеуїда. Таким чином, бінарний тепер посилає getppid замість geteuid, і vlc ніколи не розуміє, що це root!
Джордж

1
@George Я знаю, що це робить; Я сподівався, що користувач149272 може покращити їх відповідь із поясненням.
Jeff Schaller
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.