Massenhafte Änderungen von Datei und Verzeichnis Rechten unter Linux

Ich habe gerade das Tool OpenTimeTool auf einem Server installiert. Im Paket sind alle Dateien und Verzeichnisse mit 777 Rechten vorhanden. Man sollte wenn die Kiste im Internet steht die Berechtungungen schon ein wenig restriktiver vergeben. Normalerweise haben Dateien auf einem Webserver eine 644 Maske und Verzeichnisse eine 755 Maske.

foo@bar:/var/www/bar/opentimetool/test# ls -la
insgesamt 2404
drwxr-xr-x  7 root   root      4096 2011-07-21 15:10 .
drwxr-xr-x  8 foo    foo       4096 2011-07-21 15:10 ..
-rwxrwxrwx  1 root   root      9513 2011-04-18 22:12 CHANGELOG
drwxrwxrwx  3 root   root      4096 2011-04-18 22:25 classes
-rwxrwxrwx  1 root   root      1371 2008-10-21 21:20 config-local.php.dist
-rwxrwxrwx  1 root   root      8179 2011-04-18 22:12 config.php
-rwxrwxrwx  1 root   root      3642 2011-01-05 00:10 db_upgrade.php
drwxrwxrwx  3 root   root      4096 2011-04-18 22:25 docs
drwxrwxrwx  9 root   root      4096 2011-04-18 22:25 htdocs
drwxrwxrwx 15 root   root      4096 2011-04-18 22:25 includes
-rwxrwxrwx  1 root   root      1546 2008-03-18 15:45 index.php
-rwxrwxrwx  1 root   root     22871 2011-01-05 00:10 init.php
-rwxrwxrwx  1 root   root      2983 2008-09-22 18:51 INSTALL
-rwxrwxrwx  1 root   root      2403 2008-09-22 18:51 INSTALL.de
-rwxrwxrwx  1 root   root     18009 2008-03-18 15:45 LICENSE
-rwxrwxrwx  1 root   root        17 2008-03-18 15:45 media
-rwxrwxrwx  1 root   root       856 2008-03-18 15:45 messages.php
-rwxrwxrwx  1 root   root       717 2008-10-21 21:20 mobile_access.README
drwxrwxrwx  2 root   root      4096 2011-04-18 22:25 mobile_login
-rwxrwxrwx  1 root   root     63312 2010-09-09 10:24 mysql.sql
-rw-r--r--  1 root   root   2201345 2011-04-27 22:02 openTimetool_2.3.1.tar.gz
-rwxrwxrwx  1 root   root       214 2008-03-18 15:45 phpinfo.php
-rwxrwxrwx  1 root   root       676 2008-03-18 15:45 README
-rwxrwxrwx  1 root   root       915 2008-03-18 15:45 SafeMode.README
-rwxrwxrwx  1 root   root       709 2008-03-24 21:18 Suhosin-README.txt
-rwxrwxrwx  1 root   root     10215 2008-03-18 15:45 TODO
-rwxrwxrwx  1 root   root     10761 2010-02-09 09:59 translate_de.sql
-rwxrwxrwx  1 root   root      9243 2010-02-09 09:59 translate_en.sql
-rwxrwxrwx  1 root   root       982 2010-02-09 09:59 update.README

Mit den Linuxboardmitteln kann man sich viel Arbeit sparen. Mit „find“ kann ich einen Parameter -type mitgeben wo ich entweder Dateien (f = Files) oder Verzeichnisse (d = Directory) als Ergebnis zurückgeben lassen kann. Mit dem Parameter -exec kann ich anschließend direkt ein Kommando ausführen und das gefundene als Parameter ({}) mitgeben.

find /var/www/bar/opentimetool/test -type f -exec chmod 644 {} \;
find /var/www/bar/opentimetool/test -type d -exec chmod 755 {} \;

Zuletzt sollte man noch den Benutzer und die Gruppe richtig setzen.

chown www-data:www-data -R /var/www/bar/opentimetool/test

Das Resultat sieht dann wie folgt aus:

foo@bar:/var/www/opentimetool/test# ls -la
insgesamt 2404
drwxr-xr-x  7 www-data www-data    4096 2011-07-21 15:10 .
drwxr-xr-x  8 foo      foo         4096 2011-07-21 15:10 ..
-rw-r--r--  1 www-data www-data    9513 2011-04-18 22:12 CHANGELOG
drwxr-xr-x  3 www-data www-data    4096 2011-04-18 22:25 classes
-rw-r--r--  1 www-data www-data    1371 2008-10-21 21:20 config-local.php.dist
-rw-r--r--  1 www-data www-data    8179 2011-04-18 22:12 config.php
-rw-r--r--  1 www-data www-data    3642 2011-01-05 00:10 db_upgrade.php
drwxr-xr-x  3 www-data www-data    4096 2011-04-18 22:25 docs
drwxr-xr-x  9 www-data www-data    4096 2011-04-18 22:25 htdocs
drwxr-xr-x 15 www-data www-data    4096 2011-04-18 22:25 includes
-rw-r--r--  1 www-data www-data    1546 2008-03-18 15:45 index.php
-rw-r--r--  1 www-data www-data   22871 2011-01-05 00:10 init.php
-rw-r--r--  1 www-data www-data    2983 2008-09-22 18:51 INSTALL
-rw-r--r--  1 www-data www-data    2403 2008-09-22 18:51 INSTALL.de
-rw-r--r--  1 www-data www-data   18009 2008-03-18 15:45 LICENSE
-rw-r--r--  1 www-data www-data      17 2008-03-18 15:45 media
-rw-r--r--  1 www-data www-data     856 2008-03-18 15:45 messages.php
-rw-r--r--  1 www-data www-data     717 2008-10-21 21:20 mobile_access.README
drwxr-xr-x  2 www-data www-data    4096 2011-04-18 22:25 mobile_login
-rw-r--r--  1 www-data www-data   63312 2010-09-09 10:24 mysql.sql
-rw-r--r--  1 www-data www-data 2201345 2011-04-27 22:02 openTimetool_2.3.1.tar.gz
-rw-r--r--  1 www-data www-data     214 2008-03-18 15:45 phpinfo.php
-rw-r--r--  1 www-data www-data     676 2008-03-18 15:45 README
-rw-r--r--  1 www-data www-data     915 2008-03-18 15:45 SafeMode.README
-rw-r--r--  1 www-data www-data     709 2008-03-24 21:18 Suhosin-README.txt
-rw-r--r--  1 www-data www-data   10215 2008-03-18 15:45 TODO
-rw-r--r--  1 www-data www-data   10761 2010-02-09 09:59 translate_de.sql
-rw-r--r--  1 www-data www-data    9243 2010-02-09 09:59 translate_en.sql
-rw-r--r--  1 www-data www-data     982 2010-02-09 09:59 update.README

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.