Dateiverwaltung: Unterschied zwischen den Versionen
K (→rsync) |
|||
Zeile 98: | Zeile 98: | ||
== rsync == | == rsync == | ||
+ | [[Datensicherung#Download_und_Installation|Installation von Rsync]] | ||
* Wiederherstellen von Dateien aus Backup | * Wiederherstellen von Dateien aus Backup | ||
rsync -av --numeric-ids /backup/server.hs/backup.0/home/user_1 /home | rsync -av --numeric-ids /backup/server.hs/backup.0/home/user_1 /home | ||
Zeile 122: | Zeile 123: | ||
Rsync-Optionen | Rsync-Optionen | ||
--inplace --partial | --inplace --partial | ||
+ | |||
== tar == | == tar == | ||
* Ein Archiv erstellen ohne Ordnerpfade | * Ein Archiv erstellen ohne Ordnerpfade |
Version vom 5. April 2022, 18:28 Uhr
Berechtigungen
chmod
- Berechtigungen nur für Dateien bzw. Verzeichnisse ändern
find . -type f -exec chmod 444 {} \; # chmod auf Dateien find . -type d -exec chmod 555 {} \; # chmod auf Verzeichnisse
- Setzen des Set User Id Bit = SUID Bit
Vor die drei Ziffern wird eine 4 gestellt. Beispiel:
chmod 4755 filename
oder
chmod u+s /usr/sbin/exim4
ergibt
-rwsr-xr-x 1 root root 875104 Jan 2 2013 /usr/sbin/exim4
Das x beim Eigentümer wird durch s ersetzt. Diese Datei wird daraufhin immer unter der ID des Besitzers ausgeführt, egal von wem sie aufgerufen wurde.
- Rechte von Verzeichnissen
Betrachtet man ein Verzeichnis als Datei, dessen Inhalt eine Liste von Dateien ist, so erklärt sich die Wirkung der Zugriffsrechte von selbst.
- Ausführen heißt Öffnen des Verzeichnisses
- Schreiben heißt den Inhalt des Verzeichnisses verändern
- Lesen heißt in das Verzeichnis hineinschauen
Lesen ohne Ausführen ist also nicht möglich.
- Dateirechte, Benutzerrechte unter UNIX
Hervorragende Einführung Hier werden auch die Sonderrechte SUID, SGID erklärt.
http://www.linux-user.de/ausgabe/2003/12/066-acl/index.html
setuid
Durch das Setuid Bit wird eine ausführbare Datei mit den Rechten des Besitzers ausgeführt und nicht - wie sonst - mit den Rechten des aufrufenden Benutzers. Typischerweise gehört so eine Datei dem Administrator root.
Achtung: Das funktioniert angeblich nur mit Binärdateien, nicht mit einem Shellscript!
chmod +s Dateiname # oder chmod u+s Dateiname
Sticky Bit
Wird verwendet für das /tmp
Verzeichnis.
chmod +t /local/tmp
Anzeige der Berechtigungen
drwxrwxrwt 2 root root 4096 14. Feb 10:18 tmp
umask
Der Befehl ändert die Grundeinstellung der Zugriffsrechte bei neuen Dateien bzw. Verzeichnissen.
Standardwert für Dateien: 666
Standardwert für Verzeichnisse: 777
umask 0022
ergibt für Dateien: 666 - 022 = 644
ergibt für Verzeichnisse: 777 - 022 = 755
Man kann diesen Befehl in die Datei /etc/init.d/boot.local
eintragen, dann werden die Grundeinstellungen beim Systemstart gesetzt.
Anscheinend muss diese Einstellung für jeden Benutzer extra gesetzt werden. Also eintragen in ~/.bashrc
und ~/.profile
Datum vergleichen
$fileName=/tmp/backup_lock date_file=$(stat -c %Y $filename) date_jetzt=$(date +%s) date_diff=$(expr $date_jetzt - $date_file)
Fehlerhaft codierte Dateinamen
Zum Umbenennen muss eventuell das Tool convmv nachinstalliert werden.
zypper in convmv
Befehl zum rekursiven Umbenennen aller Dateien in einem Verzeichnis.
convmv -f iso-8859-1 -t utf-8 -r --notest *
cp
- Dateien kopieren
So kopiert man auch versteckte Dateien:
cp -dpR Quellverzeichnis/.[a-z,A-Z,0-9]* Zielverzeichnis
oder
cp -dpR Quellverzeichnis/.[^.]* Zielverzeichnis # .[^.] bedeutet: beliebiges Zeichen ausgenommen Punkt
- Eine Datei verteilen auf bestimmte Verzeichnisse
for dir in `ls joomla_* -d` ; do cp /www/joomla_fg/administrator/components/com_weblinks/config.xml $dir/administrator/components/com_weblinks done
ls
Dateien anzeigen. Es gibt unter Suse standardmäßig einen Aliasbefehl: dir
- Nur Verzeichnisse anzeigen
ls -ld * | grep "^d"
lsof
Offene Dateien werden aufgelistet
rsync
- Wiederherstellen von Dateien aus Backup
rsync -av --numeric-ids /backup/server.hs/backup.0/home/user_1 /home # über SSH: rsync -avz --numeric-ids -e ssh primergy:/backup/server.hs/backup.0/home/user_1 /home
- Backup mit Rsync
# Ausschließen mehrerer Verzeichnisinhalte rsync -avz --numeric-ids --exclude media/* --exclude=mnt/* --delete-excluded <quellverzeichnis> <zielverzeichnis>
# Verwendung eines Exclude Files rsync -avz --numeric-ids --exclude-from=excluded.txt --delete-excluded <quellverzeichnis> <zielverzeichnis>
- Leerzeichen im Zielverzeichnis
Wenn im Zielverzeichnis Leerzeichen enthalten sind, werden diese abgeschnitten. Das kann verhindert werden durch folgende Option
--protect-args
- Mehrere Dateien/Verzeichnisse excluden
Komplettes Backup auf einen gemountete Datenträger kopieren
rsync -avH --numeric-ids \ --exclude={/etc/fstab,/etc/default/grub,/boot/grub2/grub.cfg,/home,/root,/var,/srv} \ -e ssh 10.0.0.111:/media/disk/suseVirtualbox/backup.0/* /mnt/tmp
- Sehr große Dateien
Rsync-Optionen
--inplace --partial
tar
- Ein Archiv erstellen ohne Ordnerpfade
pwd=$(pwd) cd /usr/local/bin/bak tar cfv /www/download/bak.tar * cd $pwd
- Dateien in einem Archiv anzeigen
tar -tvf bak.tar
- TAR Archiv entpacken
tar -xf bak.tar
- XZ Archiv entpacken
XZ Archive sind verlustfrei gepackt.
cd /var/log/apache2 unxz ./access_log-20190617.xz tar -xf ./access_log-20190617