Jak ustawić chmod dla folderu i wszystkich jego podfolderów i plików? [zamknięte]
Czy istnieje sposób na ustawienie chmod 755
dla /opt/lampp/htdocs
i całej jego Zawartości, w tym podfolderów i plików?
Również, w przyszłości, jeśli utworzę nowy folder lub plik w htdocs
, w jaki sposób uprawnienia do tego mogą być automatycznie ustawione na 755
?
To działa, ale tylko dla tego folderu:
chmod 775 /opt/lampp/htdocs
16 answers
Pozostałe odpowiedzi są poprawne, ponieważ chmod -R 755
ustawia te uprawnienia dla wszystkich plików i podfolderów w drzewie. ale dlaczego, u licha, miałbyś tego chcieć ? Może to mieć sens dla katalogów, ale po co ustawiać bit execute na wszystkich plikach?
Podejrzewam, że naprawdę chcesz ustawić katalogi na 755 i albo zostawić pliki w spokoju, albo ustawić je na 644. W tym celu możesz użyć polecenia find
. Na przykład:
Aby zmienić wszystkie katalogi na 755 (drwxr-xr-x
):
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
Aby zmienić wszystkie pliki na 644 (-rw-r--r--
):
find /opt/lampp/htdocs -type f -exec chmod 644 {} \;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-26 10:48:25
Zaznacz opcję-R
chmod -R <permissionsettings> <dirname>
W przyszłości możesz zaoszczędzić dużo czasu, sprawdzając najpierw stronę podręcznika:
man <command name>
Więc w tym przypadku:
man chmod
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 02:47:26
Jeśli chcesz ustawić uprawnienia dla wszystkich plików na a+r
, A dla wszystkich katalogów na a+x
i zrobić to rekurencyjnie przez pełne drzewo podkatalogów, użyj:
chmod -R a+rX *
X
(to jest Duże X
, a nie Małe x
!) jest ignorowany dla plików (chyba że są już wykonywalne dla kogoś), ale jest używany dla katalogów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-11 20:57:02
Możesz użyć -R
z chmod
do rekurencyjnego przechodzenia wszystkich plików i podfolderów.
Możesz potrzebować sudo, ponieważ zależy to od tego, czy lampa jest zainstalowana przez bieżącego użytkownika lub innego użytkownika:
sudo chmod 755 -R /opt/lampp/htdocs
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-05 13:24:06
Aby ustawić wszystkie podfoldery (rekurencyjnie) użyj -R
chmod 755 /folder -R
i użyj opcji umask, aby ustawić domyślne nowe foldery/pliki
CD / folder
umask 755
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-18 02:43:19
chmod 755 -R /opt/lampp/htdocs
ustawia rekurencyjnie uprawnienia. Nie ma możliwości automatycznego ustawiania uprawnień do plików tylko w tym katalogu, który został utworzony Po ustawieniu uprawnień, ale możesz zmienić domyślne uprawnienia do plików w całym systemie, ustawiając umask 022
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-18 02:38:42
Poprawne polecenie rekurencyjne to:
sudo chmod 755 -R /opt/lampp/htdocs
-R
: Zmień każdy podfolder, w tym bieżący folder
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-11 09:34:03
Możesz rozważyć tę odpowiedź udzieloną przez nik na superuserze i użyć "one chmod" dla wszystkich plików/folderów takich jak:
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:18:14
Użycie:
sudo chmod 755 -R /whatever/your/directory/is
Jednak uważaj z tym. Może to naprawdę zaszkodzić, jeśli zmienisz uprawnienia niewłaściwych plików / folderów.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 02:49:26
Oto inny sposób na ustawienie katalogów na 775, A plików na 664.
find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)
Może i wygląda na długi, ale jest całkiem fajny z trzech powodów:
- skanuje system plików tylko raz, a nie dwa razy.
- zapewnia lepszą kontrolę nad tym, jak obsługiwane są pliki , a nie jak obsługiwane są katalogi . Jest to przydatne podczas pracy z trybami specjalnymi , takimi jak sticky bit, które prawdopodobnie chcesz zastosować do katalogów, ale nie pliki.
- używa techniki prosto ze stron
man
(patrz niżej).
Zauważ, że nie potwierdziłem różnicy wydajności (jeśli w ogóle) między tym rozwiązaniem a tym, że po prostu użyłem dwóch komend find (jak w rozwiązaniu Petera Mortensena). Jednak zobaczenie podobnego przykładu w podręczniku jest zachęcające.
Przykład ze strony man find
:
find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)
Traverse the filesystem just once, listing setuid files and direc‐
tories into /root/suid.txt and large files into /root/big.txt.
Cheers
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-17 07:04:26
chmod -R 755 directory_name
działa, ale jak zachować nowe pliki do 755 również? Uprawnienia pliku stają się domyślnymi uprawnieniami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-22 12:03:34
Chcesz się upewnić, że odpowiednie pliki i katalogi są chmod-ed / permissions for these are appropriate. Dla wszystkich katalogów, które chcesz
find /opt/lampp/htdocs -type d -exec chmod 711 {} \;
I dla wszystkich obrazów, JavaScript, CSS, HTML...nie powinieneś ich zabijać. Więc użyj
chmod 644 img/* js/* html/*
Ale dla całego kodu logicznego (na przykład kodu PHP), powinieneś ustawić uprawnienia tak, aby użytkownik nie mógł zobaczyć tego kodu:
chmod 600 file
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-22 22:07:22
Dla Mac OS X 10.7 (Lion) jest to:
chmod -R 755 /directory
I tak, jak wszyscy inni mówią, Bądź ostrożny, gdy to robisz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 02:56:19
Myślę, że Adam pytał jak zmienić wartość umask dla wszystkich procesów, które mają działać w katalogu /opt/lampp/htdocs
.
Maska trybu tworzenia plików użytkownika (umask) służy do określania uprawnień do plików dla nowo utworzonych plików. Może być używany do kontrolowania domyślnych uprawnień do plików dla nowych plików.
Więc jeśli używasz jakiegoś programu ftp do przesyłania plików do /opt/lampp/htdocs
, musisz skonfigurować serwer ftp tak, aby używał opcji umask.
Jeśli pliki / katalogi zostaną utworzone dla przykład za pomocą php, musisz zmodyfikować kod php
<?php
umask(0022);
// other code
?>
Jeśli utworzysz nowe pliki / foldery z sesji bash, możesz ustawić wartość umask w profilu powłoki~/.bashrc
Można też ustawić umask w pliku /etc/bashrc
lub /etc/profile
dla wszystkich użytkowników.
Dodaj następujący plik:
umask 022
Sample umask Values and File Creation Permissions
If umask value set to User permission Group permission Others permission
000 all all all
007 all all none
027 all read / execute none
Oraz do zmiany uprawnień dla już utworzonych plików można użyć funkcji find. Mam nadzieję, że to pomoże.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 09:03:06
Istnieją dwie odpowiedzi na znalezienie plików i zastosowanie chmod
do nich. Pierwszym z nich jest find
plik i Zastosuj chmod
Jak znajdzie (zgodnie z sugestią @WombleGoneBad).
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
Drugim rozwiązaniem jest wygenerowanie listy wszystkich plików za pomocą polecenia find
i dostarczenie tej listy do polecenia chmod
(zgodnie z sugestią @lamgesh).
chmod 755 $(find /path/to/base/dir -type d)
Obie te wersje działają poprawnie, o ile liczba plików zwracanych przez polecenie find
jest niewielka. Drugie rozwiązanie wygląda świetnie dla oka i nie tylko czytelny niż pierwszy. Jeśli jest duża liczba plików, drugie rozwiązanie zwróci błąd: Argument list too long.
Więc moja sugestia jest
- użyj
chmod -R 755 /opt/lampp/htdocs
, Jeśli chcesz zmienić uprawnienia wszystkich plików i katalogów jednocześnie. - Użyj
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
, jeśli liczba plików jest bardzo duża. Opcja-type x
wyszukuje tylko określony typ pliku, gdzie d służy do wyszukiwania katalogu, f do pliku i l do łącza. - użyj
chmod 755 $(find /path/to/base/dir -type d)
inaczej - lepiej użyj pierwszego w każdej sytuacji
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-21 19:58:49
To bardzo proste.
W terminalu przejdź do menedżera plików. przykład: sudo nemo
. Idź /opt/
następnie kliknij Właściwości → pozwolenie. i wtedy Inne. Na koniec Zmień, aby utworzyć i usunąć i plik acess do odczytu i zapisu i kliknij przycisk Zastosuj... I pracy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-16 09:57:54