Nowe posty

Autor Wątek: Przypisanie grupy do nowo tworzonych plików w katalogu  (Przeczytany 2877 razy)

marcinmkk

  • Gość
Witam mam taki problem:

Mam parę katalogów a każdy katalog posiada przypisana swoja własna grupę.
Posiadam również kilku użytkowników. Użytkownik który powinien mieć dostęp do plików z danego katalogu powinien byc przypisany do grupy należącej do tego katalogu.
Oczywiście pliki z katalogu tez powinny należeć do tej grupy.

Czyli przykladowo mamy:


Katalog1 (grupa1) uprawnienia 770
Katalog2 (grupa2) uprawnienia 770
katalog3 (grupa3) uprawnienia 770

Mamy użytkowników:
użytkownik1
użytkownik2

I tak np użytkownik1 i użytkownik2 powinien mieć dostęp do katalogu1. Czyli oboje użytkowników muszą należeć do grupy1.

Dalej uzytownik1 dostęp do katalogu2 (czyli musi należeć do grupy2),
uzytkownik2 dostęp do katalogu3 (grupa3).

Problem pojawia sie gdy np uzytkownik2 utworzy plik w katalogu1 standardowo plik ten będzie należeć do użytkownika2 i do grupy użytkownik2.

W tej tej sytuacji uzytkownik1 nie będzie mieć dostępu do tego pliku mimo iz z założenie powinien mieć dostęp do wszystkich plików z katalogu 1.

Oczywiście użytkownik2 powinien użyć chown .grupa1 nazwa pliku
jednak załóżmy ze nie jest on aż tak zaawansowanym użytkownikiem potrafi jedynie kopiować pliki, ewentualnie zapomina to zrobić.
Ten sam problem pojawia się gdy uzytkownik2 próbuje skopiować plik przez ftp. Wtedy nie ma możliwości użycia komendy chown.

Teraz pytanie czy istnieje jakaś komenda, program, konfiguracja lub jakieś inne rozwiązanie by plik stworzony w katalogu1 należał od razu domyślnie do grupy1, niezależnie od użytkownika jaki stworzy ten plik. tak samo analogicznie dla katalogów2 i 3.

Jest to mój pierwszy post ale mam nadzieje ze opisałem problem zrozumiale. Pozdrawiam i liczę na pomoc

  • Gość
Przypisanie grupy do nowo tworzonych plików w katalogu
« Odpowiedź #1 dnia: 2010-05-05, 14:58:47 »
Man umask powinno wystarczyć

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3059
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Przypisanie grupy do nowo tworzonych plików w katalogu
« Odpowiedź #2 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.

#
# 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
Mam nadzieję, ze rozjaśniłem.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy