Linux jest środowiskiem wieloużytkowym, co widać także w filozofii dostępu do plików i katalogów.
Podstawowe atrybuty plików
Dostęp do plików można modyfikować również za pomocą okna właściwości pliku lub katalogu w KDE. |
Linux jest środowiskiem wieloużytkowym, co widać także w filozofii dostępu do plików i katalogów. Podstawowy model dostępu do plików określa odpowiednio prawa dostępu dla właściciela pliku, grupy oraz wszystkich innych. Każda z tych grup może mieć prawo do zapisu (w) wykonywania (x) oraz czytania (r). Dodatkowo często przy wyświetlaniu informacji o prawach dostępu dodawana jest informacja o rodzaju pliku. Może on być zwykłym plikiem (-), katalogiem (d), linkiem symbolicznym (l),urządzeniem blokowym (b) lub znakowym (c). Czasem zamiast typowego x w pracach oznaczających możliwość wykonania przez użytkownika czy grupę możemy zobaczyć s. Oznacza to iż plik jest wykonywany nie z prawami użytkownika ale właściciela lub odpowiednio grupy np.: uruchamiamy jako użytkownik program do partycjonowania dysku z uprawnieniami administratora systemu. |
Przykładowy zapis tych uprawnień to:
-rw-rw-r-- 1 ziutus ziutus 164 lut 18 10:15 flash.html
Co oznacza iż jest to zwykły plik (-) użytkownik ma prawo do odczytu i zapisu (rw-), grupa ma prawo do odczytu i zapisu (rw-) a wszyscy inni jedynie do odczytu (r–).
W przypadku pracy w środowisku konsoli prawa dostępu możemy zobaczyć po wydaniu polecenia ls -l
ziutus@ziutus:~/public_html$ ls -l razem 372 drwxrwxr-x 8 ziutus ziutus 4096 paź 24 2001 abrax -rw-rw-r-- 1 ziutus ziutus 164 lut 18 10:15 flash.html drwxrwxr-x 2 ziutus ziutus 4096 lut 18 10:14 fun ziutus@ziutus:~/public_html$
Sticky bit
Po co to jest?
Sticky bit jest używany, gdy zachodzi potrzeba aby w danym współdzielonym katalogu wszyscy użytkownicy mogli tworzyć katalogi i pliki ale aby nie mogli sobie wzajemnie usuwać ich. Przykładem jest tutaj katalog /tmp.
Jak sprawdzić czy jest ustawiony?
Przy listowaniu prawd dostępu do katalogu, na końcu pojawi się charakterystyczne t (zamiast x):
[root@ziutusLinux1 ~]# ls -ld /tmp drwxrwxrwt. 5 root root 4096 Jun 29 09:16 /tmp
Jak go ustawić?
Ustawienie sticky bit jest proste, jeżeli używamy oznaczeń symbolicznych, używamy „t”:
chmod +t /tmp2
Lub:
chmod o+t /tmp2
Natomiast w przypadku używania kodów numerycznych, korzystamy z wiodącej jedynki:
chmod 1777 /tmp2
Standardowe katalogi i pliki z sticky bit
/var/tmp /tmp /dev/shm
Bity SUID i GUID
Po co to?
W niektórych przypadkach, chcemy aby użytkownik mógł wykonywać dane polecenie jako inny użytkownik, szczególnie jak należy mu przekazać cześć uprawnień, do których normalnie nie powinien mieć praw. Przykładem jest tutaj zmiana swojego hasła w systemie. Program passwd korzystając z uprawnień root-a pozwala edytować w ściśle określony sposób plik /etc/shadow, czyli zmienić wpis o swoim haśle ale nic ponadto.
Jak sprawdzić czy jest ustawiony?
[root@ziutusLinux1 ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd
Jak ustawić?
W wprzypadku bitu SUID:
chmod u+s moj_plik
Albo numerycznie (4 na początku):
chmod +4750 moj_plik
W przypatku SGID:
chmod g+s moj_plik
Albo numerycznie (4 na początku):
chmod +2750 moj_plik
Jak znaleźć pliki z ustawionymi bitami SUID i GUID
W przypadku plików z SUID należy wykonać polecenie
#find / -perm -4000
Natomiast w przypadku plików z GUID:
#find / -perm -2000
Przykłady standardowych plików z SUID i SGID
Standardowe programy używające SUID:
/bin/mount /bin/su /bin/ping6 /bin/umount /bin/ping /usr/bin/newgrp /usr/bin/chsh /usr/bin/chage /usr/bin/passwd /usr/bin/chfn /usr/bin/gpasswd /usr/bin/sudo /usr/bin/crontab /usr/sbin/suexec /usr/sbin/usernetctl /usr/sbin/userhelper
Standardowe programy używające GUID:
/sbin/netreport /usr/libexec/utempter/utempter /usr/bin/screen /usr/bin/write /usr/bin/locate /usr/bin/wall /usr/bin/lockfile /usr/bin/ssh-agent /usr/sbin/postdrop /usr/sbin/postqueue
Kiedy ustawiać?
Istnieją 3 główne powody ustawiania bitów SUID i GUID:
- Kiedy uprawnienia root-a są potrzebne do wykonania niektórych czynności (edycja systemowych plików albo dostęp do portów z numerem poniżej 1024),
- Kiedy nie chcemy podawać hasła pewnego użytkownika ale chcemy móc wykonać polecenia z jego uprawnieniami,
- Niechęć do krzystania z SUDO,
Atrybuty rozszerzone ext2 ,ext3 i ext4
W przypadku systemu plików ext2, ext3, ext4 (podstawowego dla Linuksa) istnieje możliwość zastosowania rozszerzonych atrybutów. Pozwalają one na ustalić takie reguły jak: niezmodyfikowanie czasu dostępu do pliku (oszczędność dla laptopów), tylko dopisywanie do pliku (przydatne np.: przy dziennikach systemowych), automatyczną kompresję pliku przez jądro (oszczędność miejsca kosztem czasu dostępu), wykluczenie z kopii sporządzanych programem dump, zakaz modyfikacji pliku (praktycznie obowiązkowe dla plików konfiguracyjnych), sterowanie procesem księgowania pliku, bezpieczne usuwanie pliku (blok po skasowanym pliku jest zerowany i ponownie nadpisywany), czy zabezpieczenie przed przypadkowym usunięciem.
Inne modele dostępu do plików i katalogów: ACLe
Modele te nie zawsze spełniają swoje zadania. Można wtedy zastosować ACLe czyli listy dostępu do plików. Ze względu na fakt iż Linux pracuje z wieloma systemami plików, a nie każdy z nich obsługuje ACLe, nie zostały one włączone do jądra systemu. W przypadku ext2 i ext3 można go zainstalować jako łata na jądro w przypadku innych systemów bywa różnie. Więcej o tym w dziale poświęconym linuksowym systemom plików.