Hc_sudo - Привилегированный режим
Hc_sudo_cmd
Команда позволяет выполнить команду с правами пользователя root.
Аналог команды в CoCon:
sudo <cmd>
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/sudo_cmd
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 401 - параметры авторизации введены неверно;
- другие коды ответа зависят от команды, которая выполняется из под sudo.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element name="args" type="xs:base64Binary"/>
</xs:sequence>
<xs:attribute name="command" type="xs:string" use="required"/>
<xs:attribute name="tag" type="xs:string" use="required"/>
<xs:attribute name="user" type="xs:string" use="optional"/>
<xs:attribute name="header" type="xs:string" use="optional"/>
<xs:attribute name="passwd_prompt" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
CODE
Пример:
Запрос: http://192.168.1.21:9999/commands/sudo_cmd
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_sudo.xsd">
<request header="Sudo required" passwd_prompt="Enter password:" tag="cluster-manager" user="ssw" command="list_of_clusters">
<args>PGluIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
IHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJoY19saXN0X29mX2NsdXN0ZXJzLnhzZCI+
ICAgICAgICA8cmVxdWVzdCBzdG9yYWdlPSJkcyIvPiAgICAgICAgPC9pbj4=</args>
</request>
</in>
CODE
Ответ:
- в случае неверной авторизации: 401
в случае успеха: 200
<?xml version="1.0"?> <out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_list_of_clusters.xsd"> <clusters> <cluster name="tts" role="tts" active="true"/> <cluster name="core1" role="core" active="true"/> <cluster name="bot" role="adapter" active="true"/> <cluster name=".virtual" role="adapter" active="true"/> <cluster name="md" role="mediator" active="true"/> <cluster name="ds_test" role="storage" active="true"/> <cluster name="core2" role="core" active="true"/> <cluster name=".system_bridge" role="adapter" active="true"/> <cluster name="core3" role="core" active="true"/> <cluster name="pa_sip" role="adapter" active="true"/> <cluster name="ds" role="storage" active="true"/> <cluster name="megaco1" role="adapter" active="true"/> </clusters> </out>
CODE
Hc_unsudo_cmd
Команда позволяет закрыть sudo-сессию для определенного пользователя с определенным тегом.
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/unsudo_cmd
Код HTTP-ответа:
- 201 - в случае, если sudo-сессия успешно закрылась;
- 404 - в противном случае.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType>
<xs:attribute name="tag" type="xs:string" use="required"/>
<xs:attribute name="user" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
CODE
Пример::
Запрос: http://192.168.1.21:9999/commands/unsudo_cmd
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_unsudo.xsd">
<request tag="cluster-manager" user="admin"/>
</in>
CODE
Ответ в случае успеха: 204