Как получить разрешения на редактирование файлов конфигурации системы?

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

Компьютерное программное обеспечение не может хорошо работать на «ухабистых дорогах», и это показывает.

Самый лучший вариант, который у вас есть, - это заменить все оборудование.

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

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

Другим источником странных неисправностей является неисправность источника питания. например жесткие диски нуждаются как в питании 5, так и в 12 В, если 12 В не работают, пластинки перестанут вращаться - появятся ошибки чтения / записи, даже если эти сбои очень короткие. Вы можете не заметить такой провал, пока не станет слишком поздно - когда вы потеряете данные. Конечный результат очень схож, когда сбой питания 5 В, что можно назвать «повреждением головного мозга» от имени жесткого диска.

43
задан 13 April 2012 в 22:14

11 ответов

Какой текстовый редактор вы используете? Если вы являетесь пользователем root и знаете пароль, попробуйте (в терминале):

sudoedit /etc/dhcp/dhcpd.config, если вы используете редактор на основе терминалов, такой как nano или ssh'ing в сервер. gksudo <text editor here> /etc/dhcp/dhcpd.config, если вы используете редактор на основе графического интерфейса, такой как gedit

. В любом случае вам нужно сначала указать свой пароль root по запросу.

В Ubuntu 14.04, gksudo не установлен по умолчанию. Вам нужно будет установить пакет gksu (либо из Software Center, либо через sudo apt-get install gksu), чтобы получить его.

В Ubuntu 17.10 и далее Wayland по умолчанию вместо традиционного X-сервера и работает графических редакторов, поскольку корень затруднен. См. Почему gksu / gksudo не работает с Wayland? для деталей.

35
ответ дан 25 May 2018 в 15:29

Если вы не хотите использовать терминал, вы можете вызвать программу GUI с правами root (этот пример для Gedit):

Нажмите Alt + F2, чтобы открыть диалог «Выполнить». Введите gksudo, а затем исполняемое имя вашей программы (которое может отличаться от имени, отображаемого графическим интерфейсом). Например:
gksudo gedit
Нажмите Enter.
14
ответ дан 25 May 2018 в 15:29

Я не могу придумать случай, когда root получит permission denied.

В 12.04 вы можете сделать это вот так: alt + f2 и ввести gksudo в поле, которое выглядит следующим образом: вы получите поле, подобное этому, и введите gedit и нажмите «ОК»: нажмите «Открыть»: Просто перейдите к файлу: Done

Предупреждение. Существует суперпользователь / корень по причине. Это так, что вы случайно не ставите что-то плохое или из строя в чем-то важном по ошибке. Вы должны быть чрезвычайно осторожны, что все, что вы редактируете как root, - это правильный файл, который вы хотите редактировать, и ваш синтаксис совершенен. Если для редактирования доступны другие инструменты, рекомендуется использовать их. Например, используйте команду терминала visudo вместо ручного редактирования /etc/sudoers.

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

Да, консоль командной консоли восстановления кажется немного более страшной, чем команда терминала . Просто будьте осторожны.

10
ответ дан 25 May 2018 в 15:29
  • 1
    Возможно, вам потребуется обновить это для 13.04 и новее. Некоторые вещи, связанные с gksu / gksudo, изменились (не уверен, что это относится к вашему ответу или нет, хотя). – Seth♦ 26 March 2014 в 04:07
  • 2
    Это мое понимание sudo теперь волшебным образом экспортирует переменные среды DISPLAY и gksu / gksudo ушли или уходят. Я еще не проверил. – RobotHumans 26 March 2014 в 04:29

Вы можете проверить, работает ли ваша текущая оболочка как 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, могут установить или очистить этот атрибут.

Вы можете узнать с помощью справочной страницы chattr

lsattr /etc/dhcp/dhcpd.config

Если это действительно невозможно, вы можете отключить это следующим образом:

[ f3]
5
ответ дан 25 May 2018 в 15:29

Если вы используете Ubuntu 17.04 или выше, рекомендуется использовать брандмауэр gvfs. Просто добавьте admin: // в начало полного пути к файлу, который вы хотите открыть в приложении, например, в текстовом редакторе или в приложениях «Файлы».

Например, чтобы изменить настройки загрузки, откройте

[ f1]

Если вы используете Ubuntu 17.10 с умолчанию Wayland, sudo и gksu, как упоминалось в более старшем ответе, здесь будет Ubuntu 17.04 .

1
ответ дан 25 May 2018 в 15:29

