Як я можу отримати інтерактивну оболонку як інший користувач, який не має коренів?


14

Я використовую сервер Ubuntu 10.04 LTS з типовою моделлю безпеки (root заблоковано, використовуючи sudoдля підняття привілеїв). Іноді мені подобається використовувати, sudo -iколи мені потрібно запустити серію команд з підвищеними привілеями або коли мені потрібно перекопатися в каталогах з правами root.

Іноді під час налаштування програмного забезпечення, яке працюватиме як власний непривілейований системний обліковий запис ( adduser --system --group --no-create-home --disabled-login some-daemon-user), я виявляю, що мені потрібно запускати послідовність команд як цього користувача , а не я або root. Я намагався використовувати sudo -i -u some-daemon-user, але він просто повертає 1статус без жодного повідомлення про помилку.

Я перевірив syslog, messages, auth, і debugфайли журналів в /var/logі жоден з них включають в себе будь-які повідомлення , які еталонні sudoабо рахунок в питанні.

Отже, чи можна стати іншим некористувальним користувачем у стилі sudo без встановлення пароля та входу (як вони)? Моя система якимось чином "зламана" чи я просто роблю це неправильно?

Відповіді:


14

Ахм .. проблема полягає в тому, що стандартна оболонка цих користувачів зазвичай встановлена, /bin/falseі з міркувань безпеки ви не повинні змінювати це. Але ви все одно можете працювати, наприклад:sudo -u www-data /bin/sh


1
Чи можете ви детальніше розповісти про "причини безпеки"? Чи є інше, якщо я використовую sudoдля запуску оболонки як користувача, як Флоріан пропонує вище?
Калріон

1
Причина полягає в тому, що будь-який зловмисник, який здійснює вхід в систему як користувач системи, тобто, використовуючи помилку в програмі входу, рідше виявиться дійсною оболонкою. Отже, ви повинні залишити налаштування таким, яке воно є у файлі / etc / passwd, навіть якщо це лише для гарної карми. Викликати оболонку безпосередньо через sudo не пов'язано з цим.
Пол Ханш

Таким чином, проблема полягає у встановленні оболонки у passwdфайлі, а фактично не працює оболонці як користувач. Отримав!
Калріон

9

sudo -iзапускає оболонку, вказану в записі бази даних пароля цільового користувача, яка призначена /bin/falseдля користувача вашої системи.

Використовуйте

 sudo -u some-daemon-user bash

або

sudo -u some-daemon-user -H bash

якщо ви хочете встановити змінну середовища $ HOME для цільового користувача.

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