Narzędzia użytkownika

Narzędzia witryny


so:users_chmod

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
so:users_chmod [2024/03/13 13:59]
jkonczak [Zmiana uprawnień, grupy i użytkownika pliku]
so:users_chmod [2026/03/17 15:04] (aktualna)
jkonczak [Zmiana uprawnień, grupy i użytkownika pliku]
Linia 54: Linia 54:
   ​   ​
 <​html></​small></​html>​ <​html></​small></​html>​
-  ​+ 
 +++++ Przykłady: | {{section>​so:​users_chmod:​examples#​id&​inline&​noheader}} ++++ 
 ===== Użytkownicy w systemie, historia logowania, komunikacja ===== ===== Użytkownicy w systemie, historia logowania, komunikacja =====
  
Linia 69: Linia 71:
 <​html><​small></​html>​ <​html><​small></​html>​
  
-~~Zadanie.#​~~ Sprawdź jacy użytkownicy byli zalogowaniu na polluksie w chwili ''​2023-03-03 13:30''​+~~Zadanie.#​~~ Sprawdź jacy użytkownicy byli zalogowaniu na polluksie w chwili ''​2026-03-16 10:04:10''​
  
 <​html></​small></​html>​ <​html></​small></​html>​
Linia 88: Linia 90:
  
 <​html></​small></​html>​ <​html></​small></​html>​
 +
 +++++ Przykłady: | {{section>​so:​users_chmod:​examples#​who&​inline&​noheader}} ++++
  
 ===== Przełączenie się na innego użytkownika ===== ===== Przełączenie się na innego użytkownika =====
Linia 93: Linia 97:
 Posiadając odpowiednie uprawnienia i/lub znając odpowiednie hasło (w zależności od ustawień systemu) można przełączyć się na innego użytkownika bądź wykonać komendę jako inny użytkownik. Posiadając odpowiednie uprawnienia i/lub znając odpowiednie hasło (w zależności od ustawień systemu) można przełączyć się na innego użytkownika bądź wykonać komendę jako inny użytkownik.
  
-Komenda ''​**su** [-] [//​użytkownik//​]''​ po autoryzacji ​uruchamia domyślną powłokę dla podanego użytkownika (domyślnie roota). \\ +Komenda ''​**su** [-] [//​użytkownik//​]''​ po uwierzytelnieniu ​uruchamia domyślną 
-Komenda ''​su -c //komenda// [-] [//​użytkownik//​]''​ po autoryzacji ​uruchamia w domyślnej powłoce dla podanego użytkownika (domyślnie roota) podaną komendę. \\+powłokę dla podanego użytkownika (domyślnie roota). \\ 
 +Komenda ''​su -c //komenda// [-] [//​użytkownik//​]''​ po uwierzytelnieniu ​uruchamia 
 +w domyślnej powłoce dla podanego użytkownika (domyślnie roota) podaną komendę. \\
 ''​su''​ jest dostępna w każdym uniksopodobnym systemie. ''​su''​ jest dostępna w każdym uniksopodobnym systemie.
 W domyślnych ustawieniach Linuksa komenda ''​su''​ wymaga podania hasła użytkownika docelowego (i w niektórych dystrybucjach przynależności do odpowiedniej grupy, zwykle ''​wheel''​). W domyślnych ustawieniach Linuksa komenda ''​su''​ wymaga podania hasła użytkownika docelowego (i w niektórych dystrybucjach przynależności do odpowiedniej grupy, zwykle ''​wheel''​).
  
-Na wielu dystrybucjach instalowana jest też komenda ''​sudo''​ która ma na celu zezwolenie wybranym użytkownikom na wykonywanie wybranych komend z uprawnieniami wskazanych użytkowników. Do autoryzacji ​''​sudo''​ wykorzystuje hasło bieżącego bądź docelowego użytkownika.+Na wielu dystrybucjach instalowana jest też komenda ''​sudo''​ która ma na celu 
 +zezwolenie wybranym użytkownikom na wykonywanie wybranych komend z uprawnieniami 
 +wskazanych użytkowników. Do uwierzytelnienia ​''​sudo''​ wykorzystuje hasło 
 +bieżącego bądź docelowego użytkownika.
 W niektórych dystrybucjach komenda ''​sudo''​ jest nadużywana do zastąpienia komendy ''​su''​. W niektórych dystrybucjach komenda ''​sudo''​ jest nadużywana do zastąpienia komendy ''​su''​.
  
-~~Zadanie.#​~~ Zaloguj się na podany przez prowadzącego serwer przez ssh (prawdopodobnie ''​ssh user//​N//​@fe80::​1%br0''​). Zmień użytkownika na ''​root''​. Zmień użytkownika na innego ''​user//​N//''​.+~~Zadanie.#​~~ Zaloguj się na podany przez prowadzącego serwer przez ssh 
 +(prawdopodobnie ''​ssh user//​N//​@fe80::​1%2''​, gdzie N musisz zastąpić numerem 
 +swojego komputera). 
 +Zmień użytkownika na ''​root''​. 
 +Zmień użytkownika na innego ''​user//​N//''​.
  
 <​html><​small></​html>​ <​html><​small></​html>​
  
 Do zmiany (w bieżącej sesji powłoki) grupy podstawowej można użyć komendy ''​newgrp''​ lub ''​sg''​. Komenda ''​sg''​ może też (podobnie jak ''​su''​) uruchomić wskazane polecenie ze zmienioną grupą podstawową. \\ Do zmiany (w bieżącej sesji powłoki) grupy podstawowej można użyć komendy ''​newgrp''​ lub ''​sg''​. Komenda ''​sg''​ może też (podobnie jak ''​su''​) uruchomić wskazane polecenie ze zmienioną grupą podstawową. \\
-Komenda ''​newgrp''​ jest [[https://​pubs.opengroup.org/​onlinepubs/​9699919799/​utilities/​newgrp.html|w standardzie POSIX]], ale część systemów uniksopodobnych jej nie dostarcza. ''​sg''​ jest specyficzne dla Linuksa. \\+Komenda ''​newgrp''​ jest [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​utilities/​newgrp.html|w standardzie POSIX]], ale część systemów uniksopodobnych jej nie dostarcza. ''​sg''​ jest specyficzne dla Linuksa. \\
 Po wykonaniu komendy ''​newgrp''​ / ''​sg''​ lista grup do których użytkownik należy zostaje bez zmian, więc efektywne prawa dostępu do plików są identyczne niezależnie od bieżącej grupy podstawowej. Po wykonaniu komendy ''​newgrp''​ / ''​sg''​ lista grup do których użytkownik należy zostaje bez zmian, więc efektywne prawa dostępu do plików są identyczne niezależnie od bieżącej grupy podstawowej.
 Zmiana grupy podstawowej ma wpływ m. inn. na to do jakiej grupy należą nowo tworzone pliki i procesy. Zmiana grupy podstawowej ma wpływ m. inn. na to do jakiej grupy należą nowo tworzone pliki i procesy.
Linia 113: Linia 126:
  
 <​html></​small></​html>​ <​html></​small></​html>​
 +
 +++++ Przykłady: | {{section>​so:​users_chmod:​examples#​su&​inline&​noheader}} ++++
  
 ===== Uprawnienia dostępu do plików ===== ===== Uprawnienia dostępu do plików =====
Linia 167: Linia 182:
 \\ \\
 a ''​rwx--x--x''​ pozwalają właścicielowi na odczyt, zapis i wykonanie pliku, a grupie i pozostałym tylko na wykonanie (''​711''​). a ''​rwx--x--x''​ pozwalają właścicielowi na odczyt, zapis i wykonanie pliku, a grupie i pozostałym tylko na wykonanie (''​711''​).
 +
 +++++ Ilustracja tego na który z trzech zestawów uprawnień patrzyć|
 +{{page>​so:​users_chmod:​which_perm_group&​inline&​noheader}}++++
  
 Aby zobaczyć szczegółowe informacje o pliku, w tym uprawnienia,​ można wykonać ''​**stat** //​plik//''​. Aby zobaczyć szczegółowe informacje o pliku, w tym uprawnienia,​ można wykonać ''​**stat** //​plik//''​.
 \\ \\
-Uprawnienia są też wyświetlane w wynikach ''​ls -l''​ i ''​tree -p''​.+Uprawnienia są też wyświetlane w wynikach ''​ls -l''​ i ''​tree -p'' ​(<​small>​lub razem z nazwą użytkownia i grupy ''​tree -pug''​(</​small>​).
 \\ \\
 Wszystkie powyższe polecenia dodają na początek uprawnień literę określającą rodzaj pliku. Wszystkie powyższe polecenia dodają na początek uprawnień literę określającą rodzaj pliku.
Linia 200: Linia 218:
   * operacja ''​+'',​ ''​-''​ lub ''​=''​ (dodaj, usuń lub ustaw te prawa)   * operacja ''​+'',​ ''​-''​ lub ''​=''​ (dodaj, usuń lub ustaw te prawa)
   * uprawnienia ''​r'',​ ''​w'',​ ''​x'',​ ''​s''​ lub ''​t''​.   * uprawnienia ''​r'',​ ''​w'',​ ''​x'',​ ''​s''​ lub ''​t''​.
-Np. ''​chown u+x,o= //​plik//''​ doda użytkownikowi prawo do zapisu i ustawi brak praw dla innych (a prawa grupy zostaną bez zmian).+Np. ''​chmod u+x,o= //​plik//''​ doda użytkownikowi prawo do zapisu i ustawi brak praw dla innych (a prawa grupy zostaną bez zmian).
 \\ \\
 <​small>​Pominięcie litery ''​[ugoa]''​ przed operacją ma specjalne znaczenie, szczegóły w podręczniku systemowym.</​small>​ <​small>​Pominięcie litery ''​[ugoa]''​ przed operacją ma specjalne znaczenie, szczegóły w podręczniku systemowym.</​small>​
Linia 212: Linia 230:
 Zarówno ''​chmod'',​ ''​chgrp''​ i ''​chown''​ przyjmują przełączniki ''​-R''​ (''​--recursive''​) dla rekursywnej zmiany i ''​--reference=//​plik//''​ dla ustawienia uprawnień/​grupy/​właściciela identycznego jak we wskazanym pliku. Zarówno ''​chmod'',​ ''​chgrp''​ i ''​chown''​ przyjmują przełączniki ''​-R''​ (''​--recursive''​) dla rekursywnej zmiany i ''​--reference=//​plik//''​ dla ustawienia uprawnień/​grupy/​właściciela identycznego jak we wskazanym pliku.
  
-//​Ćwiczenia wykonuj na podanym przez prowadzącego serwerze. \\ Do tworzenia plików możesz wykorzystać np. komendę // ''​fortune > //​plik//''​.+//​Ćwiczenia wykonuj na podanym przez prowadzącego serwerze ​(''​ssh user//​N//​@fe80::​1%2''​). 
 +\\ Do tworzenia plików możesz wykorzystać np. komendę // ''​fortune > //​plik//''​. 
 + 
 +<​small>​ 
 +++++ Instrukcja jak wykonywać ćwiczenia na własnym urządzeniu z Linuksem | 
 +Żeby robić poniższe ćwiczenia z własnego komputera, możesz albo: 
 +  - Dodać do swojego systemu przykładowe grupy i użytkowników komendami:<​code bash> 
 +groupadd even 
 +groupadd odd 
 +groupadd low 
 +groupadd high 
 +useradd -g odd  -G low  -m user1 
 +useradd -g even -G low  -m user2 
 +useradd -g odd  -G high -m user3 
 +useradd -g even -G high -m user4 
 +passwd -d user1 
 +passwd -d user2 
 +passwd -d user3 
 +passwd -d user4</​code>​ 
 +  - Zbudować i użyć {{so:​users_chmod:​container-for-file-permission-labs.tar.xz|obrazu dockera}} (o ile znasz dokera), np. komendami:<​code bash> 
 +curl -s https://​www.cs.put.poznan.pl/​jkonczak/​_media/​so:​users_chmod:​container-for-file-permission-labs.tar.xz | tar xJ 
 +docker build --tag container-for-file-permission-labs container-for-file-permission-labs 
 +docker run --network=none --rm -ti container-for-file-permission-labs</​code>​ 
 +++++ 
 +</​small>​
  
 ~~Zadanie.#​~~ Stwórz plik. Ustaw takie prawa dostępu, żeby tylko właściciel mógł odczytać plik. ~~Zadanie.#​~~ Stwórz plik. Ustaw takie prawa dostępu, żeby tylko właściciel mógł odczytać plik.
Linia 226: Linia 268:
 ~~Zadanie.#​~~ Stwórz plik. Ustaw takie prawa dostępu, żeby tylko właściciel i pozostali mogli odczytać plik. Sprawdź czy osoba należąca do grupy pliku może go odczytać. ~~Zadanie.#​~~ Stwórz plik. Ustaw takie prawa dostępu, żeby tylko właściciel i pozostali mogli odczytać plik. Sprawdź czy osoba należąca do grupy pliku może go odczytać.
  
-~~Zadanie.#​~~ Stwórz katalog ze zwykłym plikiem w środku. Odbierz prawo do wykonywania katalogu. Spróbuj wylistować katalog, wejść do katalogu i wyświetlić plik bez wchodzenia do katalogu.+~~Zadanie.#​~~ Stwórz katalog ​ze zwykłym plikiem ​P i pustym podkatalogiem ​w środku. 
 +Odbierz prawo do wykonywania katalogu ​K. 
 +Spróbuj wylistować ​ze szczegółami ​katalog ​K, wejść do niego, 
 +oraz wyświetlić plik bez wchodzenia do katalogu ​K.
  
-~~Zadanie.#​~~ Zmień prawa dostępu katalogu na ''​u=rwx,​go=rx''​. Stwórz w tym katalogu zwykły plik. Wyświetl plik jako inny użytkownik. Wyświetl zawartość katalogu jako inny użytkownik. \\ Następnie zmień prawa do katalogu ''​u=rwx,​go=x''​. Spróbuj ponownie wyświetlić plik i zawartość katalogu jako inny użytkownik.+~~Zadanie.#​~~ Zmień prawa dostępu katalogu na ''​u=rwx,​go=rx''​. Stwórz w tym 
 +katalogu zwykły plik. Wyświetl plik jako inny użytkownik. Wyświetl zawartość 
 +katalogu jako inny użytkownik. 
 +\\ 
 +Następnie zmień prawa do katalogu ​na ''​u=rwx,​go=x''​. Spróbuj ponownie 
 +wyświetlić plik i zawartość katalogu jako inny użytkownik.
  
 ~~Zadanie.#​~~ Stwórz katalog z prawami dostępu ''​777''​ i stwórz w nim dwa pliki. Jednemu z nich ustaw prawa ''​600''​. Z innego użytkownika spróbuj usunąć oba pliki. ~~Zadanie.#​~~ Stwórz katalog z prawami dostępu ''​777''​ i stwórz w nim dwa pliki. Jednemu z nich ustaw prawa ''​600''​. Z innego użytkownika spróbuj usunąć oba pliki.
Linia 234: Linia 284:
 ~~Zadanie.#​~~ W katalogu użytkownika A z prawami dostępu ''​777''​ stwórz jako użytkownik B dwa katalogi: jeden pusty, jeden z plikiem w środku. Spróbuj usunąć te katalogi jako użytkownik A. ~~Zadanie.#​~~ W katalogu użytkownika A z prawami dostępu ''​777''​ stwórz jako użytkownik B dwa katalogi: jeden pusty, jeden z plikiem w środku. Spróbuj usunąć te katalogi jako użytkownik A.
  
-~~Zadanie.#​~~ Czy możesz zmienić nazwę katalogu K który nie dał się usunąć w poprzednim zadaniu? Czy możesz przenieść katalog K do innego? Czy możesz przenieść katalog zawierający K do innego?+~~Zadanie.#​~~ Czy możesz zmienić nazwę katalogu K który nie dał się usunąć w 
 +poprzednim zadaniu? Czy możesz przenieść katalog K do innego ​katalogu? Czy 
 +możesz przenieść katalog zawierający K do innego ​katalogu?
  
 ~~Zadanie.#​~~ Stwórz plik i katalog z plikiem w środku i odbierz wszystkim trzem wszystkie uprawnienia. Zmień użytkownika na root i spróbuj wyświetlić oba pliki. ~~Zadanie.#​~~ Stwórz plik i katalog z plikiem w środku i odbierz wszystkim trzem wszystkie uprawnienia. Zmień użytkownika na root i spróbuj wyświetlić oba pliki.
  
 ~~Zadanie.#​~~ Z roota zmień właściciela wybranego pliku. Następnie zmień grupę innego pliku na ''​www-data''​. ~~Zadanie.#​~~ Z roota zmień właściciela wybranego pliku. Następnie zmień grupę innego pliku na ''​www-data''​.
 +
 +<​html><​style>​.wrap_nomargin{margin:​0} .wrap_nomargin p{margin:​0}</​style></​html>​
 +<WRAP nomargin>​
 +Przykłady:
 +++++ umask | {{section>​so:​users_chmod:​examples#​umask&​inline&​noheader}} ++++
 +++++ manipulacja uprawnieniami | {{section>​so:​users_chmod:​examples#​chmod&​inline&​noheader}} ++++
 +++++ user, group czy others | {{section>​so:​users_chmod:​examples#​ugo&​inline&​noheader}} ++++
 +++++ uprawnienia tylko do zapisu, odczytu | {{section>​so:​users_chmod:​examples#​write_only&​inline&​noheader}} ++++
 +++++ tworzenie/​usuwanie wpisów w katalogach | {{section>​so:​users_chmod:​examples#​dir_create_remove&​inline&​noheader}} ++++
 +</​WRAP>​
 +++++ suid i sgid | {{section>​so:​users_chmod:​examples#​suid_sgid&​inline&​noheader}} ++++
  
 ===== Data utworzenia, modyfikacji,​ dostępu ===== ===== Data utworzenia, modyfikacji,​ dostępu =====
Linia 265: Linia 328:
 <​html></​small></​html>​ <​html></​small></​html>​
  
 +++++ Przykłady: | {{section>​so:​users_chmod:​examples#​touch&​inline&​noheader}} ++++
   ​   ​
 ~~META: ~~META:
 language = pl language = pl
 ~~ ~~
so/users_chmod.1710334775.txt.gz · ostatnio zmienione: 2024/03/13 13:59 przez jkonczak