Control: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 20 промежуточных версий 6 участников)
Строка 1: Строка 1:
[[en:control]]
{{DISPLAYTITLE:control}}
{{DISPLAYTITLE:control}}
== control(8) ==
== control(8) ==


<tt>control</tt> — использующийся в ALT Linux и Owl GNU/*/Linux механизм переключения между неким набором фиксированных состояний для задач, допускающих такой набор.  В первую очередь полезен для управления SUID/SGID-бинарниками.
В дистрибутивах ALT Linux для управления доступом к важным службам используется подсистема control.


Для того, что-бы посмотреть, что означает то или иное политика {{cmd|control}} разрешения выполнения той или иной команды,управляемой {{cmd|control}} ,  надо запустить команду с ключом '''help''', например для команды  {{cmd|su}} имеем:
<tt>control</tt> — использующийся в ALT Linux и Owl GNU/*/Linux механизм переключения между неким набором фиксированных состояний для задач, допускающих такой набор.


<source lang=bash>
В первую очередь полезен для управления SUID/SGID-бинарниками.
 
Естественно, команда {{cmd|control}} доступна только для суперпользователя ([[root]]).
 
Для того, чтобы посмотреть, что означает та или иная '''политика''' {{cmd|control}} (разрешения выполнения конкретной команды, управляемой {{cmd|control}}),  надо запустить команду с ключом '''help'''. Например для команды  {{cmd|su}} имеем:
 
<syntaxhighlight lang=bash>
# control su help
# control su help
public: Any user can execute /bin/su
public: Any user can execute /bin/su
Строка 12: Строка 19:
wheelonly: Only "wheel" group members can execute /bin/su
wheelonly: Only "wheel" group members can execute /bin/su
restricted: Only root can execute /bin/su
restricted: Only root can execute /bin/su
</source>
</syntaxhighlight>


Т.е. дл управления командой su имеем:
Т.е. для управления командой {{cmd|su}} есть такие политики:
<source lang=text>
<syntaxhighlight lang=text>
public: любой пользователь может выполнить команду /bin/su
public: любой пользователь может выполнить команду /bin/su
wheel:  любой пользователь может выполгить команду su, но только пользователи, входящие в группу wheel могут получить через неё права root
wheel:  любой пользователь может выполнить команду su, но только пользователи, входящие в группу wheel, могут получить через неё права root
wheelonly: только пользователи, входящие в группу  wheel, могут выполнить команду su
wheelonly: только пользователи, входящие в группу  wheel, могут выполнить команду su
restricted: Только root может выполнять команду su
restricted: только root может выполнять команду su
</source>
</syntaxhighlight>


Или, например контрол для команды fusermount:
Или, например, политики для команды fusermount:


<source lang=bash>
<syntaxhighlight lang=bash>
# control fusermount help
# control fusermount help
public: Any user can execute /usr/bin/fusermount
public: Any user can execute /usr/bin/fusermount
Строка 30: Строка 37:
wheelonly: Only "wheel" group members can execute /usr/bin/fusermount
wheelonly: Only "wheel" group members can execute /usr/bin/fusermount
restricted: Only root can execute /usr/bin/fusermount
restricted: Only root can execute /usr/bin/fusermount
</source>
</syntaxhighlight>


<source lang=text>
<syntaxhighlight lang=text>
public: любой пользователь может выполнить команду fusermount
public: любой пользователь может выполнить команду fusermount
fuseonly:  только пользователи, входящие в группу  fuse, могут выполнить команду fusermount
fuseonly:  только пользователи, входящие в группу  fuse, могут выполнить команду fusermount
wheelonly: только пользователи, входящие в группу  wheel, могут выполнить команду fusermount
wheelonly: только пользователи, входящие в группу  wheel, могут выполнить команду fusermount
restricted: Только root может выполнять команду fusermount
restricted: только root может выполнять команду fusermount
</source>
</syntaxhighlight>
 
 
Запустив {{cmd|control}} без параметров, можно увидеть полный список команд, управляемых командой  (facilities) вместе с их текущим состоянием и набором допустимых состояний.


Для переключения состояния <tt>control</tt> вызывает соответствующий скрипт из {{path|/etc/control.d/facilities/}}.


Запустив {{cmd|control}} без параметров, можно увидеть полный список средств (facilities) вместе с их текущим состоянием и набором допустимых состояний.
Как именно делается переключение конкретной <tt>facility</tt> — зависит исключительно от фантазии разработчика :)