Если ни sudo, ни gksudo не работают, другая опция совпадает со всеми другими дистрибутивами Linux: su.

Например:

su
<texteditor> /etc/dhcp/dhcpd.config

Oh и есть еще одна проблема, ее .conf, а не .config

0
ответ дан 25 May 2018 в 15:29

Чтобы восстановить его с помощью 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 с помощью sudo, которая повышает ваше разрешение только для одной команды. Его часто используют только для приложений с командной строкой, таких как текстовые редакторы CLI, такие как vim, nano и т. Д., Используя gksu, который повышает ваше разрешение только для одной команды, но в отличие от sudo используется для графической программы, такой как GUI текстовые редакторы, такие как gedit. он использует графическое приглашение для облегчения ввода пароля
0
ответ дан 25 May 2018 в 15:29

Я не могу редактировать и сохранять файлы конфигурации в корневой системе (например: /etc/dhcp/dhcpd.config); он просто говорит, что «разрешено отклонение» или опция сохранения заблокирована в текстовом редакторе.

Я уверен, что я пользователь root, но как я могу убедиться? Если я являюсь пользователем root, как это исправить?

@Matthem Вы абсолютно правы, что являетесь администратором, но на Ubuntu пользователь root отключен по умолчанию. Это означает, что даже если вы единственный пользователь в своей системе, а также администратор, вы не можете войти в систему как пользователь root, из соображений безопасности.

Итак, что вы можете сделать, это:

Сначала откройте файл для редактирования, отредактируйте и сохраните файл (скажем, example.txt) в своем домашнем каталоге, а затем перейдите в командной строке, используя CTRL + ALT + F1 или CTRL + ALT + F2, а затем войдите в систему, когда вы войдете в GUI (указав свое имя пользователя и пароль), а затем трассируете файл, используя:
ls  -al
это покажет разные файлы, сохраненные в домашнем каталоге cCurrent. Затем используйте:
sudo mv example.txt /etc/dhcp/
Эта команда запрашивает пароль пользователя root. Введите пароль, и все готово. Затем выйдите из командной строки, используя либо выход из системы, либо выход из нее или CTRL + D. Затем нажмите CTRL + ALT + F7, чтобы вернуться к нормальному графическому интерфейсу, и теперь вы сможете увидеть, что вы успешно отредактировали файл. В качестве альтернативы, так как этот способ редактирования файла немного длинный, вы можете изменить права собственности на эти корневые файлы и каталоги на свое имя пользователя (НО, BEWARE, это вредно, так как в следующий раз, когда вы попытаетесь изменить файл не будет предупреждать вас об изменениях и ограничениях). В любом случае, чтобы изменить права собственности на файлы и каталоги, вы можете использовать следующую команду в командной строке:
sudo chmod -R your-user-name:admin .
Здесь. (DOT) представляет родительский каталог. После успешного выполнения команды перейдите в GUI и выберите любой файл в /bin или /root и щелкните правой кнопкой мыши и выберите «Свойства». Вы увидите, что вы являетесь владельцем файлов, а владелец группы - admin.
0
ответ дан 25 May 2018 в 15:29
sudo < editor > < filelocation >

, например. [F2]

0
ответ дан 25 May 2018 в 15:29

Откройте терминал, введите gksudo nautilus, введите свой пароль. Он откроет систему каталогов в новом окне. Таким образом, вы можете открывать и редактировать / копировать / вставлять любой файл, открывая это вновь открытое окно. Так просто.

-2
ответ дан 25 May 2018 в 15:29

Использовать любимый текстовый редактор

Вы можете использовать sudo -e или его псевдоним sudoedit с вашим любимым (графическим!) текстовым редактором через переменную среды VISUAL1:

VISUAL=gedit sudo -e /path/to/some-config-file.cfg

, которая эквивалентна

VISUAL=gedit sudoedit /path/to/some-config-file.cfg

Конечно, вы можете использовать любой другой редактор, который вам нравится, e. г. leafpad, kate или subl.

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

  • Для использования GEdit VISUAL='gedit -s' .
  • Для использования Кейт VISUAL='kate -n'.

Преимущества

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

Недостатки

  • Вам нужно изучить короткую новую команду.

1 EDITOR или SUDO_EDITOR работают тоже, но имеют меньший приоритет или более специализированы соответственно. Подробнее см. Справочную страницу .

2
ответ дан 9 October 2018 в 09:34

Другие вопросы по тегам:

Похожие вопросы: