Pokazywanie postów oznaczonych etykietą System. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą System. Pokaż wszystkie posty

sobota, 9 sierpnia 2008

Prawa plików (nadawanie i zmiana praw)

W linuksie każdy utworzony plik posiada określone prawa. Można je sprawdzić za pomocą polecenia ls -l, które listuje zawartość katalogu. Dla przykładowo utworzonego pliku, polecenie ls - l daje u mnie następujący wynik:

$ ls -l

-rw-r--r-- 1 sebastian sebastian 27 sie 9 15:47 przykład

Pierwszy znak oznacza rodzaj pliku. W tym przypadku jest to myślnik oznaczający zwykły plik. Na przykład "d" w tym miejscu oznacza katalog a "l" dowiązanie symboliczne. Następne dziewięć znaków oznacza prawa pliku. Dalej można odczytać właściciela pliku, grupę pliku, czas ostatniej modyfikacji i nazwę pliku.
Te dziewieć znaków określa prawa pliku dla właściciela pliku, grupy przypisanej do pliku i pozostałych użytkowników (wszystkich tych którzy nie są ani właścicielem pliku ani nie należą do grupy pliku). Prawa każdej z tych trzech "grup" (właściciel, grupa, pozostali użytkownicy) określają trzy znaki. Pierwsze trzy określają prawa właściciela pliku, kolejne trzy prawa grupy natomiast ostatnie trzy określają prawa pozostałych użytkowników.
W powyższym przykładzie właścicielem pliku jest sebastian, grupa pliku też się nazywa sebastian. Prawa pliku są natomiast następujące (pierwszy myślnik pomijamy bo oznacza on rodzaj pliku):

rw- dla właściciela pliku (sebastian)
r-- dla grupy pliku (sebastian)
r-- dla pozostałych użytkowników

Litera r (od słowa read - ang. czytać) oznacza prawa do odczytu pliku natomiast litera w (od słowa write - ang. pisać) oznacza prawo do zapisu czyli zaminy zawartości pliku. Oprócz tych dwóch praw może się jeszcze pojawić prawo wykonywania pliku - litera x (od słowa execute - ang. wykonywać). Myślnik oznacza brak danego prawa. Wracając do przykładu można powiedzieć, że właściciel pliku (sebastian) może odczytać plik i zmienić jego zawartość (rw). Użytkownicy należący do grupy sebastian mogą tylko odczytać plik (r), podobnie jak wszyscy pozostali użytkownicy pliku (r). Natomiast gdyby wszyscy użytkownicy posiadali prawa do odczytu i zapisu pliku, wówczas prawa pliku wyglądałyby następująco:

-rw-rw-rw-

Trzy ostatnie myślniki to są miejsca gdzie może pojawić się x jeśli zostaną nadane prawa wykonywania pliku dla właściciela, grupy, pozostałych użytkowników lub wszystkich naraz. Jeżeli wszyscy w tym wypadku posiadaliby prawa wykonywania pliku, wówczas wszyscy posiadaliby pełne prawa do pliku (odczyt, zapis, wykonywanie). Wtedy prawa pliku wyglądałby następująco:

-rwxrwxrwx

To są pełne prawa do pliku dla wszystkich. Jeżeli jakiegoś prawa nie ma, wtedy pojawia się zamiast litery myślnik. Stąd te myśliniki w pierwszym przykładzie. Wyżej wspomniano co oznaczają poszczególne prawa dla plików. Co oznaczają one natomiast dla katalogów ? Dla katalogu prawo odczytu - r oznacza prawo do przeszukania zawartości katalogu, prawo zapisu - w oznacza prawo do zmiany zawartości czyli prawo do tworzenia i usuwania plików w katalogu, natomiast prawo wykonywania - x dla katalogu oznacza prawo wejścia do niego.

Podsumowując:

prawo odczytu - r - dla pliku oznacza odczyt zawartości pliku, dla katalogu odczyt zawartości katalogu
prawo zapisu - w - dla pliku oznacza zamianę zawartości pliku, dla katalogu prawo do tworzenia i usuwania plików w katalogu
prawo wykonywania - x - dla pliku oznacza uruchomienie pliku jako programu, dla katalogu oznacza prawo wejścia do katalogu

