Linux pkexec что это

Обновлено: 02.07.2024

Вот что происходит:

В современной системе Ubuntu (и во многих других дистрибутивах GNU / Linux) исправление поврежденного sudoers файла на самом деле довольно простое и не требует перезагрузки, использования live CD или физического доступа к машине.

Чтобы сделать это через SSH, войдите в систему и выполните команду pkexec visudo . Если у вас есть физический доступ к машине, SSH не нужен; просто откройте окно терминала и выполните эту pkexec команду.

Если вам нужно отредактировать один из конфигурационных файлов /etc/sudoers.d (что необычно в этой ситуации, но возможно), используйте . pkexec visudo -f /etc/sudoers.d/filename

Если у вас есть связанная ситуация, когда вам нужно выполнить дополнительные команды системного администратора в качестве пользователя root для решения проблемы (также необычно в этом случае, но часто встречается в других), вы можете запустить интерактивную корневую оболочку с помощью pkexec bash . Вообще говоря, любая неграфическая команда, которую вы запускаете, sudo может быть выполнена pkexec вместо этого.

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

Если это не работает - например, если нет пользователей, авторизованных для запуска программ с правами root с помощью PolicyKit, - загрузитесь с живого компакт-диска Ubuntu (например, с компакт-диска, который вы, вероятно, использовали для установки Ubuntu) и смонтируйте файловую систему для установленная система. Вы можете сделать это, запустив sudo parted -l для просмотра ваших разделов - вероятно, есть только один раздел ext4, и это корневая файловая система.

Предположим, что корневая файловая система установленной системы Ubuntu находится в / dev / sda1. Тогда вы можете смонтировать его с sudo mount /dev/sda1 /mnt . Затем вы можете редактировать файл sudoers установленной системы с помощью sudo nano -w /mnt/etc/sudoers . Или, что еще лучше, вы можете отредактировать его с помощью

20 июл 2018, 16:13

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

  • последняя на сегодня версия 2.02 была выпущена еще в 2009 году , после чего патчилась уже мейнтенерами дистрибутивов
  • На сегодня известна как минимум одна немолодая уязвимость данного пакета, компрометирующая безопасность системы
  • В отличии от sudo - подменялся идентификатор пользователя, и корректировал права и владельца по умолчанию.
  • На странице проекта gksu кррасуется мощная надпись "gksu is being replaced by PolicyKit"
  • Выпилен сначала из debian testing, следом не вошел в очередной LTS Ubuntu 18.04 и LM 19, Arch Linux выкинул пакет из основного репозитория в AUR

Для этого достаточно только описать его разрешения в отдельном xml-конфиге. для xed - cоздадим файлик /usr/share/polkit-1/actions/org.gnome.xed.policy

Вот и все, в общем-то Для запуска редактора с нужными правами достаточно выполнить pkexec xed (этот вызов можно использовать в кнопках запуска и пунктах меню)
окошко с полиси org.gnome.xed запросит пароль и отдаст приложение

Если же мы хотим разрешить пользователю запускать данный экземпляр софта вовсе без запроса пароля - то проставим поле <allow_active>yes</allow_active> , и программа будет запущена привилегированной сразу и без лишних вопросов. Аккуратней с такими разрешениями, желательно не перестараться в угоду своей лени

В завершении можно отметить, что большинство приложений как и xed норм отработает от sudo appname , а те которые действительно требовали для запуска этих манипуляций - уже обычно несут в пакете файлы полиси, например Gparted (ранее работавший от gksu):

но в мышетыкательных сценариях run as root может вполне пригодиться

UPD. Для любителей старых привычек - можно сделать симлинк с pkexec на gksu , чтоб было почти "как раньше"
sudo ln /usr/bin/pkexec /usr/bin/gksu

1. Как устанавливать приложения в Linux?

В репозиториях программного обеспечения дистрибутивов Linux Mint, Ubuntu и Fedora Workstation находятся десятки тысяч приложений, которые могут быть устанавлены в систему бесплатно через Интернет. Установка каждого из приложений осуществляется с помощью нескольких кликов. В данном разделе процесс установки приложений описан более подробно.

2. Как обстоят дела с вирусами и межсетвыми экранами?

В случае использования дистрибутивов Linux Mint, Ubuntu и Fedora Workstation вы будете находиться под надежной защитой от вредоносного программного обеспечения. Если вас интересуют подробности, вы можете ознакомиться с данным разделом.

3. Как произвести дефрагментацию файловой системы в Linux?

