UNIX: различия между версиями
Содержимое удалено Содержимое добавлено
→Сигналы: в вызове raise() параметром явлется название сигнала, а не pid так как raise отправляет синал своему процессу |
|||
Строка 188:
Вышеприведённая 9-битовая схема (три права, три категории пользователей) иногда бывает слишком примитивной. Существуют файлы, которые может изменять/читать/выполнять ''кто угодно, но не как угодно''. Так, например, файл '''/etc/passwd'''<ref>в некоторых UNIX-ах может называться иначе</ref> содержит, помимо прочего, пароли пользователей (в зашифрованном виде). Есть стандартная программа '''passwd''' для смены пароля. Необходимо каким-то образом разрешить всем пользователям менять файл '''/etc/passwd''', но не как угодно, а только через программу '''passwd''' (иначе они получат возможность поменять чужие пароли и вообще испортить важный системный файл).
Для таких случаев в коде доступа существует ''бит s''. Если запустить исполняемый файл с битом s
Бит s могущественен и опасен. Если пользователь напишет любую программу, установит для неё бит '''s''' командой '''chmod''', а затем передаст её суперпользователю командой '''chown''', его программа получит право делать что хочет. Для борьбы с этой опасностью существуют разные методы. В системе BSD передавать файл от пользователя к пользователю или от группы к группе может только суперпользователь. В системе System V передать свой файл другому пользователю может любой, но при этом бит '''s''' сбрасывается.
|