Назад | Перейти на главную страницу

Как лучше всего предоставить root-доступ к учетной записи без использования sudo?

У меня есть сервер HP-UX, на котором мне нужно создать специальную учетную запись пользователя для приложения, с которым будет взаимодействовать, и эта учетная запись должна иметь полные привилегии root. Судо здесь не вариант. Единственное, что я могу придумать, - это присвоить учетной записи UID 0. Сработает ли это, чтобы сделать учетную запись функционально root? Есть ли лучший способ сделать это без использования sudo?

Создание другой учетной записи с uid 0 может привести к путанице и, возможно, нарушению поведения.

Я бы не хотел запускать любую учетную запись, которую нельзя запустить через sudo или setuid.

Есть несколько способов использования sudo когда система подключается к такой учетной записи, как:

  • С помощью ssh, можно указать сценарий для запуска при подключении.
  • Использование профиля для запуска sudo при запуске интерактивного сеанса.
  • Используйте сценарий оболочки для повышения привилегий перед выполнением запроса.

Я запускал различные процедуры резервного копирования, которым необходим root-доступ для доступа ко всем файлам. Все они связаны с ограниченным доступом, обычно через некорневую учетную запись.

sudo можно настроить для запуска команд без запроса пароля. Создать сценарий оболочки, повышающий до root доступ через sudo и запускает нужную команду.

Программы с установленным битом setuid запускаются от имени пользователя, которому они принадлежат. Как правило, это более безопасно, если программа не разрешает доступ к неограниченной оболочке.

Я бы не рекомендовал пытаться присвоить UID 0 другой учетной записи. В системе должен быть 1 пользователь root.

С помощью sudo запускать команды без пароля - это вариант (лично мне не нравится код, который должен запускаться от имени пользователя root; но он у вас есть, так что давайте будем реалистами). Некоторые предостережения по этому поводу:

  1. В твоем /etc/sudoers файл, убедитесь, что NOPASSWORD option - последняя строка для этого пользователя. При чтении sudoers последняя строка перекрывает предыдущие.

  2. Укажите абсолютный путь к каталогам, которые вам нужны для этого пользователя.

  3. В /etc/sudoers включают Defaults env_reset чтобы сбросить среду до переменных по умолчанию.

/ etc / sudoers:

...
##
Defaults env_reset
...
##
app_user ALL=NOPASSWORD : /path/to/application, /usr/bin/su - root
...

(Измените путь на su в соответствии с вашим местоположением HP-UX.)

Прошло много времени с тех пор, как я использовал HP-UX, поэтому, пожалуйста, проверьте форматирование с тем, что у вас /etc/sudoers файл сейчас.

Вы не можете назначить другой учетной записи UID 0, не нарушив все.

Как отметил Рич Хомолка в комментарии, в ядре есть код, который явно проверяет uid 0, когда необходимо проверить пользователя root, что означает, что root всегда имеет как минимум uid 0.

https://superuser.com/questions/626843/does-the-root-account-always-have-uid-gid-0

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