Редактирование: Secure Packaging Policy

Перейти к навигации Перейти к поиску

Внимание: Вы работаете как анонимный пользователь. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 9: Строка 9:
=== <tt>--</tt> ===
=== <tt>--</tt> ===


Массовые операции над файлами, имена которых начинаются на «-», могут давать неверный результат, если аргументы не отделены от команды «--», поэтому при массовой обработке файлов и каталогов (glob expansion, find и др.) ''необходимо'' отделять команду с параметрами от списка аргументов разделителем «--» везде, где это поддерживается.
Массовые операции над файлами, имена которых начинаются на «-», могут давать неверный результат, если аргументы не отделены от команды «--», поэтому мри массовой обработке файлов и каталогов (glob expansion, find и др.) ''необходимо'' отделять команду с параметрами от списка аргументов разделителем «--» везде, где это поддерживается.


=== <tt>-print0</tt> ===
=== <tt>-print0</tt> ===
Строка 28: Строка 28:
<source lang="bash">
<source lang="bash">
find -type f -print0 |
find -type f -print0 |
   xargs -r0 grep -FZl 'mawk gawk' -- |
   xargs -r0 %__grep -FZl 'mawk gawk' -- |
   xargs -r0 perl -pi -e 's/mawk gawk/gawk mawk/g' --
   xargs -r0 %__perl -pi -e 's/mawk gawk/gawk mawk/g' --
</source>
</source>


Строка 47: Строка 47:
</source>
</source>


Не следует пользоваться фиксированными либо предсказуемыми именами для создания [[SecureTmp|временных файлов]] в общедоступных каталогах, таких как <tt>/tmp</tt>. Не следует оставлять временные файлы в случае успешного окончания текущей стадии сборки пакета.
Не следует пользоваться фиксированными либо предсказуемыми именами для создания временных файлов в общедоступных каталогах, таких как <tt>/tmp</tt>. Не следует оставлять временные файлы в случае успешного окончания текущей стадии сборки пакета.


== Чужие и системные каталоги и файлы (секции: <tt>%install</tt>, <tt>%files</tt>) ==
== Чужие и системные каталоги и файлы (секции: <tt>%install</tt>, <tt>%files</tt>) ==
Строка 73: Строка 73:
Пакеты ''не должны'' содержать файлы, принадлежащие псевдо-пользователям, если в процессе работы к этим файлам осуществляется доступ процессов с другим uid либо с более широкими правами доступа. К таким файлам, в частности, относятся исполняемые, конфигурационные и неизменяемые файлы.
Пакеты ''не должны'' содержать файлы, принадлежащие псевдо-пользователям, если в процессе работы к этим файлам осуществляется доступ процессов с другим uid либо с более широкими правами доступа. К таким файлам, в частности, относятся исполняемые, конфигурационные и неизменяемые файлы.


Обоснование: Псевдо-пользователь не должен иметь право изменять эти файлы; нарушение этого условия, как правило, приводит к очевидной возможности осуществления pseudouser/root compromise.
Обоснование: Псевдо-пользователь не должен иметь право изменять эти файлы; нарушение этого правила как правило приводит к очевидной возможности осуществления pseudouser/root compromise.


=== Владельцы каталогов ===
=== Владельцы каталогов ===
Строка 79: Строка 79:
Пакеты ''не должны'' содержать каталоги, принадлежащие псевдо-пользователям. Вместо этого следует использовать каталоги, принадлежащие root, с установленным sticky bit и доступом группы по записи.
Пакеты ''не должны'' содержать каталоги, принадлежащие псевдо-пользователям. Вместо этого следует использовать каталоги, принадлежащие root, с установленным sticky bit и доступом группы по записи.


Обоснование: Псевдо-пользователь не должен иметь право изменять атрибуты каталогов, а также файлы и каталоги, созданные другими пользователями; нарушение этого условия, как правило, приводит к возможности осуществления pseudouser/root compromise.
Обоснование: Псевдо-пользователь не должен иметь право изменять атрибуты каталогов, а также файлы и каталоги, созданные другими пользователями; нарушение этого правила, как правило приводит к возможности осуществления pseudouser/root compromise.


== Блокировки (секции: <tt>%build</tt>, <tt>%install</tt>, <tt>%files</tt>) ==
== Блокировки (секции: <tt>%build</tt>, <tt>%install</tt>, <tt>%files</tt>) ==


Разные пакеты, использующие блокировки для работы с общими файловыми объектами, такими как mbox’ы, во избежание потери данных ''должны'' придерживаться единого механизма блокировки.
Разные пакеты, использующие блокировки для работы с общими файловыми объектами, такими как mbox’ы, во избежание потери данных ДОЛЖНЫ придерживаться единого механизма блокировки.


Например, для блокировки mbox’ов ''необходимо'' использовать метод, за которым закрепилось имя fcntl. Не допускается использование привилегированных программ для dotlocking’а.
Например, для блокировки mbox’ов ''необходимо'' использовать метод, за которым закрепилось имя fcntl. Не допускается использование привилегированных программ для dotlocking’а.


Обоснование: Каждая привилегированная программа — это дополнительная степень риска для системы, в которой такая программа установлена. Поэтому следует минимизировать потребность в подобных средствах. Метод блокировки fcntl опирается на системный вызов <tt>fcntl(2)</tt>, удовлетворяющий стандарту POSIX, и, следовательно, более широко распространённый, чем его аналог <tt>flock(2)</tt>.
Обоснование: Каждая привилегированная программа — это дополнительная степень риска для системы, в которой такая программа установлена. Поэтому следует минимизировать потребность в подобных средствах. Метод блокировки fcntl опирается на системный вызов <tt>fcntl(2)</tt>, удовлетворяющий стандарту POSIX, и, следовательно, более широко распространённый, чем его аналог <tt>flock(2)</tt>.
Обратите внимание, что все добавления и изменения текста статьи рассматриваются, как выпущенные на условиях лицензии CC-BY-SA-3.0.

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Вики-разметка
Заголовки: 1-го: == ==, 2-го: === ===, 3-го: ==== ==== уровня.
Быстрая вставка: «» | [[]] [[|]] {{}} {{|}} [[Категория:]] [[altbug:]] <source lang=""></source> <pre></pre> <!-- -->.
Определения: {{man|}} {{lists|}} {{cmd|}} {{path|}} {{prg|}} {{pkg|}} {{term|}} {{span||}} {{altbug|}}
Выделение: ''italics'', '''bold''', <tt>моноширинный</tt>, <code>код</code>.
Списки: * ненумерованный список, ** вложенный список, # нумерованный список, ## вложенный нумерованный список, *# вложенный смешанный список, ;список :определений.
Verbatim: Пробел в начале строки или <pre>Явный тэг</pre>
Ссылки: [http://www.altlinux.ru/ внешние], [[Main Page|внутренние]], [http://altlinux.ru], [[Main Page]]
Шаблоны: {{Crap}} {{D}} {{Policy}} {{DraftPolicy}} {{Merge|}} {{Улучшение}} {{Тимовец|}}

Шаблон, используемый на этой странице: