2

Это сбивает с толку меня.

sudo [any command here ]
bash: sudo: command not found

Ик!

Я пытался удалить Ruby Version Manager (по какой-то причине он не будет компилироваться). Где-то, следуя их пошаговым инструкциям, я стал лишенным судо.

Вот мой $ PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

which sudo ничего не возвращает.

Я решил попробовать выстрел в темноте, пока жду. У меня есть старый Mac, который я только что обновил до Lion два дня назад. Я скопировал его /usr/bin/sudo на проблемный компьютер. Теперь, когда я пытаюсь сделать sudo , я получаю:

sudo: должен быть корень setuid

Я не особо разбираюсь в командной строке - это кажется плохим.

3 ответа3

3

Попробуйте использовать Дисковую утилиту для восстановления прав доступа к файлам - если повезет, вам следует сбросить бит setuid в скопированном файле /usr /bin /sudo. Это флаг, который позволяет sudo выступать в роли пользователя root, даже если он не запускается от имени root, что, очевидно, необходимо сделать, но вам нужно sudo, чтобы установить его с помощью командной строки, чтобы у вас возникла проблема с яйцом и яйцом. ,

1

sudo когда-нибудь полностью исчезал? Вы заменили его файлом, который вы получили с другого компьютера? Интересно, как тебе удалось удалить sudo ? RVM работает без повышенных привилегий, и у него никогда не должно быть разрешений на такие вещи.


В любом случае, попробуйте восстановить из последней резервной копии. Если у вас его нет, восстановите разрешения с помощью Дисковой утилиты. Может помочь.

Вы можете попытаться загрузить Mac в однопользовательском режиме. Сделайте это, удерживая Command-S во время загрузки. Здесь введите

mount -uw /

А затем попробуйте правильно смоделировать файл. Что-то вместе:

chown root /usr/bin/sudo 
chmod u+s /usr/bin/sudo

Если это не помогло, просто переустановите Lion - вот для чего нужно восстановление. Это не удалит ваши файлы. Вы должны были бы очистить диск, чтобы что-то потерять, но я настоятельно рекомендую сделать резервную копию.

0

Я вижу, что сообщение Майка Скотта ответило на вашу проблему sudo, но я также затронул проблему с RVM, не компилирующим Ruby. Похоже, Apple перешла на использование LLVM в качестве компилятора по умолчанию в 10.7 и поэтому связала gcc с llvm-gcc.

$ which gcc                                                                  
/usr/bin/gcc

$ ls -la /usr/bin/gcc                                                        
lrwxr-xr-x  1 root  wheel  12 30 Nov 13:40 /usr/bin/gcc -> llvm-gcc-4.2

gcc все еще там, но он находится в /usr/bin/gcc-4.2. Указание компилятора C для использования путем установки переменной среды CC должно позволить вам компилировать рубины.

$ CC=/usr/bin/gcc-4.2 rvm install 1.9.2

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