Странное поведение для setuid и setgid

Я делаю небольшой эксперимент со специальными битами привилегий следующим образом:

[root@localhost~]# useradd user1
[root@localhost~]# cp /bin/touch /home/
[root@localhost~]# chown user1:user1 /home/touch
[root@localhost~]# chmod u+s,g+s /home/touch
[root@localhost~]# ls -l /home/touch
-rwsr-sr-x 1 user1 user1 52656 Jun 26 14:17 /home/touch
[root@localhost~]# chmod o+w /usr/local/etc/
[root@localhost~]# ls -ld /usr/local/etc
drwxr-xrwx.2 root root 4096 Jun 26 14:14 /usr/local/etc/
[root@localhost~]# /home/touch /usr/local/etc/root.1
/home/touch: cannot touch '/usr/local/etc/root.1': Permission denied

Поскольку бит suid и бит sgid установлены для исполняемого файла /home/touchЯ ожидал, что когда root выполнит команду /home/touch /usr/local/etc/root.1, эффективный user:group должно быть user1:user1, который должен иметь доступ к записи /usr/local/etc каталог (см. o=rwx).

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

Только после того, как я изменил режим chmod g+w /usr/local/etcмогут ли пользователи, принадлежащие к root Группа запускает команду без разрешения ошибки.

Не должен эффективный пользователь: группа для тех, кто работает /home/touch быть user1:user1? Что не так с корневой группой? Я что-то пропустил?

Я взял эксперимент на RHEL 6.4 64-битной

0 ответов

Другие вопросы по тегам