Как редактировать файл только для чтения в /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
Вот шаги, которые вы должны выполнить:
Войдите в систему как пользователь root:
navid@navid-Satellite-C50-D:~$ sudo su -
Открыть имя хоста:
root@navid-Satellite-C50-D:~# vi /etc/hostname
Ты увидишь
navid-Satellite-C50-D
, Нажмите i, чтобы перейти в режим вставки, затем измените его наnavid-Satellite-C50-E
, Затем нажмите Esc + : + w + q + Enter, чтобы сохранить и выйти.Открытые хосты:
root@navid-Satellite-C50-D:~# vi /etc/hosts
Верхние 2 строки выглядят так:
127.0.0.1 localhost 127.0.1.1 navid-Satellite-C50-D
Аналогично тому, что вы сделали на шаге 3, измените имя компьютера с
navid-Satellite-C50-D
вnavid-Satellite-C50-E
, Затем сохраните и выйдите.Выйдите из корневого пользователя:
root@navid-Satellite-C50-D:~# exit
Сохраните все ваши несохраненные работы и перезагрузите компьютер:
navid@navid-Satellite-C50-D:~$ reboot
Откройте свой терминал, и вы увидите, что имя вашего компьютера было успешно изменено!:-)
navid@navid-Satellite-C50-E:~$
Примечание. Хотя вы можете достичь желаемого, пропустив шаги 4 и 5, я настоятельно рекомендую также выполнить их, чтобы избежать потенциальных ошибок в будущем.
Смотрите также:
sudo -H gedit <path to file>
например:
sudo -H gedit /etc/environment
или жеsudo nano /etc/environment
Ctrl + 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!", это должно помочь вам.