Do zmiany/nadawania praw służy polecenie chmod. Można go używać w dwojaki sposób: za pomocą liter i znaków lub za pomocą liczb.
Jeżeli używamy liter i znaków składania jego polecenia jest następująca.

chmod <kogo dotyczy zmiana praw><w jaki sposób prawa będą zmieniane><jakie prawa> nazwa_pliku

kogo dotyczy zamiana praw - tu używamy następujących liter, które oznaczają:

u - (user - ang. użytkownik) - oznacza właściciela pliku
g - (group - ang. grupa) - oznacza grupę użytkowników pliku
o - (others - ang. inni) - oznacza pozostałych użytkowników pliku
a - (all - ang. wszyscy) - oznacza wszystkich użytkowników

w jaki sposób prawa będą zmieniane - tu używamy trzech znaków, które oznaczają:

+ - dodanie praw (dodanie kolejnych praw do już istniejących)
- - odebranie praw (odjęcie praw od istniejących)
= - nadanie praw (te które były wcześniej są kasowane)

jakie prawa - tu używa się liter praw omówionych wcześniej czyli:

r - prawo do odczytu
w - prawo do zapisu
x - prawo wykonywania

Dla katalogów znaczenie jest takie jak omówiono.

Weźmy na przykład plik o nazwie tomek, który posiada następujące prawa:

-rw-r--r--

Widać, że właściciel ma prawo do zapisu i odczytu a pozostali tylko do odczytu. Chcemy nadać grupie i pozostałym użytkownikom prawo do zapisu. Używamy więc polecenia:

chmod go+w tomek

(go+w jest pisane ciągiem bez spacji). Teraz prawa pliku będą wyglądały następująco:

-rw-rw-rw-

Wszyscy posiadają takie same prawa, mogą czytać i zmieniać zawartość pliku. Ten sam efekt można byłoby uzyskać wydając polecenie: chmod go=rw tomek. Wtedy prawa grupy i pozostałych użytkowników zostałyby zmienione na rw (stare są kasowane). Efekt jest ten sam. Załóżmy, że chcemy teraz wszystkim odebrać prawo do zapisu pliku. Można użyć polecenia:

chmod a-w tomek

lub

chmod ugo-w tomek

Wtedy prawa pliku wyglądałyby następująco:

-r--r--r--

Jak widać te same prawa można nadawać w różny sposób. Parametry ugoa jak i rwx można łączyć ze sobą (pisze się je łącznie bez spacji). Jeżeli chcemy teraz nadać wszystkim pełne prawa do pliku możemy użyć:

chmod a=rwx tomek

chmod ugo=rwx tomek

chmod ugo+wx tomek

Drugim sposobem nadawania praw jest użycie polecenia chmod przy pomocy liczb. Poszczególne prawa odpowiadają następującym liczbom:

r - odczyt - 4
w - zapis - 2
x - wykonanie - 1

Łączne prawa odpowiadają sumom liczb. Na przykład 6 oznacza prawo do odczytu i zapisu. Wszystkie prawa można przedstawić za pomocą następujących cyfr:

0 - brak praw (---)
1 - prawo do wykonywania (--x)
2 - prawo do zapisu (-w-)
3 - prawo do zapisu i wykonania (-wx)
4 - prawo do odczytu (r--)
5 - prawo do odczytu i wykonania (r-x)
6 - prawo do zapisu i odczytu (rw-)
7 - prawo do zapisu, odczytu i wykonania - pełne prawa (rwx)

Polecenie chmod z użyciem liczb działa jak chmod z użyciem = tzn. nadaje prawa zastępując stare nowymi. Używamy go w następujący sposób:

chmod xxx nazwa_pliku

gdzie xxx to trzycyfrowa liczba (niekoniecznie musi być trzycyfrowa) składająca się z cyfr od 0 do 7. Pierwsza cyfra opisuje prawa właściciela pliku, druga cyfra odpowiada za prawa grupy a ostatnia za prawa pozostałych użytkowników.

Na przykład polecenie:

chmod 664 bartek

nada plikowi bartek prawa do odczytu i zapisu dla właściciela pliku, prawa do odczytu i zapisu dla grupy pliku i prawa do odczytu dla pozostałych użytkowników (-rw-rw-r--), przy czym nie ma znaczenia jakie prawa plik miał wcześniej. Z kolei polecenie:

chmod 777 bartek

nada temu samemu plikowi pełne prawa dla wszystkich użytkowników (-rwxrwxrwx). Polecenie:

chmod 700 aneta

nadaje pełne prawa dla właściciela pliku aneta i żadnych praw pozostałym użytkownikom (-rwx------). Polecenie:

chmod 666 tomek

nadaje wszystkim prawa do zapisu i odczytu pliku tomek (-rw-rw-rw-).

Liczba użyta w poleceniu chmod może być także czterocyfrowa. Wtedy pierwsza cyfra odpowiada za prawa specjalne pliku, a trzy następne nadają prawa tak jak liczba trzycyfrowa. Na przykład w poleceniu chmod 1770 tomek jedynka ustawia tzw. lepki bit a 770 nadaje pełne prawa dla właściciela i grupy i żadnych praw dla pozostałych użytkowników. Tzw. lepki bit na przykład dla katalogów oznacza, że pliki w takim katalogu może usunąć tylko właściciel katalogu lub właściciel danego pliku.

Więcej na temat praw plików i praw specjalnych w man chmod i info chmod.

środa, 11 czerwca 2008

Pliki na pulpicie

Na początku po zainstalowaniu Debiana miałem problem ze świeżymi plikami na pulpicie. Były w katalogu ~/Desktop, ale nie było ich widać na pulpicie. To znaczy były widoczne, ale dopiero po ponownym uruchomieniu systemu. Analogicznie było gdy kasowałem jakiś plik. Usuwałem go z katalogu ~/Desktop a z puliptu znikał dopiero po restarcie komputera. Rozwiązaniem okazało się zainstalowanie gamina, monitora plików i folderów, który wykrywa jeśli jakiś plik lub folder jest zmieniany. Pakiet nazywa się gamin.

Instalacja:

W konsoli logujemy się na konto roota:

$ su i hasło administratora

Instalujemy pakiet gamin:

# aptitude install gamin

piątek, 30 maja 2008

Wyłączanie systemu w XFCE

Wyłączanie systemu przez zwykłego użtykownika w XFCE jest domyślnie nieaktywne. Może on tylko się wylogować i dopiero w oknie logowania może wyłączyć system. Aby zwykły użytkownik mógł wyłączać i restartować system z XFCE:

Otwieramy konsolę i logujemy się na konto roota:

$ su i hasło administratora

Tworzymy grupę shutdown, która będzię mogła wyłączać i restartować system:

# groupadd shutdown

Poleceniem # visudo edytujemy plik /etc/sudoers. Jest to plik konfiguracyjny programu Sudo. Sudo jest programem, który pozwala nadać w określonych sytuacjach zwykłemu użytkownikowi prawa zastrzeżone tylko dla roota. Wpisujemy:

# visudo

W pliku /etc/sudoers dopisujemy linijkę:

%shutdown ALL=(root) NOPASSWD: /usr/sbin/xfsm-shutdown-helper

To polecenie pozwala członkom grupy shutdown wyłączać i restartować system z XFCE. Zapisujemy plik i wychodzimy z niego. Teraz dodajemy zwykłego użytkownika do stworzonej grupy shutdown poleceniem:

# gpasswd -a user shutdown

gdzie słowo user zastępujemy swoją nazwą użytkownika np.:

# gpasswd -a tomek shutdown

środa, 28 maja 2008

Automatyczne logowanie

Jeżeli jesteś jedynym użytkownikiem komputera i nie chcesz za każdym razem wpisywać nazwy i hasła użytkownika, możesz ustawić opcję automatycznego logowania w menedżerze logowania. Wtedy system loguje automatycznie wybranego użytkownika.

Włączenie opcji automatycznego logowania

W oknie logowania wybieramy Operacje > Konfiguracja menedżera logowania

wpisujemy hasło roota

W nowym oknie przechodzimy do zakładki Bezpieczeństwo

Zaznaczamy opcję "Włączenie automatycznego logowania" i wybieramy swoją nazwę użytkownika.

Klikamy "Zamknij".

Opis dotyczy menedżera logowania GDM.