Возможно ли для сценария оболочки UNIX / Linux «выйти» и выйти из системы текущего пользователя? - PullRequest
0 голосов
/ 15 августа 2011

У нас тут странная проблема. К сожалению, я не вправе публиковать здесь код, потому что он принадлежит поставщику, но, надеюсь, сможет предоставить достаточно информации, чтобы в этом не было необходимости.

Многое можно объяснить, если кто-то здесь может определенно сказать, возможно ли для 'bob' выполнить "some_script.sh", и заставить его выйти из своего сеансового сеанса MID-WAY и получить остаток от сценарий продолжается как пользователь 'pete' (который первоначально должен был выдать себя за 'bob')

Я вполне уверен, что это невозможно, но есть ли кто-нибудь, кто знает иначе?

Что нужно иметь в виду:

  1. scriptA.sh выполняет несколько других процессов (последовательно), которые вносят изменения в базу данных.
    • давайте предположим, что это от 01.sql до 10.sql.
    • Он делает это, выполняя sqlplus с соответствующими аргументами.
  2. Двоичный файл sqlplus доступен для пользователя 'bob', но НЕ для пользователя 'pete'.
  3. Пользователь pete в настоящее время включен в пользователя 'bob', потому что у pete нет sqlplus в его PATH.
  4. Вывод, который мы увидели в скрипте / базе данных, предполагал, что «01 .sql» был выполнен успешно, но не остальные - они потерпели неудачу с ошибкой «sqlplus command not found».

Приветствия

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

Из предоставленной вами информации: «Нет. Это невозможно.»

Если пользователь «pete» su 'to' bob ', он создает новую оболочку как' bob ',Все процессы, запущенные из этой новой оболочки, запускаются как 'bob'.Любой скрипт, если он запускается как 'bob', не может изменить свой user / UID на 'pete'.Любые процессы, запущенные как 'bob', не могут изменить свой пользовательский / UID (отсутствующий бит setuid на исполняемом файле).

Скорее всего, часть скрипта модифицирует среду оболочки и изменяет свой PATH или какую-либо другую ошибкувнутри сценария.

1 голос
/ 15 августа 2011

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

Используйте систему разрешений AIX так, как это было задумано. Если вам нужны учетные данные Боба для выполнения задачи, то есть программа, которую Sandipan может выполнить, которая повысит полномочия Боба только для той, которая требует учетные данные Боба.

Это Принцип наименьших привилегий и способ выполнения этой работы. Общие пароли - это плохой взлом, который поощряет худшие взломы.

...