Як я можу дозволити одному користувачу подати заявку на інший, не допускаючи доступу до кореня?


53

Я хотів би дозволити певним користувачам подати заявку на інший обліковий запис користувача, не знаючи пароль цього облікового запису, але не дозволяти доступу до будь-якого іншого облікового запису користувача (тобто кореня).
Наприклад, я хотів би дозволити Tom DBA вступити на користувача оракула, але не на користувача tomcat або root.

Я думаю, це можна зробити за допомогою файлу / etc / sudoers - це можливо? Якщо так, то як?

Відповіді:


44

Так, це можливо.

У / etc / sudoers елемент, що знаходиться безпосередньо за рівнем, - це користувач, якому команда буде дозволена виконувати як.

tom  ALL=(oracle) /bin/chown tom *

Користувач (tom) може ввести sudo -u oracle / bin / chown tom / home / oracle / oraclefile


5
Це дозволить Тому запускати команди як oracle, але насправді не стати користувачем oracle
gharper

11
А як щодо sudo -u oracle su -? Це дало б йому оболонку, відкриту як користувач Oracle. Це те, чого ти хочеш?
Брент

+1 за останній коментар, Брент. Це була б моя відповідь.
Annika Backstrom

3
Щось подібне спрацювало б: sudo -u oracle -s або sudo -u oracle -i (-s для оболонки, -i для входу - робить оболонку для входу). На жаль, я точно не знаю, що б ви використовували в / etc / sudoers, щоб обмежити користувача, але, враховуючи, що ви дозволяєте їм отримати доступ до оболонки, ви, ймовірно, просто хочете зробити tom ALL = (oracle) ВСІ, як хтось згадав. Якщо вони можуть запускати оболонку, ви, мабуть, не хвилюєтесь щодо обмеження команд, які вони можуть виконувати.
Марк

1
В ідеалі, чи не хочете ви, щоб Том запускав команди як користувач oracle, а не став користувачем Oracle? Відмінність невелика, але вона забезпечує чудовий журнал аудиту без необхідності використовувати оболонку аудиту.
Скотт Пак

40

Додайте до / etc / sudoers щось подібне

tom ALL=(oracle) ALL

Тоді користувач tom повинен мати можливість використовувати sudo для керування речами як користувальницький оракул з опцією -u, не дозволяючи tom

Тобто отримання оболонки як користувальницький оракул (ну, враховуючи, що ваше судо досить нове, щоб мати можливість -i опції).

sudo -u oracle -i

5
Мені довелося використовувати синтаксис, tom ALL=(oracle)NOPASSWD:ALLщоб зробити sudo не запитувати пароль
snowindy

9

Щоб ТОЛЬКО надавати можливості у запитанні, додайте до / etc / sudoers:

tom            ALL=(oracle)    /bin/bash

Тоді Том може:

sudo -u oracle bash -i

0

Наприклад, я хотів би дозволити Tom DBA вступити на користувача оракула, але не на користувача tomcat або root.

Мені потрібно було це зробити нещодавно в системі, і я важко знаходив свої замітки щодо альтернативної установки, яку я використовував років тому, що також дозволяло синтаксис su <user>. У моїй ситуації мені потрібно було дозволити декілька користувачів suпевному користувачеві.

Створіть групу за допомогою того, addgroup <groupName>що інші користувачі зможуть suбез пароля. Потім додайте цю групу до кожного користувача, який ви хочете мати можливість suдля цього користувача без пароля: usermod -a -G <groupName> <userName>(або usermod -a -G oracle tom). Зміни групи можуть не впливати до наступного входу.

Примітка. У вашому випадку ви вже маєте групу, оскільки oracleгрупа була б створена, коли ви зробили користувача Oracle adduser oracle.

Тепер редагуйте /etc/pam.d/suта виконайте наведені нижче дії.

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so

..add auth правила рядків, щоб розділ виглядав так:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so
auth       [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth       sufficient   pam_succeed_if.so use_uid user ingroup <groupName>

Замінити <groupName>з oracleв цьому випадку. Це дозволить будь-якому користувачеві, який входить <groupName>доsu <groupName>

Тепер tomможна, su oracleі якщо вам потрібно надати іншим користувачам такий самий доступ, додайте їх до oracleгрупи.

подібне питання тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.