Руководство по администрированию UNIX System V

       

Файл Permission


Файл разрешений - Permission (/etc/uucp/Permission) используется для указаний разрешений, которые удаленные машины имеют в отношении регистрации, доступа к файлам и выполнения команд. Параметры обеспечиваются, чтобы ограничить возможности запрашивания файлов и получения файлов, организованных в очередь, по местному абонентскому пункту. Кроме того, в наличии есть параметр для указания команд, которые удаленный абонентский пункт может выполнить на локальной машине. Изменения следует вносить, используя один из редакторов (vi или ed).

Как создается структура элементов.

Каждый элемент представляет собой логическую строку с физическими строками, завершающимися символами \, указывающими продолжение. Элементы составлены из параметров, ограниченных пробелами. Каждый параметр - это пара имя/значение. Он состоит из имени параметра, за которым следует "=" и значения. Обратите внимание, что использование пробела в пределах присваивания параметра запрещается. Строки комментария начинаются с "#", и они занимают всю строку до символа новой строки. Пустые строки игнорируются. Есть два типа элементов Permissions:

LOGNAME - указывает разрешения, которые действуют, когда удаленная машина регистрируется (обращается) в вашем компьютере; MACHINE - указывает разрешения, которые действуют, когда ваш компьютер регистрируется (обращается) в удаленной машине.

Элементы LOGNAME будут содержать параметр LOGNAME, а элементы MACHINE - параметр MACHINE.

