Strona 1 z 1

chmod - elementarny poziom - gdzie robię błąd?

: 27 grudnia 2010, 11:00
autor: goska_23
Polecenia chmod używałam ostatnio dosyć często. Teraz nie wiem gdzie popełniam błąd, bo wydaje mi się, że wpisuję polecenie tak samo jak dotąd, a skutek jest nieprawidłowy.
Chciałam w katalogu /var/www/joomla1 ustawić 744 dla wszystkich plików i 755 dla wszystkich podkatalogów.

Wykonałam więc:

Kod: Zaznacz cały

 chmod -R 744 /var/www/joomla1
i tu jest dobrze - ustawił we wszystkich podkatalogach na 744.
Ale teraz chciałam dać na podkatalogi (czyli jak to czytałam w poradniku "only if the file is a directory") żeby było 755 tylko dla podkatalogów, a dla plików miałoby zostać 744.
Wpisuję więc:

Kod: Zaznacz cały

chmod -R go+xX /var/www/joomla1
i tu jest problem - na 755 ustawia się wszystko, także pliki nie tylko podkatalogi.
Przecież to "X" przy xX jest po to żeby dodać uprawnienia "x" tylko w przypadku podkatalogów.
Cały czas ćwiczę ten problem na Debianie Lenny.
Czy mi się coś pomyliło?

: 27 grudnia 2010, 21:12
autor: Pacek
Tak jak podałaś raczej się nie da. Przetestowałem to Twoje polecenie i ono nie zmienia uprawnień na wyłącznie na folderach, ale robi to również na plikach. W związku z tym, że mi się to też kiedyś przyda wygooglałem inny sposób:

Kod: Zaznacz cały

find /var/www/joomla1 -type f -exec chmod 755 {} \;
lub:

Kod: Zaznacz cały

find /var/www/joomla1 -type f -exec chmod go+X {} \;
Nie zapomnij o slashu i średniku.

: 28 grudnia 2010, 11:40
autor: goska_23
Pacek pisze:Tak jak podałaś raczej się nie da. Przetestowałem to Twoje polecenie i ono nie zmienia uprawnień na wyłącznie na folderach, ale robi to również na plikach. W związku z tym, że mi się to też kiedyś przyda wygooglałem inny sposób:

Kod: Zaznacz cały

find /var/www/joomla1 -type f -exec chmod 755 {} \;
lub:

Kod: Zaznacz cały

find /var/www/joomla1 -type f -exec chmod go+X {} \;
Nie zapomnij o slashu i średniku.
Dzięki za podrzucenie rozwiązania.
Kierując się jednak emocjami, wkurzeniem i zapotrzebowaniem na wyniki śledztwa co się dzieje że polecenie nie działa a nie zapotrzebowaniem na działające narzędzie to dzięki za wsparcie i dodanie entuzjazmu do dalszego przeprowadzenia "śledztwa".

Otóż kolekcjonuję notatki z różnych poleceń i ustawień które kiedyś musiałam wyszukać jak to zrobić i potem kolejnym razem mogę znowu nie pamiętać w segregatorze podręcznym A4 grubość 4cm.
To co wpisałam w 1 poście miałam właśnie na kartce w segregatorze.

Teraz wychodzi na to, że polecenie to działa jak np wcześniej mam katalog z prawami 644 (a nie 744) chodzi o to, żeby pliki nie miały nigdzie bitu +1 (x) bo wtedy to "X" odnosi się nie tylko do podkatalogów ale także do tych plików które dla kogoś (u g o) mają już ten bit +1 (x). I dodatkowo trzeba dać samo "X" a nie "xX".
Czyli jak mam katalog z uprawnieniami 644 to daję:

Kod: Zaznacz cały

chmod -R go+X /var/www/joomla1
i dostaję 655 dla podkatalogów
lub:

Kod: Zaznacz cały

chmod -R a+X /var/www/joomla1
i dostaję 755 dla podkatalogów

Ja używałam tej kombinacji dającej 655 i potem dawałam dodatkowo, żeby wszystkie pliki (i tym samym katalogi) miały 755.
Robiłam taką kombinację przy katalogach stron www bo nie byłam pewna który plik ma mieć +1 (x) a który nie i a doświadczalnie mi do tej pory działało na ustawieniach, że dawałam to +1 (x) tylko pod rootem:
czyli 744 na pliki
i 755 na podkatalogi.
Wgryzłam w chmod!