Różnice między wybraną wersją a wersją aktualną.
| 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 K 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 P 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 | ||
| ~~ | ~~ | ||