Istnieją 3 specjalne uprawnienia, które są dostępne dla plików wykonywalnych i katalogów. Są to :
1. Uprawnienie SUID
2. Uprawnienie SGID
3. Lepki bit
Set-user Identification (SUID)
Czy kiedykolwiek zastanawiałeś się, jak użytkownik nie-root może zmienić swoje własne hasło, gdy nie ma prawa zapisu do pliku /etc/shadow. hmmm… ciekawe czyż nie? Cóż, aby zrozumieć ten trik sprawdź uprawnienia polecenia /usr/bin/passwd :
# ls -lrt /usr/bin/passwd-r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Jeśli sprawdzisz dokładnie, znajdziesz 2 S w polu uprawnień. Pierwsze s oznacza SUID, a drugie SGID.
– Kiedy polecenie lub skrypt z ustawionym bitem SUID jest uruchamiany, jego efektywny UID staje się tym właściciela pliku, a nie użytkownika, który go uruchamia.
– Innym dobrym przykładem SUID jest polecenie su :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– Uprawnienie setuid wyświetlane jako „s” w polu execute właściciela.
Jak ustawić SUID na pliku?
# chmod 4555
Jeśli duża litera „S” pojawia się w polu execute właściciela, oznacza to, że bit setuid jest włączony, a bit execute „x” dla właściciela pliku jest wyłączony lub odmówiony.
Set-group identification (SGID)
SGID permission on executable file
– SGID permission jest podobne do SUID permission, jedyną różnicą jest – kiedy skrypt lub polecenie z włączonym SGID jest uruchamiane, działa tak, jakby było członkiem tej samej grupy, w której plik jest członkiem.
# ls -l /usr/bin/write-r-xr-sr-x 1 root tty 11484 Jan 15 17:55 /usr/bin/write
– The setgid permission displays as an „s” in the group’s execute field.
– Jeśli mała litera „l” pojawia się w polu execute grupy, oznacza to, że bit setgid jest włączony, a bit execute dla grupy jest wyłączony lub odmówiony.
Jak ustawić GUID na pliku?
# chmod 2555
SGID na katalogu
– Gdy uprawnienie SGID jest ustawione na katalogu, pliki utworzone w katalogu należą do grupy, której katalog jest członkiem.
– Na przykład, jeśli użytkownik mający uprawnienia do zapisu w katalogu tworzy tam plik, ten plik jest członkiem tej samej grupy co katalog, a nie grupy użytkownika.
– Jest to bardzo przydatne przy tworzeniu współdzielonych katalogów.
Jak ustawić SGID na katalogu
# chmod g+s
Sticky Bit
– Lepki bit jest używany głównie na współdzielonych katalogach.
– Jest on użyteczny dla współdzielonych katalogów takich jak /var/tmp i /tmp, ponieważ użytkownicy mogą tworzyć pliki, czytać i wykonywać pliki należące do innych użytkowników, ale nie mogą usuwać plików należących do innych użytkowników.
– Na przykład, jeśli użytkownik bob tworzy plik o nazwie /tmp/bob, inny użytkownik tom nie może usunąć tego pliku, nawet jeśli katalog /tmp ma uprawnienia 777. Jeśli sticky bit nie jest ustawiony, to tom może usunąć /tmp/bob, ponieważ plik /tmp/bob dziedziczy uprawnienia katalogu nadrzędnego.
– użytkownik root (oczywiście!) i właściciel plików może usuwać własne pliki.
Przykład sticky bit :
# ls -ld /var/tmpdrwxrwxrwt 2 sys sys 512 Jan 26 11:02 /var/tmp
- T refers to when the execute permissions are off.- t refers to when the execute permissions are on.
Jak ustawić uprawnienia sticky bit?
# chmod +t or # chmod 1777
.