Tomcat9 Включить страницу диспетчера для нескольких служб

3. Непонимание происходящего.

Вы не вмешиваетесь в текстовые сеансы разных пользователей. Здесь только один пользователь ведет сеанс, назовем ее Алиса. Алиса зарегистрирована на консоли и запускает кучу приложений, включая некоторые эмуляторы терминалов.

В одном из этих терминалов Алиса выполняет sudo -u bob sh. Теперь есть оболочка, запущенная под учетной записью Боба, но терминал предоставлен Алисой. Процесс эмулятора терминала запущен от имени пользователя alice.

Когда вы запускаете cat /dev/ttys42 от имени Алисы, вы подглядываете и даже вмешиваетесь в работу эмулятора терминала, который выполняется Алисой, а не в работу оболочки, которую выполняет Боб.

Вы наблюдаете странные явления при наборе текста, потому что каждый байт передается несколько случайным образом любому из процессов, читающих ввод с терминала. Обычно в терминале существует только один процесс переднего плана: механизм управления заданиями и, в частности, управление группой процессов переднего плана и сигнал SIGTTIN обеспечивают это.

Обратите внимание, что /dev/ttys42 принадлежит Алисе. Если Боб запускает эмулятор терминала, то /dev/ttys42 будет принадлежать Бобу и не будет доступен для чтения или записи Алисе, поэтому Алиса не сможет вмешаться на этом уровне. Однако если этот терминал находится в GUI-сессии Алисы, то Алиса может вмешаться на уровне GUI (например, подсматривая или вводя нажатия клавиш, или заставляя Боба поверить, что он взаимодействует с терминалом, который он запустил, когда на самом деле он взаимодействует с приложением, выполняемым Алисой).

0
23.05.2019, 13:38
2 ответа

Поскольку страница не показывает HTTP 404, это означает, что страница менеджера запущена и работает.

  1. Добавьте в свой server.xmlпосле элементов <Listener/>и перед элементом <Service/>(, скопированным изapache-tomcat-9.0.20/conf/server.xml):

    по умолчанию.
    <GlobalNamingResources>
      <!-- Editable user database that can also be used by
           UserDatabaseRealm to authenticate users
      -->
      <Resource name="UserDatabase" auth="Container"
                type="org.apache.catalina.UserDatabase"
                description="User database that can be updated and saved"
                factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                pathname="conf/tomcat-users.xml" />
    </GlobalNamingResources>
    
  2. Вам необходимо добавить пользователя с паролем и ролью manager-guiв tomcat-users.xmlдля доступа к странице /manager/html.

    Минималистичный образецtomcat-users.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <tomcat-users xmlns="http://tomcat.apache.org/xml"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
                  version="1.0">
      <user username="admin" password="secret" roles="manager-gui"/>
    </tomcat-users>
    

    См. Настройка доступа к приложению Manager

0
28.01.2020, 03:40

Ваш server.xmlнедействителен. Вы не можете вложить <Realm.../>внутри <Service... />. Вы можете вкладывать <Realm.../>только внутрь <Engine.../>, <Host.../>или <Context.../>.

0
28.01.2020, 03:40

Теги

Похожие вопросы