Ограничение прав доступа пользователей
  • Категории
  • Подписка
  • Разместить статью
19/01/10 1 3653 Учетные записи пользователей    
-

Ограничение прав доступа пользователей

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

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

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

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

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

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

$ gcc -о rksh rksh.с

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


#include <unistd.h>

#include <stdlib.h>

#include <errno.h>

int main()

{

extern int errno;   char *const rksh_argv[ ] = {"ksh", "-r", NULL};

int retval=0;

/*  Задание переменных среды */

putenv("PATH=/restrict/bin:/usr/local/rbin");

putenv("IFS= \t\n");   putenv("SHELL=/bin/rksh");

putenv("ENV=/restrict/etc/profile");

/*  Вызов интерпретатора ksh */

retval=execv("/bin/ksh", rksh_argv);

if (retval < 0)

exit(errno);

else

exit (0);

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

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

PS: одна компания утверждает, что (см. www.web-promo.com.ua)раскрутка сайтов (см. www.web-promo.com.ua) стала проще, качественней и быстрее…

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

Перечень введенных команд

Не все знают о таком ценном источнике информации, как перечень введенных ко­манд интерпретатора. Например, встроенная функция history интерпретатора bash ведет список команд, выполненных каждым пользователем. По умолчанию эта информа­ция хранится в файле $НОМЕ/ .bash_history. Содержимое этого файла представляет интерес при поиске неисправностей и проверке безопасности системы. Дополнительную информацию о перечне введенных команд можно получить на man-странице интерпрета­тора bash.

Пишите в коммент, если есть мысли!..


Один комментарий на «“Ограничение прав доступа пользователей”»

  1. sdelaem-site.com.ua:

    программа это гуд, но может есть какие софтины их же вроде пруд пруди?

Добавить комментарий

Яндекс.Метрика