Как редактировать файл только для чтения в /etc?

Я совершенно новый пользователь, поэтому я еще не уверен, как обойти систему. Я хочу изменить имя моего компьютера, поэтому я попытался изменить имя в /etc/hostname, но это файл только для чтения. Добавление ! персонаж не помог. я использую vim редактировать файл.

6 ответов

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

sudo <editor> <filename>

где может быть vim, nano или любая другая команда редактора, и это та, которую вам нужно отредактировать.

Вы также можете использоватьgksudo gedit <filename>,

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

Если вы редактируете файл без sudoи вам нужно sudo чтобы сохранить, просто используйте команду vim:

:w !sudo tee %

Благодарим доктора Беко. Обратите внимание, что vim заметит изменение файла и спросит вас, хотите ли вы (L) внести изменения, нажмите L.

Очень короткий ответ:

Вы можете изменить файл (даже если он доступен только для чтения), если вы им владеете.

Короткий ответ:

Даже если пользователь, который вы вошли как (в этом случае navid) имеет права администратора, вы не сможете изменить /etc/hostname, поскольку root Пользователь владеет этим файлом. Следовательно, вы должны войти в систему как пользователь root.

Длинный ответ

Предполагая, что вы хотите изменить имя вашего компьютера с navid-Satellite-C50-D в navid-Satellite-C50-E Вот шаги, которые вы должны выполнить:

  1. Войдите в систему как пользователь root:

    navid@navid-Satellite-C50-D:~$ sudo su -
    
  2. Открыть имя хоста:

    root@navid-Satellite-C50-D:~# vi /etc/hostname
    
  3. Ты увидишь navid-Satellite-C50-D, Нажмите i, чтобы перейти в режим вставки, затем измените его на navid-Satellite-C50-E, Затем нажмите Esc + : + w + q + Enter, чтобы сохранить и выйти.

  4. Открытые хосты:

    root@navid-Satellite-C50-D:~# vi /etc/hosts
    

    Верхние 2 строки выглядят так:

    127.0.0.1       localhost
    127.0.1.1       navid-Satellite-C50-D
    
  5. Аналогично тому, что вы сделали на шаге 3, измените имя компьютера с navid-Satellite-C50-D в navid-Satellite-C50-E, Затем сохраните и выйдите.

  6. Выйдите из корневого пользователя:

    root@navid-Satellite-C50-D:~# exit
    
  7. Сохраните все ваши несохраненные работы и перезагрузите компьютер:

    navid@navid-Satellite-C50-D:~$ reboot
    
  8. Откройте свой терминал, и вы увидите, что имя вашего компьютера было успешно изменено!:-)

    navid@navid-Satellite-C50-E:~$ 
    

Примечание. Хотя вы можете достичь желаемого, пропустив шаги 4 и 5, я настоятельно рекомендую также выполнить их, чтобы избежать потенциальных ошибок в будущем.

Смотрите также:

sudo -H gedit <path to file>

например:

sudo -H gedit /etc/environment

или жеsudo nano /etc/environmentCtrl + X и Ctrl + Y и нажмите Enter(для нано)

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

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

Открытый терминал, введите:

sudo -H gedit "your file name "

Если вы используете любой другой текстовый редактор, введите это.

По умолчанию у вас есть разрешение wight на файл hosts только для пользователя root, как показано ниже:

-rw-r--r-- 1 root root 252 Dec 16 08:40 /etc/hosts

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

sudo su -

однако это вообще не рекомендуется.

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

sudo vim /etc/hosts

затем нажмите "Esc" на клавиатуре и введите ": w!", чтобы записать изменения в файл hosts, а затем снова введите ": q" или ": q!", это должно помочь вам.

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