Редагуйте файл із правами суперкористувача


54

Коли вам доведеться редагувати системні файли, це звичайна ситуація, коли ви запускали Emacs із звичайним користувачем раніше, тому файл буде захищений від запису. Що я можу зробити, щоб отримати привілеї root? Я маю на увазі щось на кшталт M-x sudodired.

Я не хочу запускати Emacs як суперкористувача, і я не хочу його виходити.

Відповіді:


59

Використовуйте C-x C-fта введіть /su::/etc/hostnameабо, /sudo::/etc/hostnameякщо потрібно,

Для цього використовується пакет TRAMP , який розповсюджується за допомогою Emacs. Цей пакет забезпечує доступ до віддалених файлів і, загалом, до файлів, які Emacs не може відкрити безпосередньо.


1
Дякую. Яке значення має ::?
smonff

7
: - роздільник; ми постачаємо це вдруге, щоб вказати, що аргументів більше немає. /su:otheruser@localhost:Наприклад, ви можете .
артаньйон

5
/sudo::це бродяга стенографія дляsudo:root@<hostname>:
Phils

9

Використовуйте find-fileз волоцюгою. У відповідь на запит /sudo::/etc/ssh/ssh_configвикористовувати sudo та subhell для відкриття цього файлу з правами root. Коли вперше використовується sudo, він запропонує ввести пароль, але поки сеанс не завершиться, ви можете редагувати будь-який файл із цими дозволами, встановивши префіксацію існуючої /sudo::команди.

Докладнішу інформацію див. У http://www.gnu.org/software/tramp/ .


3

Якщо ви використовуєте ivyпакет і налаштували його counsel-find-fileна заміну find-file, то одним із попередньо налаштованих для вас «плющівних дій» є редагування файлу як root. Типовим hydraнатисканням клавіші для цієї дії є r.


2

На сьогодні існує багато пакетів, які вирішують цю проблему (станом на 2018 рік). Деякі з них:

  • sudo-edit, дозволяє перемикати права редагування на вже відкритий файл лише для читання. Просто M-x sudoвведіть пароль і все закінчено. Після багатьох років використання цього, я вважаю, що це зручніше для цієї потреби. sudo-editдозволяє відкривати файл як будь-який користувач, але він за замовчуванням у sudo, якщо його не передбачено.
  • dired-toggle-sudo. Це було перше упаковане рішення, яке я знайшов після того, як задав це питання. Він орієнтований на подвійний режим, тому, якщо ви віддаєте перевагу версії, орієнтованій на файли , дивіться першу букву цього списку.
  • Інші рішення існують у компанії Melpa

2

Якщо ви використовуєте Helm. Вам не потрібен зовнішній пакет / додаткова конфігурація. це працює з коробки.

Всередині helm-find-filesви можете покликати, find file as rootдо кого пов'язаний C-c r. Це працює для файлів або каталогів у helm-find-filesсеансі.

Якщо ви не хочете вводити пароль щоразу, коли ви відкриваєте кореневі файли / dirs. Поставте наступний рядок до свого~/.authinfo.gpg

machine localhost port sudo login root password xxxxxx
machine your_machine_name port sudo login root password xxxxx

джерело

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.