Почему не работает setuid с mount?

В файле есть бит setuid .

user@host:~$ ls -l /bin/mount -rwsr-xr-x 1 root root 40152 May 26 19:31 /bin/mount 

Почему операционной системе требуется root-доступ для выполнения «монтирования»?

 user@host:~$ /bin/mount /dev/sdb1 /mnt mount: only root can do that user@host:~$ sudo /bin/mount /dev/sdb1 /mnt user@host:~$ lsblk | grep sdb sdb 8:16 0 102M 0 disk └─sdb1 8:17 0 101M 0 part /mnt 

Мой /etc/fstab

 # / was on /dev/sda1 during installation UUID=026bb2d9-1c0c-4163-85a1-f83b2221eb34 / ext4 errors=remount-ro 0 1 # swap was on /dev/sda5 during installation UUID=aec6b039-13b1-4568-abb1-2be1f3429325 none swap sw 0 0 

  • crontab не выполняет мой скрипт?
  • Как работает sudo (помимо setuid)?
  • Дарвинский планшет из интерпретатора в исполнении хеш-банга
  • Почему mount.cifs не установлен по умолчанию?
  • Процесс Python не может создать файл в каталоге, продолжает получать `разрешение отказано` IOError
  • Как выполнить резервное копирование и сравнить разрешения файлов?
  • Почему setuid не работает над исполняемым файлом?
  • Проверка пользователя
  • One Solution collect form web for “Почему не работает setuid с mount?”

    Unix имеет концепцию реальных и эффективных UID (и GID, если на то пошло).

    Когда вы запускаете программу setuid, тогда действительный идентификатор процесса устанавливается владельцем файла.

    Таким образом, в случае mount вас есть эффективный идентификатор root . Но у вас все еще есть реальный идентификатор user .

    Такие программы, как passwd или su или mount могут проверить реальный идентификатор, чтобы узнать, кто его запускает, и действовать по-разному. Для passwd это позволяет пользователю root изменять пароль другого пользователя; для su это позволяет переключать пользователей, не зная пароля.

    Для mount он позволяет пользователям монтировать свои собственные файловые системы, если они определены в /etc/fstab и имеют связанный с ними атрибут user

    например, в моем Debian fstab меня есть:

     /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 

    Это означает, что пользователь, не являющийся пользователем root, может запускать mount /dev/sr0 или mount /media/cdrom0 и он попытается установить CD / DVD.

    Это логика встроена в программу mount ; он проверяет реальный идентификатор вызывающего абонента.

    Linux и Unix - лучшая ОС в мире.