Linux i samba, redukcja uprawnie

Konfiguracja serwerów, usług, itp.
cooleq
Beginner
Posty: 172
Rejestracja: 18 czerwca 2010, 13:47
Lokalizacja: Wrocław

Post autor: cooleq »

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.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Nie wiem co ci nie działa. U mnie działa.
cooleq
Beginner
Posty: 172
Rejestracja: 18 czerwca 2010, 13:47
Lokalizacja: Wrocław

Post autor: cooleq »

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ę:

Kod: Zaznacz cały

chmod -R 0440 Projekty
następnie w katalogu projekty:

Kod: Zaznacz cały

chmod -R 0750 Gis*
chown robert *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*
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.

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
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?
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

W bashu znak spacji markowany jest przez \

Kod: Zaznacz cały

nazwa\ projektu
Jednak polecalbym wprowadzic dobry nawyk zastepowania w nazwach spacje podkresleniem

Kod: Zaznacz cały

nazwa_prjektu
Co do zmiany właściciela. Tak myślałem, że ze złego miejsca wykonujesz:-)
cooleq
Beginner
Posty: 172
Rejestracja: 18 czerwca 2010, 13:47
Lokalizacja: Wrocław

Post autor: cooleq »

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.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Jeśli chcesz mieć spacje w nazwach katalogów to skrypt wywołuj następująco:

Kod: Zaznacz cały

nazwa_skryptu "nazwa katalogu projektu"
Zawartosc "nazwa_skryptu":

Kod: Zaznacz cały

#! /bin/bash
#pierwszy parametr = nazwa projektu

mkdir "$1"
chmod 0744 "$1"
mkdir "$1"/Mapy
mkdir "$1"/Gis
mkdir "$1"/Raport
ODPOWIEDZ