Как редактировать файл только для чтения в /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/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!", это должно помочь вам.