корневая программа с битом setuid

Ping – это программа, принадлежащая root с установленным битом идентификатора пользователя.

$ ls -l `which ping` -rwsr-xr-x 1 root root 35752 Nov 4 2011 /bin/ping 

Насколько я понимаю, если пользователь запускает процесс ping, то действительный идентификатор пользователя будет меняться от реального идентификатора пользователя (то есть идентификатора пользователя лица, который запустил процесс) к корню пользователя id. Однако, когда я пытаюсь это сделать и смотрю на вывод ps, чтобы увидеть, запущен ли процесс ping как пользователь root, я все равно получаю реальный идентификатор пользователя.

 ps -e -o user,ruser,euser,cmd,args | grep ping sashan sashan sashan ping -i 10 -c 1000 www.goog ping -i 10 -c 1000 www.google.com 

One Solution collect form web for “корневая программа с битом setuid”

ping требует root, чтобы он мог открыть сокет в необработанном режиме. Это буквально первое, что он делает, когда он запускается:

 icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); socket_errno = errno; 

Это единственное, что ему нужно для root, так как многие программы сразу же понижают свой уровень привилегий до вашей обычной учетной записи пользователя:

 uid = getuid(); if (setuid(uid)) { perror("ping: setuid"); exit(-1); } 
  • Разрешить setuid для сценариев оболочки
  • Запуск setuid двоичного временно без setuid?
  • Программа python работает от имени root для открытия URL-адресов через обычного пользователя
  • Почему Ubuntu не использует возможности для ping?
  • Apache suexec не будет работать с strace
  • распечатать файл / etc / shadow в консоли
  • Ограничить выполнение программы до списка аргументов
  • Почему FreeBSD требует запуска терминальных программ с правами root?
  • Разрешения SUID - что правильно?
  • Программы setuid, похоже, не запускают setuid в TinyCore Linux
  • Как работает sudo (помимо setuid)?
  • Interesting Posts

    Btrfs: Есть ли простой способ найти файл по номерам блоков, которые он занимает?

    Настроить cshrc для установки путей для определенных каналов

    Как создать постоянный USB-ключ работающей системы?

    Как проверить, завершено ли размонтирование USB-устройства?

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

    Пользователю нужен выделенный внешний жесткий диск, установленный в их домашней папке

    Как измерить тактовый импульс моего компьютера вручную?

    Кронтаб связан с производительностью сервера?

    Сценарий Bash для настройки яркости при отключенной батарее

    Изменение поведения USB при подключении ноутбука

    Судоподобная память паролей для собственных скриптов

    Пользовательский графический интерфейс без среды рабочего стола

    Можно ли монтировать трубку в cp?

    Что такое commit = 0 для ext4? mdadm не поддерживает его?

    Запуск программы без помощи системного администратора

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