Cуперкомпьютеры: администрирование - страница 40

Шрифт
Интервал


Чаще всего, наверное, приходится сталкиваться с правами на файловой системе. Здесь каждый объект (файл, ссылка, каталог, устройство, сокет, канал, далее будем для краткости писать «файл») имеет владельца и группу, а также связанные с ними права – чтение, запись и исполнение. Часто для их записи используют восьмеричную запись или формат команды >ls. Например, права с восьмеричным кодом >750 (в выдаче >ls rwxr-x–) обозначают, что владельцу разрешено чтение, запись и исполнение (>rwx / 7), группе – чтение и исполнение (>r-x / 5), остальным – ничего (>-– / 0).

Проверка прав производится в таком порядке – если владелец файла совпадает с EUID, берутся права владельца. Иначе, если группа или одна из дополнительных групп совпадают с группой файла, то берутся права группы, и в противном случае – права «остальные».

Для каталога право на «исполнение» означает возможность войти в каталог. При этом посмотреть список файлов в нём не гарантируется – для этого нужно право на чтение. Право на запись означает возможность создавать и удалять файлы в каталоге. Сменить права на файл (или другой объект) может только его владелец. Если нужно сменить права для группы, то владелец должен в неё входить. Ну и конечно, суперпользователь может менять любые права, а также владельца и группу любого файла.

Как уже было сказано, право записи в каталог позволяет создавать и удалять в нём файлы. В том числе чужие. Чтобы обеспечить комфорт работы с общими каталогами, например >/tmp, и не позволять удаление чужих файлов, был придуман дополнительный «липкий» флаг (>sticky). Если каталог обладает им, то удаление файлов разрешается только тем, кто владеет файлом и имеет право записи в каталог (и >root-у, конечно).

Раз уж мы коснулись файловой системы, то стоит отметить ещё два флага – >suid и >sgid. Если файл имеет флаг >suid, то при его запуске EUID процесса сменится на владельца файла. Для >sgid – аналогично, но для группы. Чаще всего он ставится на файлы, исполнение которых необходимо с правами суперпользователя, например >passwd. Для скриптов они не работают. Если флаг >sgid устанавливается на каталог, то созданные в нём файлы и каталоги автоматически наследуют группу. Флаг >suid на каталогах игнорируется.

Как уже упоминалось выше, посмотреть права можно командой >ls. В строке прав первым символом показывается тип файла ('