При использовании файла Permissions, чтобы ограничить уровень доступа, предоставляемый удаленным машинам, необходимо принять во внимание следующие моменты:

  1. Все ID регистрации, используемые удаленными машинами для регистрации в линиях связи типа UUCP, должны появляться в одном и только одном элементе LOGNAME.
  2. Любой абонентский пункт, который вызывается, и чье имя не появляется в элементе MACHINE, будет иметь следующие разрешения/ограничения по умолчанию:
    • локальные запросы отсылки и получения будут выполняться;
    • удаленная машина может посылать файлы в каталог /var/spool/uucppublic вашего компьютера;
    • команды, посланные из удаленной машины, для выполнения на вашем компьютере, должны представлять собой одну из команд по умолчанию, обычно rmail.


    Параметры.
    Ниже приводятся детали каждого параметра, указывающие как они используются и их значения по умолчанию.
    Запрос
    Когда удаленная машина обращается к вашему компьютеру и делает запрос на получение файла, этот запрос может быть принят или отвергнут. Парметр REQUEST указывает, может или нет удаленная машина запросить установку передачи файлов из вашего компьютера.
    Символьная строка
    REQUEST=yes
    указывает, что удаленная машина может сделать запрос на передачу файлов из вашего компьютера.
    Символьная строка
    REQUEST=no
    указывает, что удаленная машина не может сделать запрос на получение файлов из вашего компьютера. Символьная строка "no" является значением по умолчанию. Параметр REQUEST может появляться или в элементе LOGNAME (удаленная машина обращается к вашей), или в элементе MACHINE (вы обращаетесь к удаленной машине).
    Когда удаленная машина обращается к вашему компьютеру и выполняет свою работу, она может попытаться выполнить работу, для которой ваш компьютер уже организовал очередь. Параметр SENDFILES указывает может или нет ваш компьютер отослать работу, организованную в очередь для удаленной машины.
    Символьная строка


    SENDFILES=yes
    укзывает, что компьютер может отослать работу, которая организована в очередь для удаленной машины, так как она зарегистрировалась в форме одного из имен в параметре LOGNAME. Эта символьная строка является обязательной, если компьютер находится в "пассивном режиме" по отношению к удаленной машине.
    Символьная строка
    SENDFILES=call
    указывает, что файлы, организованные в очередь в вашем компьютере, будут отсланы только тогда, когда компьютер обратится к удаленной машине. Значение обращения является значением по умолчанию для параметра SENDFILE. Этот параметр важен только в элементах LOGNAME, так как элементы MACHINE применяюся только тогда, когда обращения в удаленные машины уже выполнены. Если этот параметр используется с элементом MACHINE, он будет игнорироваться.
    Параметры READ и WRITE
    Эти параметры указывают различные части файловой системы, которые команда uucico может считать или в которые может записать. Параметры READ и WRITE могут использоваться как с элементами MACHINE, так и с LOGNAME.
    Значением по умолчанию для READ и WRITE является каталог uucppublic, как показано в следующей символьной строке:


    READ=/var/spool/uucppublic WRITE=/var/spool/uucppublic
    Строки
    READ=/ WRITE=/
    указывают разрешение на обращение к любому файлу, к которому может обратиться локальный пользователь с "другими" разрешениями.
    Значением этих элементов является список полных имен команд, отделенных друг от друга ;. Параметр READ служит для запроса файлов, а параметр WRITE - для размещения файлов. Одним из значений должен быть префикс любого полного имени файла, входящего или выходящего. Чтобы дать разрешение на размещение файлов в /usr/news, а также в общественном каталоге, с параметром WRITE следует использовать следующие значения:
    WRITE=/var/spool/uucppublic:/usr/news
    Если используются параметры READ и WRITE, все полные имена следует указать, так как полные имена к списку по умолчанию не добавляются. Например, если полное имя /usr/news было единственным указанным полным именем в параметре WRITE, то разрешение на размещение файлов в общественном каталоге будет отвергнуто.
    Параметры NOREAD и NOWRITE
    Параметры NOREAD и NOWRITE указывают исключения к параметрам READ и WRITE или их значения по умолчанию.
    Символьные строки:
    READ=/ NOREAD=/etc WRITE=/var/spool uucppublic
    всегда разрешают считывание любого файла за исключением тех, которые находятся в каталоге /etc (и его подкаталогах) и запись только в каталог /var/spool/uucppublic по умолчанию. Параметр NOWRITE действует также, как и параметр NOREAD. NOREAD и NOWRITE можно использовать и в элементах LOGNAME, и в элементах MACHINE.
    Параметр CALLBACK
    Параметр CALLBACK используется в элементах LOGNAME для указания того, что ни одно входное сообщение не будет выполнено, пока вызывающая система не будет отозвана обратно.
    Строка
    CALLBACK=yes
    указывает, что ваш компьютер должен отозвать удаленную машину обратно, прежде чем будет передан какой-либо файл.
    Значение по умолчанию параметра CALLBACK это
    CALLBACK=no
    Параметр CALLBACK используется очень редко. Обратите внимание, что если оба абонентских пункта установят друг для друга этот параметр на "yes", то их общение никогда не начнется.
    Параметр COMMANDS


    Предупреждение: Параметр COMMANDS может создать рискованную ситуацию для защиты вашей системы. Используйте его с крайней осторожностью.
    Программа uux будет генерировать запросы на удаленное выполнение и организовывать их в очередь для передачи в удаленную машину. Файлы и команды посылаются для удаленного выполнения в целевую машину. Параметр COMMANDS можно использовать в элементах MACHINE для указания команд, которые удаленная машина может выполнить в вашем компьютере.
    Строка
    COMMANDS=rmail
    указывает команды по умолчанию, которые удаленная машина может выполнить в вашем компьютере. Если в элементе MACHINE используется какая-то символьная строка команды, команда по умолчанию будет переопределяться. Например, элемент
    MACHINE=owl:raven:hawk:dove \ COMMANDS=rmail:rnews:lp
    переопределяет COMMAND по умолчанию так, что список команд для машин owl, raven, hawk и dove будет теперь состоять из rmail, rnews и lp. Когда удаленная машина будет указывать rnews или /usr/lbin/rnews для выполняемой команды, /usr/lbin/rnews будет выполняться безотносительно к пути по умолчанию. Точно также /usr/local/lp - это команда lp, которая будет выполняться.
    Включение в список значения ALL означает, что любая команда из удаленной машины, указанная в элементе, будет выполняться. Если вы используете это значение, вы даете удаленной машине полный доступ к вашему компьютеру.
    Символьная строка
    COMMANDS=/usr/lbin/rnews:All:/usr/local/lp
    показывает две вещи. Значение ALL может появляться в любом месте в строке, а полные имена, указанные для rnews и lp будут использоваться (вместо имен по умолчанию), если запрошенная команда не будет содержать полных имен rnews или lp.
    Параметр VALIDATE следует использовать с параметром COMMAND каждый раз, когда указываются команды, создающие потенциальный риск, такие как cat и uucp. Любая команда, которая считывает или пишет файлы, создает потенциальную опасность для локальной защиты, когда она выполняется при помощи демона удаленного выполнения UUCP.
    Параметр VALIDATE


    Параметр VALIDATE используется с параметром COMMANDS для указания команд, создающих потенциальную опасность. Он используется, чтобы обеспечить определенную степень проверки права доступа вызывающей программы. Использование параметра VALIDATE требует, чтобы привилегированные машины имели уникальное имя регистрации и пароль для входных сообщений UUCP. Важным моментом при проверке достоверности является наличие защиты имени регистрации (пароля, связанного с элементом). Если кто-то посторонний получает эту информацию, конкретный параметр VALIDATE нельзя считать безопасным.
    Тщательного рассмотрения требует обеспечение удаленной машины привилегированными регистрацией и паролем для входных сообщений UUCP. Обеспечение удаленной машины специальным именем регистрации и паролем с доступом к файлам и с возможностью удаленного выполнения означает обеспечение этой машине нормальной регистрации и пароля в вашем компьютере. Следовательно, если вы не доверяете кому-то на удаленной машине, не предоставляйте ей привилегированных регистрации и пароля.
    Элемент LOGNAME
    LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk
    указывают, что если одна из удаленных машин собирается зарегистрироваться в вашем компьютере как eagle, owl или hawk, она должна использовать имя регистрации uucpfriend. Как легко увидеть, если внешнее устройство получает имя регистрации/пароль uucpfriend, всякая маскировка банальна. Но что должно происходить с параметром COMMANDS, который появляется в элементах MACHINE? Они связывают элемент MACHINE (и параметр COMMANDS) с элементом LOGNAME, связанным с привилегированной регистрацией. Такое связывание необходимо потому, что демон выполнения не будет функционировать, пока зарегистрирована удаленная машина. В действительности, этот процесс является несинхронным процессом, которому неизвестно из какой машины послан запрос на выполнение. Следовательно, возникает вопрос о том, как ваш компьютер узнает откуда приходят файлы выполнения.
    Каждая удаленная машина имеет свой собственный spool-каталог в вашем компьютере. Эти каталоги имеют разрешение на запись, дающееся только программам UUCP. Файлы выполнения из удаленной машины помещаются в свой spool-каталог после поступления в ваш компьютер. Когда функционирует демон uuxt, он может использовать имя каталога буферизации для поиска элемента MACHINE в файле Permissions и получения списка COMMANDS; если имя машины не появляется в файле Permissions, будет использоваться список по умолчанию.
    Нижеприводимый пример показывает взаимоотношение между элементами MACHINE и LOGNAME:
    Пример.


    MACHINE=eagle:owl:hawk REQUEST=yes \ COMMANDS=ALL \ READ=/ WRITE=/ LOGNAME=uucpz VALIDATE=eagle:owl:hawk \ REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/
    Эти элементы обеспечивают неограниченные считывание, запись и выполнение команд для удаленных машин eagle, owl и hawk. Значение ALL дает удаленной машине неограниченный доступ к вашему компьютеру. Фактически к файлам, которые с помощью пользователя "uucp" (типа Systems или Devices) могут только считываться или записываться, можно обращаться, используя команды, например, такую как ed. Это значит, что пользователь одной из привилегированных машин может не только считывать, но и записывать информацию в файл Systems.
    В первом элементе вы должны сделать допущение, что когда вы захотите вызвать одну из перечисленных машин, вы вызываете одну из машин: eagle, owl или hawk. Следовательно, любые файлы, помещенные в spool-каталоги машины eagle, owl или hawk, помещаются туда одной из этих машин. Если какая-то удаленная машина регистрируется и сообщает, что она одна из этих трех машин, ее файлы выполнения будут также помещаться в привилегированный spool-каталог. Вы, следовательно, должны проверить имеет ли эта машина привилегированное имя регистрации uucpz.
    Элемент MACHINE для других систем
    Вы, возможно, захотите указать различные значения параметров для тех машин, к которым обращается ваш компьютер, то есть и те, которые не упомянуты в указанных элементах MACHINE. Такое желание может возникнуть, если вызывается несколько машин, а множество команд время от времени изменяются. Имя OTHER (другие) используются для этого элемента в качестве имени машины и выглядит следующим образом:
    MACHINE=OTHER \ COMMANDS=rmail: rnews:/usr/lbin/Photo:/usr/lbin/xp
    Все другие параметры, доступные элементу MACHINE, могут также устанавливаться для машин, не упомянутых в других элементах MACHINE.
    Есть возможность объединить элементы MACHINE и LOGNAME в один элемент, где общие параметры остаются теми же. Например, два элемента:
    MACHINE=eagle:owl:hawk REQUEST=yes \ READ=/ WRITE=/ LOGNAME=uucpz REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/


    имеют одни и те же параметры REQUEST, READ и WRITE. Эти два элемента можно объединить в один следующим образом:
    MACHINE=eagle:owl:hawk REQUEST=yes \ LOGNAME=uucpz SENDFILES=yes \ READ=/ WRITE=/
    Образцы файлов Permissions
    Этот первый пример представляет наиболее строгий доступ к вашему компьютеру Пример 1.
    LOGNAME=nuucp
    Он показывает, что имя регистрации nuucp имеет все разрешения/запрещения по умолчанию:

    • удаленная машина может посылать только в uucppublic;
    • удаленная машина не может запрашивать получение файлов (параметр REQUEST);
    • файлы, которые организуются в очередь для удаленной машины, не будут передаваться в ходе текущего сеанса (параметр SENDFILES);
    • единственными командами, которые можно выполнить, являются команды по умолчанию.

    Этот элемент сам по себе достаточен, чтобы установить линию связи с удаленными машинами, разрешая передачу файлов только в каталог /var/spool/uucppublic.
    Следующий пример дается для удаленных машин, которые регистрируются и имеют меньше ограничений. Имя регистрации и пароль, соответствующие этому элементу, не должны сообщаться всем (предаваться гласности); они должны обычно резервироваться для систем с сильной связью, где информацией файлов Systems можно строго управлять.
    Пример 2.
    LOGNAME=uucpz REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/
    Этот элемент размешает разрешения (ограничения) в машине, которая регистрируется как uucpz:

    • файлы можно запрашивать из вашего компьютера (параметр REQUEST);
    • файлы можно передавать в любой каталог или любой файл, который может записываться пользователем "other" (другими). Это файл/каталог, который может записываться локальным пользователем, не имеющим не личного, ни группового разрешения (параметр WRITE);
    • все файлы, считываемые пользователем "other", можно запросить (параметр READ);
    • все запросы организованные в очередь для удаленной машины, будут выполняться в ходе текущего сеанса. Это не файлы, которые предназначены для машины, которая выполнила обращение (параметр SENDFILES).
    • команды, посланные на выполнение в локальную машину, должны находиться в множестве по умолчанию.



    В двух предыдущих примерах показаны элементы, которые относятся к удаленным машинам, когда те регистрируются в вашем компьютере. Этот пример представляет элемент, используемый для обращения в удаленные машины:
    Пример 3.
    MACHINE=EAGLE:OWL:HAWK:RAVEN \ REQUEST=yes READ=/ WRITE=/
    При обращении к любым системам, данным в списке MACHINE, преобладают следующие разрешения:

    • удаленная машина может как запрашивать, так и посылать файлы (параметр REQUEST);
    • источник или пункт назначения файлов в локальной машине может находиться в любом месте файловой системы (с параметром read/write);
    • единственными командами, которые будут выполняться для удаленной машины, будут команды, находящиеся в множестве по умолчанию.

    Любой абонентский пункт, к которому обращаются, если его имени нет в элементе MACHINE, будет иметь разрешения по умолчанию, как это показано в примере 1, за исключением организованных в очередь для такой машины файлов, которые будут посылаться. (Параметр SENDFILES - является единственным, который интерпретируется в элементе LOGNAME).

    Содержание раздела