Я ничего не делал на компьютере, кроме Интернета, в течение нескольких дней, и внезапно, когда я попытался сделать:
$ sudo apt-get update
я получил:
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set
or an NFS file system without root privileges?
У меня нет Я понял, что произошло, когда я в последний раз запустил sudo
, когда обновлялся.
sudo
работы с механизмом, который называют setuid (Идентификатор пользователя аппарата или также называют suid). Если тот бит установлен на исполняемом файле (как sudo
), затем приложение выполняется в соответствии с полномочиями пользователя, который является владельцем того файла (в случае sudo
, владелец root
пользователь).
Это означает, sudo выполняется как root
.Пока все хорошо. Но, теперь ничто не препятствует тому, чтобы Вы вставили Карту памяти с оболочкой на нем, которая имеет setuid набор битов. У Вас есть полный корневой доступ! Вот почему обычно Карты памяти смонтированы с опцией монтирования noexec
, предотвратить выполняющийся двоичный файл/сценарии на таком устройстве. Другие монтируют опцию, если Вы все еще хотите выполнить файлы, тот, который упоминается в сообщении об ошибке в Вашем вопросе: nosuid
.
Посмотрите что выборка страницы руководства монтирования:
[...] nosuid Do not allow set-user-identifier or set-group-identifier bits to take effect. [...]
С mount
команда, можно определить, если корневая файловая система смонтирована с той опцией. Просто введите:
$ mount
Можно теперь повторно смонтировать, что файловая система на лету и изменение монтируют опции:
$ mount -n -o remount,suid /
Это устанавливает suid
опция, которая является полной противоположностью nosuid
.