Incoming/acl: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
(Приведено в порядок)
Строка 1: Строка 1:
== Работа с ACL в подсистеме incoming ==
[[Категория:Сизиф]]
== ACL пакетов ==


Утилита <code>girar-acl</code> позволяет управлять ACL в подсистеме [[Справочник_по_incoming|incoming]]. Замена Notes.  
Пакеты в Sisyphus имеют ACL: набор пользователей, которым разрешено собирать пакет через [[git.alt]] или заливать <tt>src.rpm</tt> через [[Incoming]].


Версия '''0''' синтаксиса:
Управление ACL производится с помощью SSH-интерфейса [[git.alt]].
  Usage: girar-acl <repository> [{<package>|@<group>} show
    or: girar-acl <repository> [{<package>|@<group>} {add|del|leader|replace} {<login>|@<group>}...]
    or: girar-acl <repository> <package> nmu {add|del} [<login> [<start date> [<end date>]]]
    or: girar-acl <repository> # reads commands from stdin, one command per line
  Valid repositories are: sisyphus


=== Понятия ===
== acl ==
;package: Имя пакета, собираемого в incoming
;login: Учётная запись пользователя (используемая в ключе, которым подписан пакет)
;group: Группа учётных записей пользователей, совместно работающих над пакетом (team)
;repository: Хранилище пакетов (пока допустимо только одно -- sisyphus)


=== Команды ===
Команда <tt>acl</tt> требует указания репозитория, над которым производится работа. На данный момент используется только репозиторий Sisyphus, для которого используется метка <tt>sisyphus</tt>.


;''package'' show: Посмотреть список правил доступа к пакету
Если в командной строке указан только репозиторий, но не указана подкоманда, то список команд читается со стандартного ввода, по одной команде на строку, и выполняется тразакционно: ошибка в выполнении хотя бы одной команды отменяет действие всего набора команд.
;''@group'' show: Посмотреть список людей в группе
;''package'' add ...: Добавить человека или группу в список доступа к пакету
;''@group'' add ...: Добавить человека в группу
;''package'' del ...: Удалить человека или группу из списка доступа к пакету
;''@group'' del ...: Удалить человека из группы
;... leader ''login'': Установить сопровождающего пакет или лидера группы
;''package'' leader ''@group'': Установить сопровождающего пакет из поля "лидер группы"
;''package'' nmu: Разрешить всем делать NMU всегда
;''package'' nmu * ...: Разрешить всем делать NMU в указанные сроки
;''package'' nmu ...: Разрешить человеку делать NMU к пакету (возможно, на определённый срок)


В случае, когда ни одна команда не задана (указан только ''repository''), команды вводятся со стандартного ввода и выполняются в пакетном режиме. Если при выполнении команд в пакете возникает ошибка, ни одна, даже успешно выполнившаяся, не действует на ACL.
=== acl show ===


Команда <code>girar-acl</code> запускается, например, по <code>ssh git.alt acl</code>:
'''$ ssh git.alt acl <binary repository> <package> show'''
Показывает ACL указанного пакета


  $ ssh git.alt acl sisiphus ash show
$ ssh git.alt acl sisyphus bugzilla show
  ash    legion
bugzilla      @nobody
 
'''$ ssh git.alt acl <binary repository> @<group> show'''
Показывает состав указанной группы майнтайнеров.
 
$ ssh git.alt acl sisyhpus @python show
@python        ns ldv george akhavr bga lav swi at hiddenman sin mithraen kas
 
=== acl add/del ===
 
Эти операции выполняются асинхронно. Результат будет сообщён по e-mail.
 
'''$ ssh git.alt acl <binary repository> <package> add|del <login>|@<group> ...
Добавляет/удаляет указанных пользователей и группы в/из ACL указанного пакета. Данную операцию может производить только лидер пакета.
 
$ ssh git.alt acl sisyphus keyjnote add damir
girar-acl: 1 command(s) queued
$ ssh git.alt acl sisyphus keyjnote del damir
girar-acl: 1 command(s) queued
 
'''$ ssh git.alt acl <binary repository> @<group> add|del <login>|@<group> ...
Добавляет/удаляет указанных пользователей и группы в/из указанной группы. Данную операцию может производить только лидер группы.
 
$ ssh git.alt acl sisyphus keyjnote add @python
girar-acl: 1 command(s) queued
$ ssh git.alt acl sisyphus keyjnote del @python
girar-acl: 1 command(s) queued
 
=== acl replace ===
 
Эта операция выполняется асинхронно. Результат будет сообщён по e-mail.
 
'''$ ssh git.alt acl <binary repository> <package>|@<group> replace <login>|@<group> <login>|@<group>'''
Заменяет первую запись в ACL пакета или составе группы на вторую.
 
$ ssh git.alt acl sisyphus keyjnote replace dottedmag @python
 
=== acl leader ===
 
Эта операция выполняется асинхронно. Результат будет сообщён по e-mail.
 
'''$ ssh git.alt acl <binary repository> <package> leader <login>|@<group>
Устанавливает лидера пакета - указанного пользователя, или лидера указанной группы. Пользователь или группа, устанавливаемые лидерами, обязаны присутствовать в списке ACL пакета.
 
$ ssh git.alt acl sisyphus keyjnote leader @python
 
'''$ ssh git.alt acl <binary repository> @<group> leader <login>|@<group>
Устанавливает лидера группы - указанного пользователя, или лидера указанной группы. Пользователь или группа, устанавливаемые лидерами, обязаны присутствовать в списке членов группы.
 
$ ssh git.alt acl sisyphus @python leader ns
 
=== acl nmu ===
 
Эта операция выполняется асинхронно. Результат будет сообщён по e-mail.
 
'''$ ssh git.alt acl <binary repository> <package> nmu add|del [<login> [<start date> [<end date>]]]'''
Выдаёт/снимает разрешение на проведение [[NMU]] указанного пакета.
 
Параметры:
* '''login''' - аккаунт, которому даётся разрешение на NMU. '''*''' или отсутствие параметра означает "кому угодно"
* '''start date''' - дата начала действия NMU, в формате unixtime. Отсутствие параметра означает "немедленно"
* '''end date''' - дата окончания действия NMU, в формате unixtmie. Отсутствие параметра означает "никогда".
 
== Исторические подробности ==
 
До 17 ноября 2008 года управление ACL осуществлялось не через <tt>git.alt</tt>, а размещением файлов записок (notes) в определённой директории [[Incoming]].

Версия от 19:43, 18 ноября 2008

ACL пакетов

Пакеты в Sisyphus имеют ACL: набор пользователей, которым разрешено собирать пакет через git.alt или заливать src.rpm через Incoming.

Управление ACL производится с помощью SSH-интерфейса git.alt.

acl

Команда acl требует указания репозитория, над которым производится работа. На данный момент используется только репозиторий Sisyphus, для которого используется метка sisyphus.

Если в командной строке указан только репозиторий, но не указана подкоманда, то список команд читается со стандартного ввода, по одной команде на строку, и выполняется тразакционно: ошибка в выполнении хотя бы одной команды отменяет действие всего набора команд.

acl show

$ ssh git.alt acl <binary repository> <package> show

Показывает ACL указанного пакета

$ ssh git.alt acl sisyphus bugzilla show
bugzilla       @nobody
$ ssh git.alt acl <binary repository> @<group> show

Показывает состав указанной группы майнтайнеров.

$ ssh git.alt acl sisyhpus @python show
@python        ns ldv george akhavr bga lav swi at hiddenman sin mithraen kas

acl add/del

Эти операции выполняются асинхронно. Результат будет сообщён по e-mail.

$ ssh git.alt acl <binary repository> <package> add|del <login>|@<group> ...

Добавляет/удаляет указанных пользователей и группы в/из ACL указанного пакета. Данную операцию может производить только лидер пакета.

$ ssh git.alt acl sisyphus keyjnote add damir
girar-acl: 1 command(s) queued
$ ssh git.alt acl sisyphus keyjnote del damir
girar-acl: 1 command(s) queued
$ ssh git.alt acl <binary repository> @<group> add|del <login>|@<group> ...

Добавляет/удаляет указанных пользователей и группы в/из указанной группы. Данную операцию может производить только лидер группы.

$ ssh git.alt acl sisyphus keyjnote add @python
girar-acl: 1 command(s) queued
$ ssh git.alt acl sisyphus keyjnote del @python
girar-acl: 1 command(s) queued

acl replace

Эта операция выполняется асинхронно. Результат будет сообщён по e-mail.

$ ssh git.alt acl <binary repository> <package>|@<group> replace <login>|@<group> <login>|@<group>

Заменяет первую запись в ACL пакета или составе группы на вторую.

$ ssh git.alt acl sisyphus keyjnote replace dottedmag @python

acl leader

Эта операция выполняется асинхронно. Результат будет сообщён по e-mail.

$ ssh git.alt acl <binary repository> <package> leader <login>|@<group>

Устанавливает лидера пакета - указанного пользователя, или лидера указанной группы. Пользователь или группа, устанавливаемые лидерами, обязаны присутствовать в списке ACL пакета.

$ ssh git.alt acl sisyphus keyjnote leader @python
$ ssh git.alt acl <binary repository> @<group> leader <login>|@<group>

Устанавливает лидера группы - указанного пользователя, или лидера указанной группы. Пользователь или группа, устанавливаемые лидерами, обязаны присутствовать в списке членов группы.

$ ssh git.alt acl sisyphus @python leader ns

acl nmu

Эта операция выполняется асинхронно. Результат будет сообщён по e-mail.

$ ssh git.alt acl <binary repository> <package> nmu add|del [<login> [<start date> [<end date>]]]

Выдаёт/снимает разрешение на проведение NMU указанного пакета.

Параметры:

  • login - аккаунт, которому даётся разрешение на NMU. * или отсутствие параметра означает "кому угодно"
  • start date - дата начала действия NMU, в формате unixtime. Отсутствие параметра означает "немедленно"
  • end date - дата окончания действия NMU, в формате unixtmie. Отсутствие параметра означает "никогда".

Исторические подробности

До 17 ноября 2008 года управление ACL осуществлялось не через git.alt, а размещением файлов записок (notes) в определённой директории Incoming.