Nowe posty

Autor Wątek: Uprawnienia  (Przeczytany 2891 razy)

lordkamienneserce

  • Gość
Uprawnienia
« dnia: 2016-04-02, 17:44:42 »
Mam kilka pytań dot. nauki i mimo że długo szukam rozwiązania, nie udaje mi się. Przeczytałem, że nie należy wysyłać pytań związanych z pracą domową, jednak dalej jest napisane "pytaj o wskazówki, nie o rozwiązanie". Więc pytam o wskazówki. Używam Debiana 64-bit.

1. Jako administrator systemu umożliwić wszystkim użytkownikom w systemie (użytkownikom z ograniczonym dostępem) aby za pomocą polecenia "mkdir" mogli zakładać katalogi w katalogu /root (bez naruszania uprawnień do samego katalogu /root - użytkownicy mają jedynie mieć prawo utworzyć tam katalog, ponadto nic więcej).

Dodałem za pomocą setfacl -m o::-wx /root uprawnienia do zapisu i wykonywania. Natomiast jak mam wykluczyć tworzenie nowych plików w tym folderze albo wykonywanie innych czynności niż tworzenie katalogu?

2. Dlaczego po zmianie UID jakiegoś użytkownika, ciągle może on zapisywać do jego folderu domowego? Skoro system widzi użytkownika po UID, to czy po zmianie nie powinien widzieć go jako "other" i użyć uprawnień zdefiniowanych dla nich?

3. Jako administrator systemu otrzymałeś polecenie, aby utworzyć grupę "Uprzywilejowani", przypisać do niej użytkownika "ewa" oraz "olek" i umożliwić tylko i wyłącznie członkom tej grupy korzystanie z poleceń ftp oraz mail.

Poleceniem whereis ftp dowiaduję się, że adres pliku ftp to /usr/bin/ftp. Zmieniam uprawnienia: chmod 070 /usr/bin/ftp. Później chgrp uprzywilejowani /usr/bin/ftp. Sprawdzam uprawnienia w Midnight Commanderze - są prawidłowe. Natomiast polecenie ls -la podaje ciągle starego właściciela (root root) i stare uprawnienia (lrwxrwxrwx). Wnioskuję, że skoro /usr/bin/ftp jest dowiązaniem dowiązania, a docelowy plik to /usr/bin/netkit-ftp, to polecenie ls -la dotyczy uprawnień samego dowiązania, a poleceniem chmod działam na pliku docelowym? Tylko jak w takim razie można zmienić uprawnienia dowiązania i czemu ma ono inne uprawnienia od pliku docelowego?

4. Utworzyć wspólny katalog dla powyżej założonych użytkowników, tak aby wszyscy (ale nikt poza nimi) mieli możliwość tworzyć pliki w tym katalogu, przegrywać tam pliki, modyfikować je, itd. (tj. wszyscy mają takie same, pełne prawa do tego katalogu) - wykorzystując uprawnienie SGID oraz zmienną umask.

Zastanawiam się nad sensem wykorzystania uprawnienia SGID oraz zmiennej umask - czy to może być w jakikolwiek sposób pomocne w wykonaniu zadania, czy to po prostu dodatkowe warunki? Skoro umask określa, z jakimi uprawnieniami będą nowotworzone pliki i foldery przez danego użytkownika, to jaki to ma związek? Gdybym dla każdego z członków grupy zrobił umask, miałoby to efekt dla wszystkich folderów, a nie tego jednego. Zrobiłem tak: chmod 2770 (nazwa folderu), potem chgrp.

Pozdrawiam.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3066
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Uprawnienia
« Odpowiedź #1 dnia: 2016-04-03, 00:17:37 »
Cytuj
Tylko jak w takim razie można zmienić uprawnienia dowiązania [...]
Dowiązania zawsze mają atrybuty lrwxrwxrwx i nie da się tego zmienić. System zawsze olewa uprawnienie dowiązania i używa uprawnień obiektu wskazywanego przez to dowiązanie. MC robie "w locie" dereferencję. LS działa i pokazuje prawidłowo.

Cytuj
setfacl -m o::-wx /root uprawnienia do zapisu i wykonywania.
Jeżeli w zadaniu nie jest napisane inaczej, należy je rozwiązać bez korzystania z ACLek (taka uwaga byłego nauczyciela)

Cytuj
Dlaczego po zmianie UID jakiegoś użytkownika, ciągle może on zapisywać do jego folderu domowego? Skoro system widzi użytkownika po UID, to czy po zmianie nie powinien widzieć go jako "other" i użyć uprawnień zdefiniowanych dla nich?
Sam sobie odpowiedziałeś. System widzi użytkownika po UID. Użytkownik jest "przelogowywany" na właściwe GID/UID w momencie zalogowania a właściwy UID i GID jest wybierany na podstawie /etc/passwd i /etc/group (albo innego mechanizmu logowania). Po zalogowaniu - żadne dalej wyszukiwania nie są robione. Jak długo użytkownik jest zalogowany, tak długo jego sesja nie widzi zmian GID, UID, katalogu domowego, dodatkowych grup, itp. Oczywiście programy typu LS, PS sprawdzają dane w bieżącej wersji bazy, więc będą pokazywały aktualne wyniki - jednak sesja tego nie widzi. W chwili wylogowania i ponownego zalogowania wszystko się aktualizuje.

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