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

Я не могу войти в старое имя пользователя, потому что он не существует на экране входа в систему. Я не могу воссоздать старое имя пользователя, потому что у меня нет привилегий root. Я пробовал много способов перехода в режим root, и никто не работает. Есть ли способ изменить новое имя пользователя на старое?

Обычно я получаю это сообщение:

sudo: error in /etc/sudo.conf, line 0 while loading plugin `sudoers_policy' sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner sudo: fatal error, unable to load plugins 

Начните с перезагрузки в режим восстановления ( на этот вопрос ). Подходите к точке, где вы root.

После этого посмотрите на stat /usr/lib/sudo/sudoers.so . Я вижу:

 ... Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) ... 

По внешнему виду, это не будет правдой для вас, но не совсем уверен, что вы сделали. Если владелец не является root или разрешения имеют значение, отличное от 0644, мы можем быстро это исправить:

 chown root: /usr/lib/sudo/sudoers.so chmod 0644 /usr/lib/sudo/sudoers.so 

Если это разрешение / право собственности является единственной проблемой, это должно исправить это. Просто запустите reboot чтобы снова загрузиться в Ubuntu.

Если вы полностью уничтожили / usr (например, с помощью chmod -r ... /usr ), вам нужно восстановить владельцы гораздо больше файлов. К счастью, /usr довольно коррумпирован. Вы можете восстановить основную часть разрешений с помощью:

 chown -r root /usr chown daemon /usr/bin/at chown libuuid /usr/sbin/uuidd 

Если вы хотите знать, как я получил этих двух отставших, я запустил sudo find /usr -exec stat -c '%U %n' {} + | grep -v root sudo find /usr -exec stat -c '%U %n' {} + | grep -v root на чистой системе. Если у вас последняя резервная копия, я бы предложил запустить ее против вашей резервной копии.