Всем привет
Изучая линукс наткнулся на такие довольно интересные вещи как SUID и SGID. Но так до конца и непонимаю каким же образом они работают
Вот например как пишут:
В Unix-подобных системах приложение запускается с правами пользователя, вызвавшего указанное приложение. Это обеспечивает дополнительную безопасность, так как процесс с правами пользователя не сможет получить доступ на запись к важным системным файлам, например /etc/passwd, который принадлежит суперпользователю root.
Если на исполняемый файл установлен бит suid, то при выполнении эта программа автоматически меняет «эффективный userID» на идентификатор того пользователя, который является владельцем этого файла. То есть, независимо от того — кто запускает эту программу, она при выполнении имеет права хозяина этого файла.
Если я правильно понимаю, то допустим я администратор и создал файл readme со следующим содержанием:
#!/bin/bash
echo hello world
и присвоил ему следующие права:
-rwx rw- r-- (владелец - чтение, запись и исполнение, группа -чтение и запись, все остальные - только чтение)
После чего я эти права меняю и добавляю SUID бит
chmod 4764 readme
-rws rw- r--
И теперь этот файл по идеи сможет запустить любой пользователь, но уже не с правами (r--), а с правами администратора (rwx) т.е. сможет сделать с ним все что угодно. Но если я пытаюсь от имени обычного пользователя запустить этот файл у меня вылезает сообщение "отказано в доступе".
Объясните пожалуйста что именно я сделал не так? или чего я не так понял?