Nowe posty

Autor Wątek: (visudo) Przelogowanie bez hasła  (Przeczytany 6330 razy)

Offline jablopio

  • Nowy na forum
  • *
  • Wiadomości: 3
  • Liberate me ex infernis…
    • Zobacz profil
    • jablopio: about
(visudo) Przelogowanie bez hasła
« dnia: 2021-04-04, 03:37:38 »
Mam prośbę o pomoc w jak się zapewne okaże, prostym zadaniu, a mianowicie: w systemie mamy m.in. konta dwóch użytkowników: 'user1' i 'user2'; rzecz w tym, by 'user1' mógł się przelogować na 'user2' bez podawania hasła.

Bezskutecznie kombinowałem w 'visudo' dodając wpis:

> visudo
  user1    ALL=NOPASSWD: /usr/bin/su user2
Nie mam pomysłu i  będę szczerze wdzięczny za pomoc.

Z góry dziękuję i pozdrawiam…
 
 
________________________________________________
  • Dulce et decorum est pro veritas mori…

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3047
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: (visudo) Przelogowanie bez hasła
« Odpowiedź #1 dnia: 2021-04-05, 19:10:49 »
Brakuje części specyfikacji:

user1    ALL=(ALL) NOPASSWD: /usr/bin/su user2

Poza tym upewnij się, gdzie tak naprawdę znajduje się su. Sprawdzałem na Debianie i Ubuntu, i tam to jest /bin/su. A sudo weryfikuje ścieżkę.

Możesz też wykorzystać natywny mechanizm sudo:

user1    ALL=(user2) NOPASSWD: ALL

Wtedy user1 moze robić sudo -u user2 komenda albo nawet sudo -u user2 -i dla uzyskania zgłoszenia systemowego.


Pytanie: dlaczego wszyscy robią zawsze sudo su zamiast sudo -i ? Na palcach jednej ręki można policzyć różnice, i to na ogół są corner-case'y...
« Ostatnia zmiana: 2021-04-05, 19:15:07 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline jablopio

  • Nowy na forum
  • *
  • Wiadomości: 3
  • Liberate me ex infernis…
    • Zobacz profil
    • jablopio: about
(visudo) Przelogowanie bez hasła
« Odpowiedź #2 dnia: 2021-04-05, 23:54:59 »
Witam i pierwsze co, to bardzo dziękuję za podjęcie tematu – już się martwiłem, że nie znajdzie się żaden chętny. A teraz po kolei…

Lokalizacja 'su' była sprawdzana i na pewno jest poprawna (CentOS 7). Niestety, nawet po wprowadzeniu poprawek do wpisu, przelogowanie nie działa tak, jak miało – nadal wymagane jest hasło.

› whereis su
  su: /usr/bin/su /usr/share/man/man1/su.1.gz
› visudo
  user1   ALL=(ALL)  NOPASSWD: /usr/bin/su user2
  :wq
› su user2
  Password:
Druga zaproponowana opcja, co prawda umożliwia przelogowanie bez hasła ALE taki zapis powoduje, że 'user1' odrzynał zbyt wiele. Teraz może wywołać dowolną komendę w imieniu 'user2', ma dostęp do jego danych, możliwość usuwania jego plików, uruchamiania usług itp. Niby to bez różnicy, bo przecież i tak miał się na niego przelogować. No nie do końca, bo przy logowaniu/przelogowywaniu 'user2' zaczytuje swoją konfiguracje i m.in. ograniczenia.

Niestety, ani pierwsza ani druga propozycja nie daje rozwiązania – niemniej, raz jeszcze dziękuję. PROBLEM POZOSTAJE OTWARTY i naprawdę liczę na Waszą pomoc (za którą z góry dziękuję).
 
 
________________________________________________
  • Dulce et decorum est pro veritas mori…

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3047
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: (visudo) Przelogowanie bez hasła
« Odpowiedź #3 dnia: 2021-04-06, 06:59:54 »
Ale wiesz, że modyfikacja sudoers nie robi żadnej magii (i nie ma żadnego wpływu na program su), i że dalej musisz wywołać su przez sudo?

sudo su user2
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline jablopio

  • Nowy na forum
  • *
  • Wiadomości: 3
  • Liberate me ex infernis…
    • Zobacz profil
    • jablopio: about
(visudo) Przelogowanie bez hasła
« Odpowiedź #4 dnia: 2021-04-09, 17:23:58 »
O.K. Ogarnąłem…

Jak to zwykle bywa, rzecz w szczegółach. Tym razem chodziło o '-' (myślnik). Kiedy w 'visudo' dodamy brakujący myślnik wszystko zaczyna działać tak, jak powinno.

root@localhost >visudo
  user1  ALL=(ALL)  NOPASSWD: /usr/bin/su - user2
  :wq
Gwoli sprawdzenia, poniżej widać, że teraz 'user1' może się przelogować na 'user2' nie podając hasła.

user1@localhost >sudo su - user2
  Last login: Mon Apr  5 20:47:31 CEST 2021 on pts/0
user2@localhost >
Problem rozwiązany i dziękuję wszystkim zaangażowanym za pomoc. Temat DO ZAMKNIĘCIA.
 
 
________________________________________________
  • Dulce et decorum est pro veritas mori…