Script: Datei- und Ordnerberechtigungen sichern

Changelog

  • 08. August 2014 – Fix für Verzeichnisse mit Leerzeichen, Neu: Verzeichnis als Parameter definieren

Gerne teile ich folgendes, kleines Script, das in verschiedenen Situationen durchaus hilfreich sein kann.
„FOLDERS“ und „RECURSIVE“ sind entsprechend anzupassen.

Das Ergebnis wird in eine Datei mit dem Namen „permissions_(datum).log“ geschrieben, die Ausgabe kann später direkt verwendet werden, etwa:

chown root:root /etc/postfix/filter_default; chmod 644 /etc/postfix/filter_default
chown root:root /etc/postfix/postfix-files; chmod 644 /etc/postfix/postfix-files
chown root:root /etc/postfix/master.cf; chmod 644 /etc/postfix/master.cf
chown root:root /etc/postfix/dynamicmaps.cf; chmod 644 /etc/postfix/dynamicmaps.cf
chown root:root /etc/postfix/filter_trusted; chmod 644 /etc/postfix/filter_trusted
chown root:root /etc/postfix/main.cf; chmod 644 /etc/postfix/main.cf

Neu: Bei Aufruf mit einem Verzeichnis als Parameter, überschreibt dieses die „FOLDER“-Variablen im Script, also etwa: „./script.sh /etc/default“.

Das Script:

nano permissions.sh

Mit dem Inhalt:

#!/bin/bash
FOLDERS=(
"/etc/postfix"
"/etc/fruglu"
);
RECURSIVE="yes"
LOGFILE="permissions_`date +%d%m%Y_%H%M`.log"

[[ -z $1 ]] || FOLDERS="$1"
for i in "${FOLDERS[@]}"
do
  if [ $RECURSIVE != "yes" ]; then
    stat -c 'chown %U:%G "%n"; chmod %a "%n"' "$i"/* >> $LOGFILE
  else
    find $i -type f -exec stat -c 'chown %U:%G "%n"; chmod %a "%n"' {} \; >> $LOGFILE
  fi
done

Usage: ./script.sh [VERZEICHNIS]
Vorab als ausführbar markieren: chmod +x script.sh

Im Endeffekt natürlich nichts besonderes, dennoch in wenigen Fällen sehr hilfreich.
Die Datei „/etc/passwd“ mitzusichern, ist in dem Zusammenhang nicht die schlechteste Idee… ;)

2 Antworten auf “Script: Datei- und Ordnerberechtigungen sichern

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.