2821
Konfiguracja / Przypisanie grupy do nowo tworzonych plików w katalogu
« dnia: 2010-05-05, 16:57:04 »
Jak nadasz katalogowi X atrybut SGID, to przy tworzeniu plików (i podkatalogów) w tym katalogu automatycznie będą one grupowo należały do tej samej grupy co grupa katalogu X.
Mam nadzieję, ze rozjaśniłem.
Kod: [Zaznacz]
#
# Zakładasz katalog i zmieniasz jego właściciela indywidualnego i grupowego na
# www-data
#
root@AMD64:/tmp# mkdir test
root@AMD64:/tmp# chown www-data:www-data test
#
# Test, że poprawnie utworzone
#
root@AMD64:/tmp# ls -ld test
drwxr-xr-x 2 www-data www-data 4096 2010-05-05 16:44 test
#
# Teraz jako root zakładasz plik. W domyśle plik ma automatycznie nabite
# uid i gid twórcy pliku, czyli root:root, ignorując właściciela katalogu
#
root@AMD64:/tmp# touch test/zwykły
root@AMD64:/tmp# ls -l test
razem 4
-rw-r--r-- 1 root root 0 2010-05-05 16:51 zwykły
#
# Teraz dodajesz do katalogu atrybut SGID
#
root@AMD64:/tmp# chmod g+s test
#
# I ponownie zakładasz plik
#
root@AMD64:/tmp# touch test/z_sgid
#
# Założony plik, mimo że twórcą jest root ma gid taki sam, jak katalogu
# macierzystego, czyli właściciel ostatecznie to root:www-data
#
root@AMD64:/tmp# ls -l test
razem 4
-rw-r--r-- 1 root www-data 0 2010-05-05 16:47 z_sgid
-rw-r--r-- 1 root root 0 2010-05-05 16:51 zwykły
#
# Niestety ten trick z SUID nie działa
#
root@AMD64:/tmp# chmod u+s test
root@AMD64:/tmp# ls -ld test
drwsr-sr-x 3 www-data www-data 4096 2010-05-05 16:49 test
root@AMD64:/tmp# touch test/z_suid_i_sgid
root@AMD64:/tmp# ls -l test
razem 4
-rw-r--r-- 1 root www-data 0 2010-05-05 16:47 z_sgid
-rw-r--r-- 1 root www-data 0 2010-05-05 16:49 z_suid_i_sgid
-rw-r--r-- 1 root root 0 2010-05-05 16:51 zwykły
#
# Atrybut SGID dla katalogu jest automatycznie zakładany
# w nowo tworzonych podkatalogach
#
root@AMD64:/tmp# mkdir test/podkatalog
root@AMD64:/tmp# ls -l test
razem 4
drwxr-sr-x 2 root www-data 4096 2010-05-05 17:01 podkatalog
-rw-r--r-- 1 root www-data 0 2010-05-05 16:47 z_sgid
-rw-r--r-- 1 root www-data 0 2010-05-05 16:49 z_suid_i_sgid
-rw-r--r-- 1 root root 0 2010-05-05 16:51 zwykły