Password
    
 К титульной странице  |  Форум  |  О проекте  |  Словарь  |  Товары  |  Сделать стартовой  |  В Закладки   
Авторизация
Забыли пароль?
Регистрация 
 
Программирование
Безопасность
Демосцена
Игры
WEB-мастерская
Программное обеспечение
Аппаратное обеспечение



Последние материалы
  The Chronicles of Riddick: Escape from Butcher bay

  Что такое хорошо и что такое плохо, или FAQ по LCD-мониторам

  Организация удаленного доступа

  Инсталляция программного обеспечения используя GPO

  Smarty в веб-разработке

  BioShock или кафе разбитых надежд...



Последние новости
  Латвия подписала АСТА

  Примечательная промо-акция игры STAR WARS: The Old Republic на Times Square в Нью Йорке

  На сайте выложены первые выпуски легендарной телепередачи о компьютерных играх "От винта!"

  На сайте опубликован энциклопедический словарь по информатике Э.Якубайтиса

  Конференция Разработчиков Видеоигр, 1979

  Более шустрый и динамичный Mail.lv



Charitable advertising
Њл ­г¦¤ Ґ¬бп ў ў иҐ© Ї®¬®йЁ!



Ziedot.lv

Penn State Child Life Program



Программное обеспечение (статьи, обзоры)
Что такое права доступа и биты SUID, SGID
  
Автор: dinggo
Источник:RusH security team
Опубликовано: [2005-08-08 22:43]
В UNIX-подобных системах существует жесткая система разграничения прав доступа к файлам (чтение, запись, выполнение).

Чтение-возможность чтения каталога, просмотр содержимого файла
Запись-возможность создать(добавить), изменить, удалить, переместить
Выполнение-возможность запуска программы

Узнать права на файл можно перейдя в каталог с файлом (cd /имя_каталога_с_файлом) и выполнив команду ls-la

Увидим что-то типа такого
-rwxr-xr-x 2 user www 15 Mar 2004 file.conf

Расшифрую строку:
-rwxr-xr-x -права доступа
2 -количество жестих ссылок
user -имя владельца файла
www -к какой группе принадлежит владелец файла (ее название)
15 Mar 2004 -дата создания файла
file.conf -название файла

Расшифровка первого параметра на примерах:

Права доступа Числовой эквивалент Пояснения
-rw------- 600 только владелец файла, может (читать\записывать)
-rw-r--r-- 644 владелец файла, может (читать\записывать), члены группы и остальные только читать
-rwx------ 700 только владелец файла, может (читать\записывать) и запускать на исполнение
-rwxr-xr-x 755 владелец файла, может (читать\записывать) и запускать на исполнение, члены группы и остальные могут читать и запускать на исполнение, но не могут изменять.
-rwx--x--x 711 владелец файла, может (читать\записывать) и запускать на исполнение, члены группы и остальные могут запускать на исполнение, но не могут читать и изменять.
-rw-rw-rw- 666 любой пользователь может читать и изменять
-rwxrwxrwx 777 любой пользователь может читать, изменять и запускать на исполнение
drwx------ 700 только владелец может входить в этот каталог, читать и записывать в него файлы
drwxr-xr-x 755 любой пользователь может входить в этот каталог и читать содержимое каталога, но изменять содержимое может только владелец

r =4
w =2
x =1
- =0
Для вычисления требуется сложить числа
Пример:
-rw-rw-rw-
rw =4+2+0=6
6 для владельца, 6 для группы и 6 для остальных
в итоге получаем 666

Если видим запись примерно такого типа:

lrwxrwxrwx 1 user www 15 Mar 2004 -> /katalog/file

l -(буква) означает, что это не файл а ссылка
-> означает, что это ссылка на /katalog/file

Или такого:

drwxr-xr-x 2 user www 15 Mar 2004 file

d -означает,что "file" является каталогом , а не файлом

Изменить права доступа можно командой chmod
Пример:
chmod a-rw file.dat -отмена всех разрешений на доступ (а означает- для всех)
chmod 666 file.dat -чтение и запись для всех

Теперь о SUID и SGID

Права на файлы это правила, у правил есть исключения в виде дополнительных атрибутов биты SUID и SGID. Для чего они требуются?
Если установлены права доступа SUID и файл исполняемый, то при запуске на выполнение файл получает не права запустившего его, а права владельца файла.
Например:
В системе пользователям разрешено самостоятельно изменять пароль при помощи утилиты passwd, обычно находится /usr/bin/passwd. Владельцем passwd является пользователь root поскольку утилита работатет с файлом /etc/passwd который может модифицировать только пользователь root. Что бы непривилигированый пользователь мог работать с системным файлом (т.е. изменить свой пароль) на утилите passwd должен быть устанвлен бит SUID.

Если установлены права доступа SGID, то это равнозначно установке бита SUID, только наследуются права не владельца файла, а группы владельца.
Если установить SGID на каталог, то файлы в этом каталоге будут иметь такие же установки как и установки каталога.

-r-s--x--x 1 root root 15 Mar 2004 passwd s -(буква) в правах означает, что на файле passwd установлен бит SUID

Найти все файлы в системе с установлеными битами SUID и SGID, владельцем которых является root, можно командой:
find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;

увидим нечто такое
*-rwsr-xr-x 1 root root 35168 Sep 22 23:35 /usr/bin/chage
*-rwsr-xr-x 1 root root 36756 Sep 22 23:35 /usr/bin/gpasswd
*-r-xr-sr-x 1 root tty 6788 Sep 6 18:17 /usr/bin/wall
-rwsr-xr-x 1 root root 33152 Aug 16 16:35 /usr/bin/at
-rwxr-sr-x 1 root man 34656 Sep 13 20:26 /usr/bin/man

Для того, что бы снять бит s с файла, достаточно выполнить команду
chmod a-s /usr/bin/gpasswd -снимет бит s с файла /usr/bin/gpasswd

Для поиска всех файлов доступных на запись используйте команду
find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \;

Для поиска всех каталогов доступных на запись - команда
find / -type d \( -perm -2 -o -perm -20 \) -exec ls -ldg {} \;





Перейти к рубрике --> Обзоры и статьи

Наши друзья
Juridiskie pakalpojumi  
IT Works
  Codenet - всё для программиста
   
• Hi-tech NEWS • InCube e-mag
  Программисты, Вам сюда!
КомментарииВсего:0


Только зарегистрированные пользователи могут оставлять здесь комментарии. Зарегистрироваться можно здесь. Если вы уже зарегистировались ранее, то можете войти в систему здесь.


© Mihail Chernov (MiHack) Обмен ссылками