Наиболее популярные файловые системы в Linux не требуют дефрагментации. Это объясняется тем, что при наличии более 20% свободного пространства на разделе диска хранящиеся на нем файлы практически не фрагментируются. Если рассматривать данный вопрос более подробно, следует упомянуть о том, что Linux начинает запись файлов с середины раздела диска, оставляя пустое пространство между ними. В Linux файлы в рамках файловой системы хранятся не в формате непрерывной последовательности блоков данных (как это делается в Windows), а в формате блоков данных, разделенных блоками пустого пространства. Таким образом, отдельные файлы очень редко фрагментируются: в файловой системе автоматически резервируется пространство для записи дополнительных данных в каждый из файлов.

Как упоминалось выше, на разделе диска с файловой системой Linux должно быть как минимум 20% пустого пространства, ведь в противном случае будет происходить значительная фрагментация отдельных файлов. А фрагментация файлов, в свою очередь, приведет к снижению скорости работы файловой системы. Исходя из этого, при работе с Linux нужно стараться полностью не заполнять разделы дисков! Данная рекомендация относится лишь к разделам дисков с файловыми системами Linux, такими, как Ext3 и Ext4. Она не относится к разделам с такими файловыми системами, как FAT, FAT32 и NTFS. Разумеется, данная особенность работы файловых систем Linux имеет и свою «цену»: при соблюдении приведенной выше рекомендации объем дискового пространства, доступный в Linux, будет на 20% меньше объема дискового пространства, доступного в Windows. Но в условиях значительного увеличения объемов жестких дисков в текущее время это не является большой проблемой…

Примечание: к сожалению, вы все еще можете обнаружить в сети некоторые утилиты для дефрагментации файловых систем Linux. Не используйте их ни при каких обстоятельствах! Высока вероятность того, что эти утилиты либо нарушат структуру вашей файловой системы настолько сильно, что вы не сможете ее восстановить, либо станут причиной потери большого количества файлов. Все без исключения подобные утилиты являются крайне опасными инструментами, которые не стоит использовать.

Примечание: строго говоря, приведенное выше описание методик размещения файлов в файловых системах Linux и Windows является излишне упрощенным и, следовательно, не совсем корректным: Windows также размещает некоторые файлы в середине файловой системы, а Linux — в ее начале. Но, несмотря на подобное упрощение, общий смысл был передан корректно.

4. Как очистить файловую систему от ненужных файлов?

В Linux не создается большое количество ненужных файлов, которые приходится периодически удалять. Все действия, связанные с очисткой системы Linux Mint описаны в данном разделе, системы Ubuntu - в данном разделе и системы Fedora Workstation - в данном разделе.

5. Как открыть окно терминала?

Многие руководства начинаются с инструкции «открыть терминал» или «открыть окно терминала». Это объясняется тем, что в различных дистрибутивах зачастую используются одни и те же команды для выполнения определенных действий. Благодаря данному обстоятельству, я могу писать максимально емкие руководства…

Но даже этот простой шаг может вызвать проблемы из-за того, что методика запуска терминала отличается в зависимости от используемого окружения рабочего стола. Описания методик открытия окна терминала приведены ниже.

Ubuntu:

Нажмите на логотип Ubuntu на боковой панели («Поиск на компьютере и в интернете»), введите запрос «терминал» и выберите предлагаемое приложение «Терминал».

Linux Mint Cinnamon:

Меню — Администрирование — Терминал

Linux Mint Mate:

Меню — Терминал

Linux Mint 18 Xfce:

Меню — Система — Эмулятор терминала

Xubuntu:

Меню — Инструменты — Эмулятор терминала

Fedora Workstation:

Обзор — Утилиты — Терминал

Строго говоря, в современных дистрибутивах Linux, таких, как Ubuntu, Linux Mint и Fedora Workstation использование терминала не является обязательным. Это объясняется тем, что вы можете изменить большинство настроек с помощью специальных конфигурационных приложений, используя лишь клавиатуру и мышь. Но терминал все еще является «швейцарским ножом» в Linux: с помощью него вы можете выполнить любую операцию! Это возможно благодаря наличию огромного количества приложений с интерфейсом командной строки, многие из которых также описаны на данном веб-сайте.

6. Где взять шрифты Microsoft True Type, такие, как Arial, Times New Roman, Courier и другие?

