Wie stelle ich die Standardberechtigungen für Dateien und Ordner ein?

Wie stelle ich die Standardberechtigungen für Dateien und Ordner ein?

Ich verwende Debian und möchte eine Sicherungskopie meiner persönlichen Dateien und Konfigurationsdateien (den gesamten /home-Ordner eines Benutzers) auf einem neuen Computer neu installieren.

Aus einem Grund, den ich nicht verstehe, haben alle Dateien meines gesamten Backups die gleichen Berechtigungen: 777 / -rwxrwxrwx. Das ist für einige Konfigurationsdateien viel zu freizügig. Als ich beispielsweise nach der Neuinstallation des Backups zum ersten Mal SSH verwendete, musste ich ein „chmod 600 ~/.ssh/config“ ausführen, um SSH starten zu können.

Ich weiß wirklich nicht, warum das passiert ist. Ich sichere mit „ rsync -avBerechtigungen beibehalten“ und meine externe Festplatte verwendet ein ext4-Dateisystem.

Wie auch immer, ich habe nur dieses Backup und keine Möglichkeit, ein weiteres zu erstellen (der Computer ist abgestürzt). Ich suche nach einer Möglichkeit, Dateien und Ordner automatisch auf ihre Standardeinstellungen zurückzusetzen (ich schätze beispielsweise, dass die Datei .ssh/config 600 ist).

Gibt es eine Möglichkeit, dies automatisch zu erreichen?

Antwort1

Bitte schön;

ORIG_DIR="/bla/bla"
BKUP_DIR="/bla/dee"
:~$ find $ORIG_DIR | while read aline; do perm=$(stat "$aline" | grep "Access: (" | sed 's/Access: (//;s/\/.*//'); chmod -v $perm "$BKUP_DIR/$aline"; done

Ich habe ein Beispiel gemacht;

:~$ mkdir ooh
:~$ mkdir noo
:~$ touch ooh/mog1 ooh/mog2 ooh/mog3
:~$ rsync -av ooh noo
sending incremental file list
ooh/
ooh/mog1
ooh/mog2
ooh/mog3

sent 245 bytes  received 77 bytes  644.00 bytes/sec
total size is 0  speedup is 0.00
:~$ ls -la noo/ooh/
total 32
drwxr-xr-x 2 mike mike 4096 Oct 28 23:09 .
drwxr-xr-x 3 mike mike 4096 Oct 28 23:10 ..
-rw-r--r-- 1 mike mike    0 Oct 28 23:09 mog1
-rw-r--r-- 1 mike mike    0 Oct 28 23:09 mog2
-rw-r--r-- 1 mike mike    0 Oct 28 23:09 mog3
:~$ chmod 700 ooh/mog1
:~$ chmod 600 ooh/mog2
:~$ chmod 555 ooh/mog3
:~$ find ooh
ooh
ooh/mog1
ooh/mog3
ooh/mog2
:~$ find ooh | while read aline; do perm=$(stat "$aline" | grep "Access: (" | sed 's/Access: (//;s/\/.*//'); chmod -v $perm "noo/$aline"; done
mode of 'noo/ooh' retained as 0755 (rwxr-xr-x)
mode of 'noo/ooh/mog1' changed from 0644 (rw-r--r--) to 0700 (rwx------)
mode of 'noo/ooh/mog3' changed from 0644 (rw-r--r--) to 0555 (r-xr-xr-x)
mode of 'noo/ooh/mog2' changed from 0644 (rw-r--r--) to 0600 (rw-------)

verwandte Informationen