Я могу думать о двух возможных объяснениях.
vim
на самом деле псевдоним. Отметьте это which
не показывает псевдонимы, необходимо использовать type
вместо этого (если Вы не выполняете csh или tcsh).
Vim идет для поиска некоторого файла в пути относительно его каталога установки, на который он определяет от взгляда argv[0]
(название исполняемого файла, как передано от оболочки), и так или иначе не удается найти, что путь, если это называют через относительный путь. Это было бы технически возможно, но я не думаю, что Vim на самом деле делает это.
Существует много вещей, которые могли перестать работать, но, учитывая Ваш вывод ls -l /etc/sudoers
, большинство из них исключено.
Сначала несколько быстрых проверок:
type sudo
печать?getent group 0
печать?Затем правильно видеть, что продолжается, может Вы входить в систему как корневое использование su -
, затем выполните это?
# apt-get install ltrace
# ltrace -u <username> sudo true 2>&1 | egrep '(sudo|stat|set.*[ug].*id)'
и/или
# apt-get install strace
# strace -u <yourusername> sudo true 2>&1 | egrep '(sudo|set.*[ug].*id)'
И добавьте вывод к своему вопросу.
Как последнее прибежище можно скопировать /etc/sudoers
файл к местоположению резервирных копий, затем apt-get --reinstall install sudo