Шрифты Arial, Times New Roman, Courier, Comic Sans и другие защищены законом об авторском праве и не распространяются в составе дистрибутивов Linux. При этом они могут быть достаточно просто установлены в любом дистрибутиве Linux. В частности, Linux Mint для этого достаточно установить пакет программного обеспечения «ttf-mscorefonts-installer», в Ubuntu - установить пакет программного обеспечения «ubuntu-restricted-extras», а в Fedora Workstation - собрать соответствующий пакет программного обеспечения «msttcorefonts» самостоятельно.

7. Почему мне приходится вводить свой пароль при установке приложений

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

В дистрибутивах Linux Mint и Ubuntu по умолчанию не существует учетной записи пользователя root: даже администратор системы должен использовать обычную учетную запись пользователя с ограниченными привилегиями. При этом администратор может выполнять административные задачи, получая на время права пользователя root (для этого в терминале перед основной командой должна вводиться вспомогательная команда sudo). В дистрибутиве Fedora Workstation учетная запись пользователя root существует, причем пароль для нее задается при установке дистрибутива, но обычный пользователь также может временно получать привилегии администратора благодаря команде sudo (конечно же, если при установке он был назначен администратором системы).

Например, вы можете перезагрузить систему, выполнив с помощью терминала следующую команду:

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

8. Система не предложила мне ввести свой пароль для выполнения второй административной задачи сразу же после первой. Почему?

Данное поведение системы является нормальным и обосновывается требованиями к удобству ее использования. Данные аутентификации хранятся в течение 15 минут.

9. При вводе моего пароля в терминале после соответствующего запроса я не вижу его символов или звездочек. Это нормально?

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

10. Какую систему Linux я использую: 32-битную или 64-битную?

Вы можете выяснить, используется ли 32-битная или 64-битная система Linux, выполнив единственную команду в терминале. Вы должны просто открыть окно терминала и выполнить с помощью него следующую команду (используйте функции копирования/вставки):

На основе выведенного значения несложно сделать вывод об используемой системе:

11. Какие минимальные системные требования для дистрибутива Ubuntu?

В соответствии с моим опытом, минимальные системные требования для достижения «приемлемой производительности» (в этом случае с системой можно будет работать) и «оптимальной производительности» (в этом случае с системой можно будет работать комфортно), являются следующими:

  • Центральный процессор: Intel Pentium 4 3 ГГц
  • Оперативная память: 1.5 ГБ
  • Видеоадаптер: любой с 128 МБ памяти
  • Жесткий диск: любой с 10 ГБ свободного пространства
  • Центральный процессор: Intel Core 2 Duo 1.8 ГГц
  • Оперативная память: 4 ГБ
  • Видеоадаптер: любой с 256 МБ памяти
  • Жесткий диск: любой с 20 ГБ свободного пространства

12. Как я могу открыть файловый менеджер с правами пользователя root?

Для управления файлами с правами пользователя root (администратора) лучше не использовать стандартный файловый менеджер Nautilus (Nemo). Ведь он настолько сильно интегрирован с другими компонентами системы, что вы рискуете нарушить права доступа к элементам вашей домашней директории. Это же утверждение справедливо и для дистрибутива Xubuntu с файловым менеджером Thunar, и для дистрибутива Lubuntu с файловым менеджером PCmanFM.

По описанной причине для управления файлами от лица пользователя root лучше использовать простой, не интегрированный в окружение рабочего стола файловый менеджер. Для его установки необходимо открыть терминал и ввести в него следующую команду (используйте функции копирования/вставки):

Linux Mint, Ubuntu:

sudo apt-get install gnome-commander

Fedora Workstation:

sudo dnf install gnome-commander

По окончании ввода команды следует нажать клавишу Enter для ее исполнения. При запросе вы должны будете ввести свой пароль. В дистрибутивах Ubuntu и Fedora Workstation символы вашего пароля не будут отображаться никоим образом, даже с помощью точек, и это нормально. В дистрибутиве Linux Mint символы вашего пароля будут отображаться с помощью звездочек. После окончания ввода пароля следует снова нажать клавишу Enter.

После окончания процесса установки пакетов программного обеспечения вы можете ввести следующую команду для запуска установленного файлового менеджера (используйте функции копирования/вставки):

По окончании ввода команды следует нажать клавишу Enter для ее исполнения.

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

13. Что такое Xubuntu, Kubuntu, Lubuntu и Edubuntu?

Xubuntu, Kubuntu, Lubuntu и Edubuntu являются официальными версиями дистрибутива Ubuntu (или официальными деривативами). Они отличаются лишь в плане используемых окружений рабочего стола и наборов предустановленных приложений. При этом «под капотом» используются одни и те же технологии и репозитории программного обеспечения проекта Ubuntu.

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

Xubuntu является версией дистрибутива Ubuntu с окружением рабочего стола Xfce. И это на самом деле достойная версия! Так как Xubuntu является официальным членом семейства Ubuntu, она характеризуется соответствующим качеством.

С Xubuntu очень просто работать, ведь окружение рабочего стола является простым и функциональным. Оно не содержит ненужных украшений, что является одной из причин по которым Xubuntu считается очень стабильным и надежным дистрибутивом. Обычно пользователи Windows без каких-либо проблем начинают работать с ним сразу же после установки.

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

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

Kubuntu использует пакетную базу дистрибутива Ubuntu в качестве основы для окружения рабочего стола KDE. В то время, как главной идеей разработчиков окружения рабочего стола GNOME являлась простота работы, главной идеей разработчиков окружения рабочего стола KDE являлась реализация меню для выполнения максимального количества различных настроек. Количество настроек данного окружения рабочего стола настолько велико, что я считаю, что окружение рабочего стола KDE не очень подходит для знакомства с Linux.

KDE является очень привлекательным окружением рабочего стола, поэтому оно настолько же требовательно к системным ресурсам, насколько и окружение рабочего стола GNOME.

Lubuntu является самой легковесной версией дистрибутива Ubuntu: используемое в ней окружение рабочего стола предъявляет минимальные требования к системным ресурсам и в то же время с ним достаточно легко работать. При этом окружение рабочего стола выглядит достаточно строгим: какие-либо украшения отсутствуют в нем как класс. Данная версия дистрибутива может быть рекомендована разве что для очень старых компьютеров.

Edubuntu является специализированной версией дистрибутива Ubuntu с набором образовательного программного обеспечения, предназначенной для школ. Данная версия дистрибутива Ubuntu нередко используется и по той причине, что содержит предустановленный LTSP-сервер, позволяющий работать с тонкими клиентами.

14. Как сделать так, чтобы мой компьютер отключался по прошествии заданного времени?

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

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

Пришло время вычислить количество секунд, в течение которых компьютер должен работать. Например, если вы хотите, чтобы компьютер работал в течение следующей половины часа, вам придется использовать значение 30 x 60 = 1800 секунд. Если вы действительно желаете, чтобы ваш компьютер отключился через пол часа, вам придется выполнить следующую команду (также используйте функции копирования/вставки для того, чтобы избежать ошибок при вводе):

sleep 1800 && shutdown -h now

По окончании ввода команды следует нажать клавишу Enter для ее исполнения и не закрывать окно терминала. В результате ваш компьютер автоматически выключится по прошествии 30 минут! Если же вы желаете просто протестировать работоспособность данного механизма, вы можете использовать значение 5 в качестве аргумента команды sleep. В результате компьютер должен выключиться по прошествии 5 секунд без показа каких-либо диалоговых окон.

15. Как деактивировать клавишу Caps Lock (во всех редакциях Linux Mint, Ubuntu, Fedora Workstation)?

Некоторым людям очень не нравится клавиша Caps Lock, так как она периодически случайно нажимается, в результате чего меняется регистр символов вводимого текста. Для ее деактивации вам не придется выполнять каких-либо сложных действий. Во всех редакциях дистрибутивов Linux Mint, Ubuntu и Fedora Workstation вы должны действовать одинаковым, описанным ниже образом.

В первую очередь следует убедиться в том, что клавиша Caps Lock не активирована, ведь в результате описанных ниже манипуляций она не будет реагировать на ваши нажатия. По этой причине в том случае, если она была активирована, вы не сможете ее деактивровать!

Теперь следует открыть окно терминала, скопировать и вставить в него следующую команду:

setxkbmap -option caps:none

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. В результате клавиша Caps Lock будет деактиврована! Теперь вы сможете вводить заглавные буквы лишь при нажатии клавиши Shift.

Примечание: данная команда действует лишь в рамках текущей пользовательской сессии и не переживет перезагрузку компьютера. Если вы хотите, чтобы она автоматически исполнялась сразу же после входа в систему, вы можете просто добавить ее в список автозагрузки. В этом случае клавиша Caps Lock будет автоматически деактивироваться сразу же после входа в систему с использованием данных вашей учетной записи.

Например, в Linux Mint Cinnamon для добавления команды в список автозагрузки следует осуществить переход в рамках главного меню системы: «Меню — Параметры — Автозагрузка». После этого в открывшемся окне следует нажать кнопку «Добавить» и выбрать пункт меню «Команда пользователя».

При необходимости вы сможете снова активировать клавишу Caps Lock с помощью утилиты setxkbmap без каких-либо сложностей. Просто выполните команду setxkbmap с «пустым» списком параметров аналогичным образом:

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. В результате клавиша Caps Lock начнет работать как раньше.

16. Хотите ознакомиться с дополнительными советами?

Хотите узнать о других настройках и приемах работы с Linux-системами? На данном веб-сайте размещено большое количество подобных материалов. Вторая часть данного материала размещена здесь.

принес мне еще один, который создаст проблемы для новых пользователей этой команды:

  • Как настроить pkexec для простоты использования?

Например, когда делаете следующее:

(Открытие файла в терминале)

(Открытие файла в графическом интерфейсе)

Последний получает следующую ошибку:

Теперь это принесло мне следующие вопросы:

Как настроить, pkexec чтобы избежать этого? Аналогично тому, как sudo / gksu ведут себя, когда делают то же самое (они только запрашивают пароль).

Если применимо, как сказать, чтобы он не запрашивал пароль после первого применения его к команде (или включения первой команды, если она настраивается)?

Где сохранить файл конфигурации, если он еще не существует?

Есть ли приложение с графическим интерфейсом для настройки pkexec использования (Policy Kit)?

Хм, не могу добавить комментарий - поэтому приходится прибегать к ответу . Использование: alias pkexec = 'pkexec env DISPLAY = $ DISPLAY XAUTHORITY = $ XAUTHORITY' Означает, что графический интерфейс входа в систему возвращает путь env, а не команду в конечном итоге выполняется. Есть ли способ организовать использование «env DISPLAY = $ DISPLAY XAUTHORITY = $ XAUTHORITY», чтобы pkexec gui возвращал путь к команде, которая в конечном итоге выполняется? Смотрите рисунок

Как настроить, pkexec чтобы избежать ошибок при запуске приложений с графическим интерфейсом?

Я нашел два возможных пути:

Как видите, используя следующее:

не получит никакой ошибки. И это нормально, потому что man pkexec очень ясно в этом вопросе:

В результате вы можете создать ( постоянный ) псевдоним (это самый простой способ):

Или (опять же) как man pkexec говорится:

Вы можете создать новый файл политики с /usr/share/polkit-1/actions именем com.ubuntu.pkexec.gedit.policy с помощью следующего XML-кода внутри, где самое важное - установить org.freedesktop.policykit.exec.allow_gui непустое значение:

Как сказать, чтобы он не запрашивал пароль после первого применения к команде?

Для этих трех настроек тегов: allow_any , allow_inactive и allow_active из файла политики, следующие варианты:

  • нет : пользователь не авторизован для выполнения действия. Поэтому нет необходимости в аутентификации.
  • да : пользователь имеет право выполнять действие без какой-либо аутентификации.
  • auth_self : требуется аутентификация, но пользователь не обязательно должен быть администратором.
  • auth_admin : требуется аутентификация пользователя с правами администратора.
  • auth_self_keep : так же, как auth_self, но sudo авторизация длится несколько минут.
  • auth_admin_keep : так же, как auth_admin, но sudo авторизация длится несколько минут.

Таким образом, если вы используете опцию auth_admin_keep (или, в зависимости от обстоятельств, auth_self_keep ), pkexec не будет запрашивать пароль снова некоторое время (по умолчанию это время равно 5 минутам, как я проверял). Недостатком здесь является то, что эта вещь применима только для одной и той же команды / приложения и действительна для всех пользователей (если только она не отменяется в более поздней конфигурации).

Где сохранить файл конфигурации, если он еще не существует?

Файлы конфигурации или определения polkit можно разделить на два вида:

Действия определены в XML .policy файлах, расположенных в /usr/share/polkit-1/actions . К каждому действию прикреплен набор разрешений по умолчанию (например, вам нужно указать в качестве администратора, чтобы использовать действие GParted). Значения по умолчанию могут быть отменены, но редактирование файлов действий НЕ является правильным способом. Имя этого файла политики должно иметь следующий формат:

Есть ли приложение с графическим интерфейсом для настройки pkexec использования?

Из того, что я знаю, до сих пор (18.01.2014) не существует чего-то подобного. Если в будущем я что-то найду, я тоже не забуду обновить этот ответ.

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