Vlc не запускается под root

Обновлено: 06.07.2024

VLC - это бесплатный кроссплатформенный мультимедийный проигрыватель, кодировщик и стример с открытым исходным кодом, который работает. Это очень популярный (и, возможно, самый используемый) медиаплеер.

Некоторые из его примечательных функций включают поддержку почти всех (если не большинства) мультимедийных файлов, он также поддерживает аудио CD, VCD и DVD. Кроме того, VLC поддерживает различные протоколы потоковой передачи, позволяющие пользователям передавать содержимое потоковой передачи по сети.

В этой статье мы покажем вам простой прием, который позволит вам запустить медиаплеер VLC от имени пользователя root в Linux.

Примечание. Существует причина, по которой VLC не запускается под учетной записью root (или не может запускаться как root), потому что учетная запись root предназначена только для обслуживания системы, а не для повседневных действий.

Установите VLC Player в Linux

Установить VLC настолько просто, что он доступен в официальных репозиториях основных дистрибутивов Linux, просто выполните следующую команду в соответствующем дистрибутиве Linux.

Если вы запускаете свою систему Linux как root, например Kali Linux, при попытке запустить VLC вы получите ошибку, указанную ниже.

Запустите команду sed ниже, чтобы внести изменения в двоичный файл VLC, она заменит переменную geteuid (которая определяет эффективный идентификатор пользователя вызывающего процесса) на getppid (которая определит идентификатор родительского процесса вызывающего процесса).

В этой команде «s/geteuid/getppid /» (regexp u003d geteuid, replace u003d getppid) творит чудеса.

В качестве альтернативы отредактируйте двоичный файл VLC с помощью шестнадцатеричного редактора, такого как bless, hexeditor. Затем найдите строку geteuid и замените ее на getppid, сохраните файл и выйдите.

Еще один способ обойти это - загрузить и скомпилировать исходный код VLC, передав флаг --enable-run-as-root в ./configure , и VLC должен иметь возможность работать как root.

Это все! Теперь вы должны запустить VLC от имени пользователя root в Linux. Чтобы поделиться своими мыслями, воспользуйтесь формой обратной связи ниже.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Для выполнения некоторых программ требуются повышенные привилегии – привилегии суперпользователя, права root. А некоторые программы наоборот – не хотят запускаться с повышенными привилегиями. Среди последних на вскидку я могу назвать VLC, Tor Browser, Google Chrome, Chromium.

Почему опасно запускать с root правами VLC, Tor Browser, Google Chrome, Chromium и т.д.?

Главное объяснение – меры безопасности. Например, в теории можно так сформировать медиа поток для VLC media player, что он будет каким-то образом угрожать вашей системе – например, позволит удалённо выполнить команду.

Аналогично с веб-браузерами – в них регулярно находят разные уязвимости, одна из этих уязвимостей может позволить выполнять команды или делать изменения на файловой системе, что, при наличии достаточных прав у веб-браузера, может привести к компрометации (взлому) системы пользователя, у которого он запущен.

Безусловно, это правильные рассуждения, но насколько повыситься уровень угрозы при запуске пары дополнительных программ с правами суперпользователя в системе, где всё остальное (т.е. вообще всё, в том числе другой браузер и другой медиа проигрыватель), работают с правами root? На мой взгляд, это больше риторический, а не практический вопрос.

Насколько опасно работать в учётной записи пользователя root?

Во многих уважаемых источниках (веб-ресурсах, книгах) можно встретить мнение, что работа под root – это так плохо, что уже почти ппц. Это не просто плохо – это уже как в Windows. Также имеется расхожее мнение, что Linux – это какая-то неуязвимейшая система и вам ничего не угрожает, если вы работает под обычным пользователем (по крайней мере, там точно не нужен антивирус).

Обе эти позиции странные. Для выполнения команды, делающий файл исполнимым любым пользователем, не нужны права рута:

Для доступа к настройке автозапуска через crontab -e от имени обычного пользователя не нужны права root’а. Поэтому примерно следующая запись cron может добавить файл в автозагрузку с правами текущего пользователя:

Также не нужны права рута для записи в файл

/.bashrc (это является примерным аналогом автозапуска, но срабатывает только при открытии консоли).

Одного перечисленного достаточно, чтобы установить на систему бэкдор, который будет принимать команды от удалённого атакующего и иметь доступ ко всем файлам пользователя, под которым сделан вход, а также доступ на чтение к некоторым файлам общесистемных настроек.

Само-собой разумеется, имея права суперпользователя можно скомпрометировать систему не только для текущего, но и для всех пользователей, увеличить скрытность (например, используя низкоуровневые методы подключения и туннелирования, методы руткитов для сокрытия и т.д.). Но если уж в веб-браузере есть дыра, позволяющая выполнять команды с правами обычного пользователя или иметь доступ к файловой системе с правами обычного пользователя, то возможна компрометация этого обычного (не root) пользователя. Даже если у него нет прав на выполнении sudo.

