5

Я настраивал Ubuntu Server и хотел, чтобы FTP-клиент имел доступ к папке /etc/ . Поэтому я использовал команду chown чтобы разрешить моей учетной записи использовать ее. Однако это изменило владение sudo и сломало его. Я не могу запускать какие-либо команды как sudo потому что владелец не root, и я не могу сменить владельца, потому что мне нужно использовать sudo .

Я попытался загрузиться в режиме восстановления с правами root и запустить chown -R root /etc и chown -R 0 /etc но ничего не получилось.

Есть ли способ исправить это без переустановки Ubuntu?

3 ответа3

3

Перезагрузитесь, удерживая нажатой правую клавишу Shift, чтобы вызвать меню загрузки grub2. Затем следуйте этим инструкциям, чтобы войти в однопользовательский режим.

Как мне загрузиться в однопользовательском режиме из Grub?

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

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

chown -R root:root /etc

Это изменит владельца и сгруппирует обратно в корневой каталог по умолчанию.

У меня есть сервер Ubuntu 12.04 LTS, и под /etc есть небольшое количество файлов / каталогов, которые принадлежат другим группам. Кроме того, все файлы принадлежат пользователю root. Файлы с различными владельцами группы:

/etc:
-rw-r----- 1 root daemon   144 Oct 26  2011 at.deny
drwxr-s--- 2 root dip     4096 Aug 22 12:01 chatscripts
-rw-r----- 1 root shadow   697 Oct 31 12:58 gshadow
-rw-r----- 1 root shadow  1569 Oct 31 13:00 shadow

/etc/chatscripts:
-rw-r----- 1 root dip  656 Aug 22 12:01 provider

Таким образом, вы можете запустить команду chgrp для этих файлов после первого запуска chown. Тогда вы должны восстановить все до того, что должно быть. Это не должно занимать среднего пользователя более 10 минут.

e.g. 
  chgrp shadow /etc/shadow

Ну и еще один последний шаг. После внесения изменений перезагрузите компьютер.

/> reboot
1

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

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

1

Если вам нужно это исправить, то сначала проверьте, какие разрешения должны быть. Не все они могут быть root:root. В худшем случае это не так, и вы обнаружите это намного позже, пытаясь выяснить, почему что-то еще не работает.

Установите где-нибудь идентичную версию Ubuntu. Проверьте все разрешения.

Если они все root:root, тогда получите приглашение root. Либо загрузив liveCD, либо загрузившись в однопользовательском режиме. (например, LILO с init =/bin/bash или shift-GRUB). Смонтируйте файловую систему, содержащую /etc, и выберите нужные файлы с правами доступа.

Если не все файлы являются root:root, вы можете создать скрипт для установки значений (используйте ту же установку, которую вы сделали ранее, чтобы узнать, что это за значения).

Если это хорошая свежая установка, вы можете попробовать скопировать свежую и т.д. Из другой установки (переместить старую /etc в другое место, например, скопировать ее в резервную копию etc и скопировать свежую из pendrive). Если вы сделаете это, вам нужно будет убедиться, какой пароль установлен, потому что вы также перезаписываете файлы паролей)

Однако, если это относительно новая установка, которую вы все еще настраиваете: просто переустановите.

Самый быстрый, самый безопасный, но наименее образовательный.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .