Уникнення пароля root


0

Я зробив цю зміну:

vim /etc/sudoers
# User privilege specification
root    ALL=(ALL) NOPASSWD: ALL

Коли я використовую:

sudo service cassandra start 

він працює без пароля. Але, коли я використовую:

script shell
ssh -t root@$machine -x "sshpass -p 'ubuntu' ssh -t ubuntu@$address -o   StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul -x 'sudo service cassandra start'"

Я повинен ввести пароль!

Ви, будь ласка, уявіть, чому він не працює з ssh?

Велике спасибі за допомогу. З повагою.


Я думаю, що тема не так ясно, ви можете редагувати його ?.
Francisco Tapia

деякі поради: уникайте редагування /etc/sudoers безпосередньо за допомогою vim. Якщо ви зробите помилку, ваш sudo може бути порушено. Краще використовувати visudo команду. Він також змінить ваш /etc/sudoers файл, але він буде робити деякі додаткові перевірки синтаксису, перш ніж ви зможете вийти з програми ( подивитися )
Slizzered

Відповіді:


0

"Root" в / etc / sudoers має бути ідентифікатором користувача виконання команди .... У вашому прикладі це буде 'ubuntu' я вірю.

Приклад:

  1. входить до $ machine як root (припускаючи, що ви встановили цю машину для входу в систему як кореневу систему. Якщо ні, вам потрібно налаштувати параметри pam.d, щоб дозволити вхід до root через ssh. Це не має нічого спільного з sudo ).
  2. Як root @ # машина, ваша команда ssh's до ubuntu @ address і виконує команду 'sudo service cassandra start'.

Це виглядає на вашому прикладі, що ви повинні включити sudo для ubuntu і не корінь, щоб мати можливість виконувати сервісні команди.

Приклад:

# User privilege specification
ubuntu    ALL=(root) NOPASSWD: /usr/bin/service cassandra *

EDIT: Я дійсно збентежений щодо того, що ви намагаєтеся досягти. Якщо ви просто намагаєтеся ssh на інший сервер і запустіть цю команду служби, все, що потрібно, це у вашому сценарії оболонки:

Ваша команда виглядатиме так:

sshpass -p 'ubuntu' ssh -t ubuntu@$address -o   StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul -x 'sudo service cassandra start'

Крім того, вам все одно доведеться додати мої редагування в / etc / sudoers, щоб дозволити "ubuntu" виконати цю команду.


Я додав Ubuntu ALL = (root) NOPASSWD: / usr / bin / service cassandra * в / etc / sudoers, але вказую, що я повинен ввести пароль. ubuntu @ $ address є контейнером lxc, це проблема?
researcher

lxc приносить різний рівень безпеки, але я не думаю, що це ваша проблема. Ви можете додати прапор -v до вашого ssh виклику, щоб зрозуміти більше про те, що ви натискаєте. Це може дати вам більш детальну інформацію. Ви також повинні перевірити /var/log/auth.log, щоб побачити, яка тут помилка. Обидва ці дані журналу допоможуть надалі відлагоджувати помилки авторизації. Крім того, ви повинні переконатися, що ваш аутентифікація працює поетапно. Спочатку просто спробуйте підключитися до $ address з паролем, а потім переконайтеся, що sudo працює безпосередньо. Якщо це так, спробуйте простий виклик ssh без sshpass. і т.д.
Rob Calistri
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.