Для переключения состояния <tt>control</tt> вызывает соответствующий скрипт из {{path|/etc/control.d/facilities/}}. Как именно делается переключение конкретной <tt>facility</tt> — зависит исключительно от фантазии разработчика :)
Например, в случае {{prg|wodim}} скрипт изменяет права на исполняемый файл {{prg|wodim}}, а в случае {{prg|cups}} — правит {{path|cupsd.conf}} на предмет {{term|RunAsUser}}.
Например, в случае {{prg|cdrecord}} скрипт изменяет права на исполняемый файл {{prg|cdrecord}}, а в случае {{prg|cups}} — правит {{path|cupsd.conf}} на предмет {{term|RunAsUser}}.


=== Примеры ===
=== Пример ===
<pre>
<syntaxhighlight lang=bash>
# control  
# control  
at              restricted      (public restricted atdaemon)
at              restricted      (public restricted atdaemon)
Строка 68: Строка 78:
tcb_chkpwd      tcb            (traditional tcb restricted)
tcb_chkpwd      tcb            (traditional tcb restricted)
write          public          (public restricted)
write          public          (public restricted)
</pre>
</syntaxhighlight>


== Ссылки ==
== Ссылки ==
Строка 78: Строка 88:
[[Категория:Admin]]
[[Категория:Admin]]
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}
[[Категория:Управление пользователями]]

Текущая версия от 00:01, 3 июля 2024


control(8)

В дистрибутивах ALT Linux для управления доступом к важным службам используется подсистема control.

control — использующийся в ALT Linux и Owl GNU/*/Linux механизм переключения между неким набором фиксированных состояний для задач, допускающих такой набор.

В первую очередь полезен для управления SUID/SGID-бинарниками.

Естественно, команда control доступна только для суперпользователя (root).

Для того, чтобы посмотреть, что означает та или иная политика control (разрешения выполнения конкретной команды, управляемой control), надо запустить команду с ключом help. Например для команды su имеем:

# control su help
public: Any user can execute /bin/su
wheel: Any user can execute /bin/su, but only "wheel" group members can switch to superuser
wheelonly: Only "wheel" group members can execute /bin/su
restricted: Only root can execute /bin/su

Т.е. для управления командой su есть такие политики:

public: любой пользователь может выполнить команду /bin/su
wheel:  любой пользователь может выполнить команду su, но только пользователи, входящие в группу wheel, могут получить через неё права root
wheelonly: только пользователи, входящие в группу  wheel, могут выполнить команду su
restricted: только root может выполнять команду su

Или, например, политики для команды fusermount:

# control fusermount help
public: Any user can execute /usr/bin/fusermount
fuseonly: Only "fuse" group members can execute /usr/bin/fusermount
wheelonly: Only "wheel" group members can execute /usr/bin/fusermount
restricted: Only root can execute /usr/bin/fusermount
public: любой пользователь может выполнить команду fusermount
fuseonly:  только пользователи, входящие в группу  fuse, могут выполнить команду fusermount
wheelonly: только пользователи, входящие в группу  wheel, могут выполнить команду fusermount
restricted: только root может выполнять команду fusermount


Запустив control без параметров, можно увидеть полный список команд, управляемых командой (facilities) вместе с их текущим состоянием и набором допустимых состояний.

Для переключения состояния control вызывает соответствующий скрипт из /etc/control.d/facilities/.

Как именно делается переключение конкретной facility — зависит исключительно от фантазии разработчика :)

Например, в случае wodim скрипт изменяет права на исполняемый файл wodim, а в случае cups — правит cupsd.conf на предмет RunAsUser.

Пример

# control 
at              restricted      (public restricted atdaemon)
crontab         public          (public restricted)
fusermount      restricted      (public wheelonly restricted)
gpasswd         restricted      (public wheelonly restricted)
mount           public          (public wheelonly restricted)
newgrp          restricted      (public wheelonly restricted)
nfsmount        restricted      (public wheelonly restricted)
pam_mktemp      enabled         (enabled disabled)
passwd          tcb             (tcb traditional restricted)
ping            public          (public netadmin restricted)
ping6           restricted      (public netadmin restricted)
postfix         local           (local server filter)
postqueue       public          (public mailadm restricted)
sftp            disabled        (enabled disabled)
su              wheelonly       (public wheel wheelonly restricted)
sudo            public          (public wheelonly restricted)
sudoers         unknown         (strict relaxed)
system-auth     local           (local ldap)
tcb_chkpwd      tcb             (traditional tcb restricted)
write           public          (public restricted)

Ссылки