Второй причиной, по которой рекомендуют использовать обычную учётную запись – невозможность навредить системе. Это действительно так. Но это супердостоинство, к сожалению, почти полностью нивелируется, если у пользователя всё-таки есть право использовать sudo. Могу показать на своём собственном примере, однажды я перепутал команду

Поскольку я был обычным пользователем, то система не дала мне выполнить вторую команду. Но в поддиректории bin, которая размещается в домашней папке, я запускал программы от суперпользователя. Я подумал, что какая-то из этих программ создала файл, на удаление которого у меня не хватает прав. И перезапустил rm -rf /bin/ добавив к ней sudo. Понятно, что такая невнимательность стоила мне затраченного на переустановку системы времени.

Тем не менее, если вы считаете, что в Kali Linux работа под root’ом в приложениях опасна, то стоит задуматься о смене учётки root на обычного пользователя. Это автоматически разрешит проблему с запуском VLC, Tor Browser, Chromium и т.п. под учётной записью root.

1. Создание и работа под обычным пользователем в Kali Linux

Недостаток этого метода: перед многими командами, которые вы привыкли запускать без sudo, нужно будет добавлять это самое sudo.

Создание нового пользователя в Kali Linux:

Замените new_user на желаемое имя.

Установите для него пароль:

Также замените new_user на выбранное ранее имя пользователя.

Перезагрузитесь и зайдите под только-что созданным пользователем.

Достоинством метода является раз и навсегда решение проблемы с программами, которые не хотят запускаться под рутом, а также возможность полноценного использования Cinnamon.

2. Обход ограничения запуска для любых программ в учётной записи root, запуская их от обычного пользователя

Linux позволяет вам запускать программы от имени других пользователей. Т.е. вы по-прежнему можете использовать учётную запись root, но делать запуск проблемных программ от имени обычного пользователя. Для этого создадим его:

Замените new_user на желаемое имя.

Далее действия очень схожие – установка программы, поиск пути до исполнимого файла, создание ярлыка. Поняв принцип, вы сможете применять этот метод для любой программы, которая не работает под рутом.

Мы будем использовать команду:

В ней /путь/до/файла/запуска меняйте на файл, который будете искать с помощью команды which, new_user на имя пользователя, которого вы создали.

Как запустить Chromium в Kali Linux

Найдите путь файла запуска:


В открывшийся текстовый файл скопируйте-вставьте следующее:

Как запустить VLC в Kali Linux

Найдите путь файла запуска:

Сформируйте команду и сделайте проверку:

В открывшийся текстовый файл скопируйте-вставьте следующее:

Как запустить Google Chrome в Kali Linux

Для 64-битной кали скачиваете файл «64 bit .deb (для Debian/Ubuntu)».

Перейдите в папку со скаченным файлом:

Установите скаченный файл:

Найдите путь файла запуска:

Сформируйте команду и сделайте проверку:

В открывшийся текстовый файл скопируйте-вставьте следующее:

Добавление ярлыков на рабочий стол GNOME 3 в Kali Linux


По умолчанию в Kali Linux нет инструментов для удобного создания ярлыков на рабочем столе. Для создания ярлыка на рабочем столе в GNOME 3 можно воспользоваться обычным текстовым редактором. Создайте текстовый файл на рабочем столе с расширением .desktop. В этот файл скопируйте следующий шаблон:

В нём нужно заменить:

  • Имя программы – на имя, которое вы хотите, чтобы отображалось для ярлыка
  • Команда запуска – путь до исполнимого файла, можно использовать сочетания команд для запуска (как в наших примерах)
  • Пут до файла с изображением – графический файл, который будет иконкой для ярлыка.

Я искал эти файлы прямо в системе, используя программу locate (по ссылке примеры использования этой программы). После установки нового пакета, обновите базу данных:

Чтобы найти нужные изображения, я использовал такие команды как:

При первом запуске ярлыка появится такое предупреждение:


Нажмите «Считать проверенным».

3. Способы удаления проверки запуска программы от root’а

Кроме универсального способа – запуск программы от обычного пользователя, либо переход на использование учётной записи обычного пользователя, у каждой программы есть свои варианты обхода. Например, загрузчиком Tor Browser является скрипт (обычный текстовый файл), в котором проводится проверка, запущена ли программа с правами рута. Поэтому достаточно в этом файле (/opt/Browser/start-tor-browser) строку «id -u» заменить, например, на «echo 1» и Tor Browser будет запускаться от рута.

Для Chromium и Google Chrome имеется ключ --no-sandbox, который позволяет открывать эти программы в Kali Linux без дополнительных манипуляций:

Запуск программы VLC осуществляется бинарным файлом, который можно пропатчить следующей командой:

Также VLC можно скомпилировать самому с флагом --enable-run-as-root.

Заключение

Итак, в этой статье:

  • мы попытались оценить дополнительные риски опасности, возникающие при запуске программ с правами суперпользователя;
  • научились создать обычных пользователей в Linux;
  • узнали, как можно запустить VLC, Google Chrome, Chromium и любые другие программы в Kali Linux будучи root’ом (о том, как запустить Tor Browser в Kali Linux смотрите здесь);
  • (бонус) научились создавать пользовательские ярлыки на рабочем столе Kali Linux.

Если у вас трудности с какой-то другой программой, которая не хочет запускаться в Kali Linux под рутом, то пишите её название здесь в комментариях – будет добавлена инструкция для решения этой проблемы.

apt-get install vlc

VLC Кали Линукс не запускается

Однако, после установки на Кали, проигрыватель, как и остальные программы сторонних разработчиков, отказывается запускаться, если вы работаете под root правами. Кали блокирует запуск программ и утилит. Так что при попытке запустить проигрыватель терминал выдаёт ошибку:

Следующее решение найдено на одном из забугорных сайтов, и оно показалось мне чрезвычайно практичным во всех шагах. И я их сейчас для вас повторю, мне помогло.

А вот что происходит во время команды: вы все эти шаги можете проделать вручную. Сначала сделаем копию файлов проигрывателя командой:

cp /usr/bin/vlc /usr/bin/vlc-backup

Откроем проигрыватель hex-редактором. В терминале наберём команду:

hexeditor /usr/bin/vlc

hex редактор

Это покажет нам код VLC плеера. Низ окна содержит информацию по сочетаниям полезных клавиш редактора, можете развернуть окно во весь экран, чтобы получить полное об этом представление. В активном окне нажмите сочетание Ctrl + W, чтобы вызвать диалоговое окно поиска. Выберите:

Эта функция будет искать по буквенному сочетанию. А требуется найти вот что:

geteuid

новая команда

VLC Кали Линукс от root

Сохранитесь сочетанием Ctrl + X новым файлом со старым названием /usr/bin/vlc . Всё. Если возникли проблемы на любом из этапов, восстановитесь из созданной в начале статьи копии командой в терминале:

Я установил vlc в centos 6.5. Я хочу запустить его как root. Но я получаю следующую ошибку:

«VLC не должен запускаться как root. Извините. Если вам нужно использовать приоритеты в реальном времени и /или привилегированные TCP-порты, которые вы можете использовать vlc-wrapper (убедитесь, что он имеет значение Set-UID root и не может быть запущен не доверенные пользователи).

Это то, что сработало для меня. Никакой компиляции не требуется.

Использование медиаплеера VLC 2.0.3 Twoflower на малиновом пике.

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

резервное копирование двоичного файла VLC:

найдите вызов geteuid внутри двоичного файла VLC:

замените вызов, просто доставив 01 :

VLC теперь должен запускаться под пользователем root!

Вы можете запустить VLC как root, изменив двоичный файл VLC, расположенный в /usr/bin

Сначала вам понадобится hex-редактор, например Bless:

Затем вы откроете двоичный файл VLC с помощью hex-редактора:

Найдите и измените строку geteuid на getppid , сохранить и выйти.

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

VLC не должен запускаться как root. Сожалею. - Решение

В любом случае, я установил vlc, используя следующую команду:

И попытался запустить vlc как root, я получил ошибку на моем терминале;

VLC не должен запускаться как root. К сожалению.

Если вам нужно использовать приоритеты в реальном времени и /или привилегированные TCP-порты

вы можете использовать vlc-wrapper (убедитесь, что это Set-UID root и

не может быть запущен не доверенными пользователями).

Эта ошибка говорит, что прямой vlc не может быть запущен как привилегированный пользователь root. Что делать сейчас? Не паникуйте. Вот взломанное решение

Перейдите в main menu найдите vlc и установите свойство как:

или просто в терминальном типе

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

Кевин в комментариях к вопросу, предложенному с использованием vlc-wrapper. У меня были проблемы с выяснением, как использовать его, поэтому я опишу, как я это сделал:

вам нужно установить своего непривилегированного пользователя в SUDO_UID: export SUDO_UID = 1000

, если у вас нет пользователя для запуска vlc при создании:

, если вы хотите, чтобы переменная SUDO_UID была постоянной, добавьте ее в bashrc:

будьте осторожны, чтобы не писать одиночные> вместо>>> </p>

Читайте также: