Я не могу редактировать и сохранять файлы конфигурации в корневой системе (например: /etc/dhcp/dhcpd.config
); он просто говорит «отказано в разрешении» или опция сохранения заблокирована в текстовом редакторе.
Я уверен, что являюсь пользователем root, но как мне убедиться? Если я пользователь root, как мне это исправить?
Какой текстовый редактор вы используете? Если вы являетесь пользователем root и знаете пароль, попробуйте (в терминале) либо:
sudoedit /etc/dhcp/dhcpd.config
, если вы используете терминальный редактор, такой как nano
или ssh'ing на сервер. gksudo <текстовый редактор здесь> /etc/dhcp/dhcpd.config
, если вы используете редактор на основе графического интерфейса, такой как gedit
В в любом случае вам нужно будет сначала указать свой пароль root по запросу.
В Ubuntu 14.04 и более поздних версиях gksudo
не устанавливается по умолчанию. Вам нужно будет установить пакет gksu
(либо из Центра программного обеспечения, либо через sudo apt-get install gksu
), чтобы получить его.
В Ubuntu 17.10,Wayland используется по умолчанию вместо традиционного X-сервера, и запускать графические редакторы с правами root затруднительно. Подробнее см. Почему gksu / gksudo или запуск графического приложения с помощью sudo не работают с Wayland? .
В Ubuntu 18.04 gksudo
недоступен в официальных репозиториях. Используйте вместо него sudo -H
или протокол admin: //
:
gedit admin:///etc/dhcp/dhcpd.config
Если вы не хотите использовать терминал, вы можете вызвать программу с графическим интерфейсом пользователя как root таким образом (этот пример для Gedit):
Введите gksudo
, а затем имя исполняемого файла вашей программы (которое может отличаться от имени, отображаемого в графическом интерфейсе пользователя). Например:
gksudo gedit
sudo < editor > < filelocation >
например:
sudo -H gedit etc/dhcp/dhcpd.config
Если вы используете Ubuntu 17.04 или выше, рекомендуется использовать бэкэнд администратора gvfs . Просто добавьте admin: //
в начало полного пути к файлу, который вы хотите открыть в приложении, таком как Текстовый редактор или Приложения для файлов .
Например, чтобы изменить настройки загрузки, откройте
admin:///etc/default/grub
. Если вы используете Ubuntu 17.10 с Wayland по умолчанию, sudo
и gksu
, как упоминалось в предыдущем ответе здесь, не будут работа.
Вы можете использовать sudo -e
или его псевдоним sudoedit
с вашим любимым (графическим!) Текстовым редактором через VISUAL
переменная среды 1 :
VISUAL=gedit sudo -e /path/to/some-config-file.cfg
что эквивалентно
VISUAL=gedit sudoedit /path/to/some-config-file.cfg
Конечно, вы можете использовать любой другой редактор, который вам нравится, например. г. листовая панель
, Кейт
или subl
.
Некоторые редакторы предлагают параметр командной строки, чтобы всегда запускал новый экземпляр, даже если один в настоящее время работает. Поскольку sudoedit
ожидает завершения процесса редактора, чтобы применить изменения к редактируемому файлу, это может быть необходимо, если у вас есть другие запущенные экземпляры того же редактора:
VISUAL = ' gedit -s '
. VISUAL =' kate -n '
. pkexec
(для которых вам нужно будет редактировать файлы ... как суперпользователь, именно это и пытается решить этот ответ). sudo -H
и т. д. root
, которые могут или не могут выглядеть и вести себя приемлемо. 1 EDITOR
или SUDO_EDITOR
тоже работают, но имеют меньший приоритет или более специализированные соответственно. Подробности см. На странице руководства .
На всякий случай создайте резервную копию с помощью cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup
и запустите gksu gedit /etc/dhcp/dhcpd.config
Замените gedit
редактором по вашему выбору
, вы получите подобное приглашение
Введите здесь свой пароль.
Откроется новое окно, в котором вы можете редактировать свою конфигурацию.
В случае, если что-то пойдет не так, вы можете восстановить его из резервной копии в домашней папке.
Вы получаете «доступ запрещен» из-за того, как Linux обрабатывает разрешения .
Все, что находится в папке $ HOME
, принадлежит пользователю, тогда как почти все остальное принадлежит пользователю root.
Файл /etc/dhcp/dhcpd.conf
, к которому вы пытаетесь получить доступ, принадлежит пользователю root, и большинство файлов в / etc /
по умолчанию принадлежат пользователю root по соображениям безопасности.
Вы все еще можете редактировать этот файл, повышая свои права доступа.
Для этого у вас есть несколько способов:
использовать su
, что означает переключение пользователя. Без каких-либо атрибутов он функционирует как команда для переключения на учетную запись root, но вам необходимо ввести пароль пользователя, на которого вы переключаетесь, и поскольку root не имеет пароля по умолчанию в Ubuntu (фактически отключая учетную запись root) , это не сработает, если вы не установили пароль для пользователя root, что не рекомендуется.
с использованием sudo
, что повышает ваши права доступа только для одной команды. Обычно это используется только для приложений командной строки, таких как текстовые редакторы CLI, такие как vim
, nano
и т. Д.
с использованием gksu
, что повышает ваши права доступа только для одного команда, но в отличие от sudo
используется для графических программ, таких как текстовые редакторы GUI, такие как gedit
. для упрощения ввода пароля используется графическая подсказка.
Вы можете проверить, работает ли ваша текущая оболочка как root, несколькими способами
~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)
Другие ответы дают хорошие способы повышения до привилегий root, поэтому я не буду их повторять. Предполагая, что вы являетесь пользователем root и все еще не можете редактировать файл /etc/dhcp/dhcpd.config
- тогда очень , вероятно, кто-то или какая-то программа использовала chattr
программа, чтобы сделать файл неизменяемым.
Из справочной страницы chattr :
Файл с атрибутом 'i' нельзя изменить: его нельзя удалить или переименовать , нельзя создать ссылку на этот файл и записать в файл данные. Только суперпользователь или процесс, обладающий способностью
CAP_LINUX_IMMUTABLE
, может установить или сбросить этот атрибут.
Вы можете узнать, используя lsattr
lsattr /etc/dhcp/dhcpd.config
Если он действительно неизменяемый, вы можете отключить его вот так :
chattr -i /etc/dhcp/dhcpd.config
Я не могу вспомнить случай, когда root получил бы отказ в разрешении
.
В 12.04 это можно сделать следующим образом: alt + f2 и введите gksudo
в поле, которое выглядит следующим образом:
Вы получите в таком поле введите gedit
и нажмите ОК :
Щелкните Открыть :
Просто перейдите к файлу:
Готово
Предупреждение: не зря существует суперпользователь / root. Это для того, чтобы вы случайно не поместили что-то плохое или не в структуру чего-то важного по ошибке. Вы должны быть чрезвычайно осторожны, чтобы все, что вы редактируете как root, было правильным файлом, который вы собираетесь редактировать, И чтобы ваш синтаксис был идеальным. Если для редактирования доступны другие инструменты, рекомендуется их использовать. Например, используйте команду терминала visudo
вместо ручного редактирования / etc / sudoers
.
Некоторые файлы, которые могли испортиться, легко восстановить. Другие относительно сложны, или вам нужно использовать консоль восстановления и множество командных строк.
Да, командная строка консоли восстановления кажется немного страшнее, чем даже эта . Только будьте осторожны.