Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: uprawnienia użytkownika  (Przeczytany 2795 razy)

Black996

  • Gość
uprawnienia użytkownika
« dnia: 2015-01-23, 14:19:49 »
Witam, chciałbym zrobić tak że użytkownik może tylko i wyłącznie użyć jednej konkretnej komendy i żadnej innej. Jest to możliwe? jeśli tak to jak :D

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
uprawnienia użytkownika
« Odpowiedź #1 dnia: 2015-01-23, 15:56:33 »
* Mowa o trybie tekstowym czy graficznym?
* Jakiego typu to jest komenda? Najlepiej konkretny przykład.
* Czy user loguje się lokalnie czy zdalnie?
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Black996

  • Gość
uprawnienia użytkownika
« Odpowiedź #2 dnia: 2015-01-23, 16:46:57 »
tekstowy
komenda ./
zdalnie ssh

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
uprawnienia użytkownika
« Odpowiedź #3 dnia: 2015-01-23, 22:09:18 »
Chodzi Ci o użytkownika, który może wykonać tylko i wyłącznie jedno polecenie ogólnie czy tylko jedno polecenie z uprawnieniami roota?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
uprawnienia użytkownika
« Odpowiedź #4 dnia: 2015-01-24, 13:02:46 »
Napisz dokładnie co potrzebujesz, bo jak długo nie wiemy co to za komenda i jak wygląda "normalnie" jej wywołanie to trudno coś powiedzieć.
Może być potrzebny chroot, może wystarczy ograniczenie w authorized-hosts, może wystarczy wpis w sshd.config. Nie wiemy, bo mamy za mało informacji.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Black996

  • Gość
uprawnienia użytkownika
« Odpowiedź #5 dnia: 2015-01-24, 23:13:41 »
Cytat: roobal
Chodzi Ci o użytkownika, który może wykonać tylko i wyłącznie jedno polecenie ogólnie czy tylko jedno polecenie z uprawnieniami roota?
Użytkownik który może wykonać tylko i wyłącznie jedną komendę. Komenda ta nie musi posiadać uprawnień roota wywołuje ona skrypt sh.

Edit:

Ewentualnie zrobić tak że ten użytkownik ma dostęp tylko do swojego katalogu /home/user i tam może robić wszystko co mu się podoba ale nie może z niego wyjść i użyć komendy np. /mc

płona

  • Gość
uprawnienia użytkownika
« Odpowiedź #6 dnia: 2015-01-25, 14:32:14 »
Opiszę, jak to zrobiłem u siebie:
1. shell-em użytkownika jest rbash, a nie bash:
usermod -s /bin/rbash nazwa_użytkownika

w rbash-u nie można wykonywać komend zaczynających się do /

2. trzeba zadbać o PATH użytkownika - zrobiłem to w /etc/profile, nie w $HOME./bash_profile, bo ten plik jest edytowalny dla użytkownika:
if [ LOGNAME = "nazwa_uzytkownika" ]; then
PATH=/home/nazwa_u/bin
export PATH
fi

3. zabroniłem pisania do katalogu domowego (aby nie mógł edytować plików .*, np. .bash_profile. Zamiast tego utworzyłem katalog w jego domowym, gdzie ma już pełne uprawnienia.

4. do katalogu /home/uzytkownik/bin podlinkowałem te komendy, których może używać - w Twoim wypadku wystarczy tam umieścić skrypt, który chcesz wykonać. Trzeba to sprawdzić z poziomu użytkownika, bo skrypt może wywoływać jakieś rzeczy, które są np. w /usr/bin. w takim wypadku to, co potrzebne podlinkuj do bin użytkownika.

5. problem. Użytkownik może wykonać "obejście" wpisując np:
ssh serwer -l uzytkownik  xterm
wtedy ma dostęp do wszystkiego, bo /etc/profile się nie wykonuje
rozwiązanie:
/etc/sshd_config, wpis
ForceCommand = foo_script
wtedy w zmiennej SSH_ORIGINAL_COMMAND masz argumenty przekazane do ssh na maszynie lokalnej z której jest połączenie. Możesz je przeanalizować i wpuścić, albo odrzucić. dokładniejszy opis:
http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man5/sshd_config.5?query=sshd_config

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
uprawnienia użytkownika
« Odpowiedź #7 dnia: 2015-01-25, 15:13:33 »
Może w ogóle nie chcesz, żeby ten użytkownik mógł wykonywać polecenia, a jedynie był ograniczony po zalogowaniu do prostego, stworzonego przez ciebie, menu?

Możesz nie dawać mu dostępu do powłoki, tylko ustawić swój skrypt jako jego shell (usermod), który zostanie odpalony po zalogowaniu.
W skrypcie możesz wpisać sobie menu:
1) zrob coś
2) zrób coś innego
0) koniec
Wybór: _
W ten sposób zezwolisz tylko na bardzo konkretne działania po zalogowaniu.

Innego sensu ograniczania shella do jednego polecenia nie widzę.
Chyba, że opiszesz o co ci chodzi i PO CO to potrzebujesz.