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