Вопрос или проблема
У меня есть ноутбук с Linux Ubuntu (16.4), который не поддерживает никакие команды, начинающиеся с sudo, и я искал решение в интернете, но не нашел, потому что мы не знаем пользователя root и пароль, поэтому я полностью в тупике.
Например: если я хочу выполнить какую-либо команду, это не работает, например:
sudo apt-get update
И я получаю ошибку:
sudo: /usr/bin/sudo должен принадлежать uid 0 и иметь установленный бит setuid
Как это исправить?
Я не хочу сейчас форматировать машину.
Попробуйте изменить обратно разрешения для бинарного файла sudo
:
Перезагрузитесь в режиме восстановления/чрезвычайной ситуации
Выполните следующую команду:
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Перезагрузитесь обратно в нормальный режим. Если это не сработает и у вас все еще есть проблемы с разрешениями, значит, вы сломали вашу систему, и простое исправление команды sudo ничего не исправит – вам потребуется переустановить вашу машину.
Ищя в интернете, я нашел, что для решения этой технической проблемы вам нужно переключиться в режим восстановления Ubuntu:
mount -o remount,rw /
mount –all
chown root:root /urs/bin/sudo
chmod 4755 /urs/bin/sudo
restart
Также это полезная информация:
исправить ошибку sudo
вам следует переустановить команду “sudo”
для этого выполните следующий рецепт:
1- установить “synaptic package manager”
вы можете скачать его:
https://pkgs.org/download/synaptic
или
http://archive.ubuntu.com/ubuntu/pool/universe/s/synaptic/synaptic_0.84.3ubuntu1_amd64.deb
или
поиск в приложении обновления программного обеспечения Ubuntu “synaptic package” и установить его
изображение:
вставьте описание изображения здесь
2- открыть приложение
3- в верхней части страницы нажмите на поле поиска и введите “sudo
”
теперь найдите “sudo
” в списке > и нажмите на сплошной квадрат & в открывшемся квадрате выберите “пометить для переустановки” > затем нажмите “Применить” в верхней части страницы
и установите его
изображения:
вставьте описание изображения здесь & вставьте описание изображения здесь
4- откройте терминал и выполните команду “sudo
“
ты получаешь:
usage: sudo -h | -K | -k | -V usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user] usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command] usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [<command>] usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...
итак: sudo теперь работает
наслаждайтесь…
Если у вас все еще есть ваш пароль. Попробуйте:
su
Вас попросят ввести ваш пароль, и вы станете root.
Следуйте указанию команды,
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
вы должны вернуть себе sudo.
.
Ответ или решение
Ваша проблема со связанной с sudo
на Ubuntu 16.04 является довольно распространенной и часто связана с неправильными разрешениями для бинарного файла sudo
. Давайте подробнее рассмотрим теорию, примеры и практическое применение решения этой проблемы.
Теория
Команда sudo
позволяет пользователям выполнять задачи от имени суперпользователя или другого пользователя, предварительно вводя свой пароль. Это ключевой компонент системы безопасности большинства дистрибутивов Linux, включая Ubuntu. При запуске команды sudo
, она обращается к бинарному файлу, расположенного по пути /usr/bin/sudo
, который должен быть владельцем root
и иметь установленный бит setuid.
Ошибки, связанные с нарушением этих настроек, приводят к уведомлению:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
Это означает, что либо владелец файла изменен с root
(uid 0), либо потерян бит setuid, необходимый для выполнения sudo
с повышенными привилегиями.
Пример
Предположим, вы случайно изменили разрешения или владельца файла /usr/bin/sudo
. Это может произойти при некорректном использовании команд, изменяющих разрешения с использованием chmod
или chown
. В результате, команды с использованием sudo
начинают возвращать ошибку, и система больше не позволяет выполнять любые операции, требующие привилегий администратора.
Применение
Восстановление правильных разрешений и восстановления sudo
потребует выполнения нескольких шагов. Рассмотрим их подробнее.
-
Режим восстановления. Поскольку
sudo
не функционирует должным образом, обычные операции через терминал недоступны. Необходимо загрузиться в режиме восстановления:- Перезагрузите компьютер и, до загрузки операционной системы, удерживайте клавишу
Shift
, чтобы попасть в меню GRUB. - Выберите пункт "Advanced options for Ubuntu", затем выбирайте запись с (recovery mode) в конце.
- В меню восстановления выберите "root".
- Перезагрузите компьютер и, до загрузки операционной системы, удерживайте клавишу
-
Перемонтирование файловой системы. По умолчанию, в режиме восстановления файловая система монтируется в режиме только для чтения. Чтобы исправить это:
mount -o remount,rw /
-
Исправление разрешений и владельца sudo. Далее выполните команды для исправления владельца и разрешений файла
sudo
:chown root:root /usr/bin/sudo chmod 4755 /usr/bin/sudo
Эти команды изменят владельца файла обратно на
root
и установят бит setuid. -
Перезагрузка. Для завершения и проверки изменений, перезагрузите систему:
reboot
После загрузки в обычный режим попробуйте снова выполнить команду sudo apt-get update
или любую другую команду sudo
.
Альтернативные решения
Если вышеуказанные шаги не помогли, существует еще несколько подходов, которые можно попробовать:
- Переустановка
sudo
: УстановитеSynaptic Package Manager
(если он еще не установлен), воспользовавшись доступной в системе графической оболочкой (например, Ubuntu Software), и переустановите пакетsudo
черезSynaptic
. - Обновление или восстановление системы: В крайнем случае, рассмотрите возможность обновления вашей системы до более свежей версии Ubuntu. Это может решить множество проблем, включая проблемы с устаревшими пакетами.
Заключение
Ошибки при работе с sudo
могут серьезно повлиять на администрирование вашей системы. Важно всегда соблюдать осторожность при изменении системных файлов и следовать безопасным практикам. Выполнение инструкций, представленных выше, поможет восстановить доступ к команде sudo
в вашей системе Ubuntu 16.04.