Ошибка во время SUDOing

Я столкнулся с проблемой. Когда я пытаюсь выполнить sudo на своем терминале, я получаю:

sudo: must be setuid root

Я нагуглил проблему и сделал как подсказки, такие как установка разрешения sudo, но они уже были в требуемом состоянии. Не могу понять, в чем может быть проблема. Пожалуйста, помогите.

Спасибо

Вывод mount:

 /dev/sda8 on / type ext4 (rw,errors=remount-ro) 
 proc on /proc type proc (rw,noexec,nosuid,nodev) 
 sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) 
 none on /sys/fs/fuse/connections type fusectl (rw) 
 none on /sys/kernel/debug type debugfs (rw)
 none on /sys/kernel/security type securityfs (rw) 
 udev on /dev type devtmpfs (rw,mode=0755)
 devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
 tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
 none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
 none on /run/shm type tmpfs (rw,nosuid,nodev)
 /dev/sda6 on /home type ext4 (rw)
 /dev/sda7 on /var type ext4 (rw)
 /home/incaendo/.Private on /home/incaendo type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=b746275454680798,ecryptfs_fnek_sig=2164f6a8d7aa74c7)
 gvfs-fuse-daemon on /home/incaendo/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=incaendo)
4
задан 14.05.2020, 13:33

3 ответа

После того, как я попробовал все предложенные мне предложения, единственным способом было переустановить Ubuntu, и это то, что я должен сделать, наконец.

0
ответ дан 14.05.2020, 13:34

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

  1. Перезагрузитесь и в меню Grub выберите опцию «режим восстановления».

  2. Когда появится меню восстановления, выберите «root», чтобы перейти в корневую оболочку.

  3. Перемонтируйте корневую файловую систему для записи:

    # mount -o remount,rw /
    
  4. Установите бит setuid для sudo и pkexec:

    # chmod u+s /usr/bin/sudo /usr/bin/pkexec
    

Выйдите из режима восстановления и продолжите обычную загрузку.

0
ответ дан 14.05.2020, 13:35
  • 1
    Thaks Zewts для замечательной справки... Но к сожалению, ни один не принес удачу мне!!: (.. Наконец у меня есть к установке ре человечность – Phrogz 14.05.2020, 13:35

Переустановка пакета sudo с помощью

pkexec apt-get --reinstall install sudo

установит флаг sudo setuid. Если это не помогло, попробуйте переустановить его, используя графический менеджер пакетов или aptitude. Если это тоже не удается, установите бит setuid sudo вручную:

pkexec chmod u+s /usr/bin/sudo

Если это также не удается с ошибкой «pkexec: должен быть корнем setuid» , то проверьте, что файловая система, содержащая /usr/bin не был случайно установлен с установленной опцией nosuid. Изучите вывод mount.

Если это не так, то проверьте, установлен ли какой-либо двоичный файл в /usr/bin с установленным битом setuid, используя:

find /usr/bin -perm 4755

. В этом списке должно быть не менее passwd ], sudo и тому подобное. Если их нет, то, несомненно, рассеянный космический луч выбил эти биты setuid (или, может быть, это все-таки вы, из-за чрезмерного усердия chmod -s *, потому что ходят слухи, что setuid плох?)

В любом случае Сначала вам нужно восстановить права sudo. Я описал способ сделать это в отдельном ответе на этот вопрос. Получив их, переустановите каждый пакет, содержащий двоичный файл setuid, или вручную выполните chmod для каждого двоичного файла, как показано в верхней части этого ответа.


К сожалению, поскольку ответ на другой вопрос гласит, нет простого способа узнать, какие двоичные файлы в Ubuntu установлены в setuid root.

Вот, для справки, список почти нетронутых 12.04. Имена пакетов слева, двоичные файлы справа от двоеточия:

$ find {/usr,}/bin -perm 4755 | xargs dpkg -S
passwd: /usr/bin/chsh
iputils-tracepath: /usr/bin/traceroute6.iputils
mtr-tiny: /usr/bin/mtr
passwd: /usr/bin/gpasswd
sudo: /usr/bin/sudoedit
login: /usr/bin/newgrp
passwd: /usr/bin/chfn
sudo: /usr/bin/sudo
passwd: /usr/bin/passwd
login: /bin/su
iputils-ping: /bin/ping
mount: /bin/umount
mount: /bin/mount
fuse: /bin/fusermount
iputils-ping: /bin/ping6
5
ответ дан 14.05.2020, 13:35
  • 1
    @SankalpMishra будет полезно для дальнейшего использования, если Вы могли бы добавить к вопросу причину, почему setuid биты потерялись во-первых. – Partho63 14.05.2020, 13:35

Теги

Похожие вопросы