Przepraszam, że tak późno ale znowu nie miałem czasu na testowanie.
Jednak te prawa dostępu nie działają, -R służy do kaskadowego zmieniania uprawnień w podkatalogach o wszystkich nazwach, a nie do wyszukiwania katalogów.
Linux i samba, redukcja uprawnie
Ja dostaje komunikat, że nie ma takiego katalogu. Może odrobinę uściślę.
Tak w uproszczeniu wygląda struktura katalogów:
Projekty:[INDENT] Warszawa
[/INDENT][INDENT][INDENT] Mapy
Gis
Raport
[/INDENT][/INDENT][INDENT] Kraków
[/INDENT][INDENT][INDENT] Mapy
Gis
Raport
[/INDENT][/INDENT][INDENT] Wrocław
[/INDENT][INDENT][INDENT] Mapy
Gis
Raport
[/INDENT][/INDENT]Itd.
Oczywiście to jest w dużym uproszczeniu bo tu można by zrobić to ręcznie. W każdym razie za uzupełnianie każdego katalogu jest odpowiedzialna inna osoba. Dlatego po utworzeniu struktury katalogu nowego projektu trzeba by wykonać skrypt, który ustawi uprawnienia i właścicieli. To jest do napisania i nie będzie z tym problemu, niestety trzeba zrobić to jeszcze dla istniejących już projektów, których jest dużo.
No i teraz to nasze polecenie. W katalogu /home wykonuję:
następnie w katalogu projekty:
chown robert *Gis*
i raczej nic to nie daje. Komunikat jak wyżej.
Edycja:
Już wiem
Tak dopiero działa dla wszystkich odpowiednich katalogów.
Teraz mam jeszcze pytanie, ponieważ chcę napisać skrypt do tworzenia odpowiedniej struktury katalogów podczas dodawania nowego projektu.
Problem w tym, że nazwa projektu czasem zawiera spację, i wtedy tworzy się katalog z tylko pierwszym członem. Da się jakoś rozwiązać ten problem? Czy może lepiej żeby skrypt odpytywał o takie rzeczy?
Tak w uproszczeniu wygląda struktura katalogów:
Projekty:[INDENT] Warszawa
[/INDENT][INDENT][INDENT] Mapy
Gis
Raport
[/INDENT][/INDENT][INDENT] Kraków
[/INDENT][INDENT][INDENT] Mapy
Gis
Raport
[/INDENT][/INDENT][INDENT] Wrocław
[/INDENT][INDENT][INDENT] Mapy
Gis
Raport
[/INDENT][/INDENT]Itd.
Oczywiście to jest w dużym uproszczeniu bo tu można by zrobić to ręcznie. W każdym razie za uzupełnianie każdego katalogu jest odpowiedzialna inna osoba. Dlatego po utworzeniu struktury katalogu nowego projektu trzeba by wykonać skrypt, który ustawi uprawnienia i właścicieli. To jest do napisania i nie będzie z tym problemu, niestety trzeba zrobić to jeszcze dla istniejących już projektów, których jest dużo.
No i teraz to nasze polecenie. W katalogu /home wykonuję:
Kod: Zaznacz cały
chmod -R 0440 Projekty
Kod: Zaznacz cały
chmod -R 0750 Gis*
i raczej nic to nie daje. Komunikat jak wyżej.
Edycja:
Już wiem
Kod: Zaznacz cały
chmod/own [parametry] /home/Projekty/*/*Gis*
chmod/own [parametry] /home/Projekty/*/*/*Gis*
Teraz mam jeszcze pytanie, ponieważ chcę napisać skrypt do tworzenia odpowiedniej struktury katalogów podczas dodawania nowego projektu.
Kod: Zaznacz cały
#! /bin/bash
#pierwszy parametr = nazwa projektu
mkdir /home/Projekty/$1
chmod 0744/home/Projekty/$1
mkdir /home/Projekty/$1/Mapy
mkdir /home/Projekty/$1/Gis
mkdir /home/Projekty/$1/Raport
W bashu znak spacji markowany jest przez \
Jednak polecalbym wprowadzic dobry nawyk zastepowania w nazwach spacje podkresleniem
Co do zmiany właściciela. Tak myślałem, że ze złego miejsca wykonujesz:-)
Kod: Zaznacz cały
nazwa\ projektu
Kod: Zaznacz cały
nazwa_prjektu
No właśnie, wiem jak jest ze spacją, dlatego próbowałem ujmować parametr w cudzysłów ale wtedy to już bardzo dziwne rzeczy się działy. Nazwy katalogów są używane głównie w Windowsie dlatego postanowiłem używać normalnych spacji w celu większej czytelności dla innych użytkowników i zachowania oryginalnych nazw z umów. Jednak skoro się nie da to chyba pozmieniam nazwy bo bez skryptów w przyszłości będzie ciężko.
Co do praw dostępu i zmiany właściciela, miałem nadzieję na zbudowanie funkcji, która przeszuka mi wszystkie katalogi i zmieni właściwości niezależnie od lokalizacji (głębokości) bo w tym przypadku sprawdza się to tylko, jeśli struktura jest bardzo schematyczna ale na moje potrzeby na razie wystarczy.
Co do praw dostępu i zmiany właściciela, miałem nadzieję na zbudowanie funkcji, która przeszuka mi wszystkie katalogi i zmieni właściwości niezależnie od lokalizacji (głębokości) bo w tym przypadku sprawdza się to tylko, jeśli struktura jest bardzo schematyczna ale na moje potrzeby na razie wystarczy.
Jeśli chcesz mieć spacje w nazwach katalogów to skrypt wywołuj następująco:
Zawartosc "nazwa_skryptu":
Kod: Zaznacz cały
nazwa_skryptu "nazwa katalogu projektu"
Kod: Zaznacz cały
#! /bin/bash
#pierwszy parametr = nazwa projektu
mkdir "$1"
chmod 0744 "$1"
mkdir "$1"/Mapy
mkdir "$1"/Gis
mkdir "$1"/Raport