Учетные записи с ограниченными правами доступа

Если необходимо создать гостевую учетную запись, назначьте ей интерпретатор команд с ограниченными возможностями. В Red Hat 7.2 для этого есть специальная версия интерпретатора Korn (ksh), в которую введены следующие ограничения:

команда cd недоступна;

переменные среды SHELL, ENV и PATH нельзя изменить;

разрешается выполнять только команды, которые расположены в каталогах, перечисленных в переменной среды PATH;

операции переадресации вводавывода, приводящие к созданию новых файлов, запрещены.

Единственный способ вызова такого интерпретатора (в Red Hat 7.2) — воспользоваться командой /bin/ksh г или /bin/bash г. Это создает немалые неудобства, так как в файле /etc/passwd флаги командной строки не распознаются. Придется написать специальную программу, вызывающую интерпретатор с ограниченными возможностями (листинг 4.5). Сохраните программу в файле rksh. с, скомпилируйте ее командой

$ дсс о rksh rksh.с

скопируйте полученный исполняемый файл под именем /bin/rksh и сделайте его владельцем пользователя root (режим доступа — 755).

Листинг 4.5. Программа для вызова интерпретатора с ограиичеиными возможностями +++++++++++++++++++

Ограниченный вариант ksh а

/

include include include

int main() {

extern int errno;

char const rksh_argv[] {"ksh", "r", NULL}; int retval0; / Задание переменных среды /

putenv("PATH/restrict/bin:/usr/local/rbin"); putenv("IFS \t\n"); putenv("SHELL/bin/rksh"); putenv("ENV/restrict/etc/profile"); / Вызов интерпретатора ksh /

retvalexecv("/bin/ksh", rksh_argv); if (retval < 0)

exit(errno);

else

exit(0)j

}

Обратите внимание на то, что в программе устанавливаются некоторые переменные среды. Если необходимо переопределить какиелибо дополнительные переменные, сделайте это здесь. Значение переменной PATH, соответствующее листингу 4.5, разрешает пользователям выполнять только те команды, которые скопированы в каталог /restrict/bin или /usr/local/rbin. Учтите, что по умолчанию ни один из них не существует — это лишь пример. Проверьте, чтобы в этих каталогах не содержались команды, которые позволят пользователям получить доступ к обычным интерпретаторам. Это, в частности, сами интерпретаторы (bash, ksh, csh и т.д.), команда chsh и редакторы вроде vi и emacs, позволяющие осуществлять временный выход в интерпретатор команд.

Владельцу гостевой учетной записи можно также запретить запись в начальный каталог. Для этого назначьте владельцем каталога специального пользователя, например noaccess, который не может зарегистрироваться в системе (нет корректного пароля, нет корректного интерпретатора команд, нет файлов . rhosts, . netrc и . forward). Группа, которой принадлежит каталог, должна быть аналогичной. Учетную запись noaccess нужно создать специально для этих целей и ни для чего более. Задайте режим доступа к каталогу равным 755, и пользователь не сможет осуществлять запись в каталог.

Создавать учетные записи с ограниченными возможностями можно и подругому. Один из способов — воспользоваться командой chroot (меняет корневой каталог). Благодаря ей пользователь окажется в подкаталоге, который выглядит как корневой каталог, т.е. действия пользователя будут ограничены иерархией этого каталога. Существует также функция chroot (), которой можно пользоваться в программах. Сформированную таким способом среду необходимо тщательно протестировать.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок