<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>36144</bug_id>
          
          <creation_ts>2019-02-20 18:36:28 +0300</creation_ts>
          <short_desc>Неочевидная работа girar acl replace и отсутствие внятной справки</short_desc>
          <delta_ts>2021-06-21 01:54:33 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Infrastructure</classification>
          <product>Infrastructure</product>
          <component>girar</component>
          <version>unspecified</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aleksei Nikiforov">darktemplaralt</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>glebfm</cc>
    
    <cc>ldv</cc>
          
          <qa_contact name="Andrey Cherepanov">cas</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>178783</commentid>
    <comment_count>0</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2019-02-20 18:36:28 +0300</bug_when>
    <thetext>Справка girar acl:

$ ssh girar acl --help
Usage: girar-acl --list
   or: girar-acl &lt;repository&gt; [{&lt;package&gt;|@&lt;group&gt;} {check|show}]
   or: girar-acl &lt;repository&gt; [{&lt;package&gt;|@&lt;group&gt;} {add|del|leader|replace} {&lt;login&gt;|@&lt;group&gt;}...]
   or: girar-acl &lt;repository&gt;
Valid repositories are: c7 c7.1 c8 c8.1 icarus p7 p8 sisyphus t7
If no package is given, read commands from stdin, one command per line.
See http://www.altlinux.org/Incoming/acl for details.


Справка показывает команду replace, но не объясняет что данная команда делает. И указано, что принимается один или более аргументов для списка acl.

Из этого можно сделать вывод о том, что команда replace заменяет acl пакета на указанный список acl, поскольку она принимает список аргументов неопределённой длины.


$ ssh girar acl sisyphus filezilla replace darktemplar @everybody
&lt; filezilla replace darktemplar @everybody
&gt; OK: filezilla: @nobody
girar-acl: 1 command(s) queued

Результат:
https://lists.altlinux.org/pipermail/sisyphus-incominger/2019-February/518957.html

filezilla: &quot;darktemplar @qa&quot; -&gt; &quot;@nobody&quot;

Это явно не то, чего ожидалось.

Только при следующем вызове удаётся получить более внятную справку:
$ ssh girar acl sisyphus libfilezilla replace 
&lt; libfilezilla replace 
&gt; USAGE: &lt;package|@group&gt; replace &lt;old-owner&gt; &lt;new-owner&gt;

И то, для этого требуется, чтобы права на такие изменения были, иначе вместо справки будет сообщение об ошибке.

$ ssh girar acl sisyphus filezilla replace 
&lt; filezilla replace 
&gt; ERROR: filezilla replace: filezilla: Permission denied, only @nobody is allowed to change this acl

Я считаю, что либо должна быть доступна более внятная справка по вызову --help, либо поведение должно быть более очевидным.

Есть в конце справки и неприметная ссылка на &quot;детали&quot; в wiki, где неожиданно детали противоречат краткой справке (команда leader принимает ровно один аргумент, команда replace - ровно два аргумента, а не переменное количество).


Хоть это и отдельная проблема, но также наличие данной ошибки вызывает вопросы:
$ ssh girar acl sisyphus filezilla add darktemplar
&lt; filezilla add darktemplar
&gt; ERROR: filezilla add: filezilla: Permission denied, only @nobody is allowed to change this acl

Обойти, конечно, можно...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178793</commentid>
    <comment_count>1</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2019-02-21 10:07:14 +0300</bug_when>
    <thetext>Как вариант, если нельзя менять текущую работу команды acl replace, можно сделать команду, например, acl set {&lt;login&gt;|@&lt;group&gt;} [...], которая устанавливала бы acl в указанное значение, если для этого достаточно прав и список acl является корректным.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>