Як я можу змінити всі файли на 644 і всі папки на 755 за chmodдопомогою linuxкомандного рядка? (Термінал)
http://superuser.com:: P, але це питання мені тут допомогло, дякую.
chmod -R u+rwX,go+rX,go-w /foo
Як я можу змінити всі файли на 644 і всі папки на 755 за chmodдопомогою linuxкомандного рядка? (Термінал)
http://superuser.com:: P, але це питання мені тут допомогло, дякую.
chmod -R u+rwX,go+rX,go-w /foo
Відповіді:
Одним із підходів може бути використання find:
find /desired_location -type d -print0 | xargs -0 chmod 0755
find /desired_location -type f -print0 | xargs -0 chmod 0644
sudo find /your/location -type f -exec chmod 644 {} \;файли та sudo find /your/location -type d -exec chmod 755 {} \;каталоги
chmod -R a=r,u+w,a+X /foo?
unable to execute /bin/chmod: Argument list too long
Найпростіший спосіб - це зробити:
chmod -R u+rwX,go+rX,go-w /path/to/dir
що в основному означає:
в chAnge файл modес -Recursively даючи:
user: дозволи на read, wобряд та e Xecute,gкористувачі маршрутизації та oтерміналів: read та e Xecute дозволи, але не -wдозвіл на обряд.Зверніть увагу, що Xкаталог зробить виконуваний файл, але не файл, якщо його вже не можна шукати / виконувати.
+X- зробити каталог або файл для пошуку / виконання всіма, якщо його вже хтось може шукати / виконувати.
Будь ласка, перевірте man chmodбільш детальну інформацію.
Дивіться також: Як chmod всі каталоги, крім файлів (рекурсивно)? при СУ
Найкоротший з них я міг придумати:
chmod -R a=r,u+w,a+X /foo
яка працює в GNU / Linux, і я взагалі вірю в Posix (з мого читання: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html ).
Це робить:
Важливо, що дозвіл кроку 1 очищує всі біти виконання, тому крок 3 лише додає біти виконання файлів для каталогів (ніколи файлів). Крім того, всі три кроки відбуваються до рекурсування каталогу (тому це не еквівалентно, наприклад,
chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo
оскільки a = r видаляє x з каталогів, то chmod не може повторити їх.)
Найлегше мені запам'ятати дві операції:
chmod -R 644 dirName
chmod -R +X dirName
+ X впливає лише на каталоги.
На https://help.directadmin.com/item.php?id=589 вони пишуть:
Якщо вам потрібен швидкий спосіб скинути дані public_html до 755 для каталогів та 644 для файлів, ви можете використовувати щось подібне:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
Я тестував і ... це працює!
Це працювало для мене:
find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;
find /A -type X -exec chmod Y '{}' \;
Виконайте обидва за один прохід із:
find -type f ... -o -type d ...
Як і в, знайдіть тип f АБО тип d і виконайте перше ... для файлів, а друге ... для dirs. Конкретно:
find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +
Залиште, --changesякщо ви хочете, щоб він працював мовчки.
Якщо вам потрібен швидкий спосіб скинути дані public_html до 755 для каталогів та 644 для файлів, ви можете використовувати щось подібне:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
крім того, якщо ви знаєте, що PHP працює як користувач, а не як "apache", ви можете встановити файли PHP на 600, для додаткового рівня безпеки, наприклад:
find . -type f -name '*.php' -exec chmod 600 {} \;
Ви можете знайти цей ресурс тут: https://help.directadmin.com/item.php?id=589
Це також може працювати:
chmod -R 755 * // All files and folders to 755.
chmod -R 644 *.* // All files will be 644.