Rechte von einem File auf das andere übertragen.

Atalantia

Atalantia

Aktives Mitglied
Thread Starter
Dabei seit
26.11.2009
Beiträge
1.894
Reaktionspunkte
432
Hallo,
ich suche den bash Befehl um die Zugriffsrechte Owner und Group von einem File auf das andere zu übertragen. Es gibt in der Unix Welt den Befehl:
Code:
chmod --reference=file1.ext file2.ext
aber der funktioniert in macos nicht. Weiss jemand etwas genaueres?
 
gnu coreutils compilieren?
da ist das chmod drin das du meinst.
 
Weiss nicht wie das geht.

das geht ganz einfach, falls du Xcode installiert hast:
sourcen laden und entpacken
cd sourcen
./configure
make

sonst halt paketmanager ala macports oder homebrew nutzen.
 
  • Gefällt mir
Reaktionen: Atalantia und dg2rbf
Sonst niemand ne Ahnung?

Doch ;)

Mit 4 Zeilen bash script geht das ebenfalls, solange du damit leben kannst, dass keine Syntaxprüfung der Parameter dabei erfolgt, was IMO aber kein Problem sein sollte, da der Aufruf recht simpel ist. Ich habe das script mal "xchmod" genannt, für "xfer (=transfer) chmod"

Code:
xchmod QUELLE ZIEL

Das übertragt die Unix Rechte von QUELLE auf ZIEL

Und hier das script

Code:
#!/bin/bash
mode=$(ls -l "$1" | tr "-" " ")
perms=$(echo "u=${mode:1:3},g=${mode:4:3},o=${mode:7:3}" | tr -d " ")
chmod $perms "$2"
 
  • Gefällt mir
Reaktionen: ruerueka
Das Script liefert folgende Antwort:
Code:
chmod: Invalid file mode: u=ota,g=l0,o=
 
das geht ganz einfach, falls du Xcode installiert hast:
sourcen laden und entpacken
cd sourcen
./configure
make
Also, ich habe das gemacht, ohne install. Also nur
./configure&&make nicht aber ./configure&&make&&install
Das hat auf der obersten Ebene im Benutzerordner ein Haufen Files installiert. (Ich hoffe nur dort!) Admin Privileges hat der Vorgang keine verlangt. Ich habe dann aus dem "src" Ordner die Files "chmod" und "chown" rausgefischt und in die Ressourcen eines Applescripts rein getan. Danach den src Ordner mit seinen Kumpels komprimiert und in den Müll geworfen.

Funktioniert.
Habe ich alles aufgeräumt oder haben sich da noch mehr Files eingegraben?
 
Das Script liefert folgende Antwort:
Code:
chmod: Invalid file mode: u=ota,g=l0,o=
Ist für mich nicht nachvollziehbar. Bei mir läuft es problemlos. Zeige den Scripttext hier bitte mal an
 
Ist für mich nicht nachvollziehbar. Bei mir läuft es problemlos. Zeige den Scripttext hier bitte mal an

also hier steht bei perms ja schon nichts vernünftiges drin:
u=ota ist doch schon falsch, da ist von total.
welche bash benutzt du denn?
hab das hier auf mojave bash 3.2.57 probiert.
 
Ein ls -l (kleines L) gibt ab Stelle 0 die Rechte aus.

Und dieser Text wird einfach genommen um die Rechte für chmod aufzubereiten

Bei mir läuft Catalina.
 
Ein ls -l (kleines L) gibt ab Stelle 0 die Rechte aus.

bei mir steht da immer total 0 in der ersten zeile, wenn man ein verzeichnis drauf gibt.
musst wohl mal abfragen, ob es eine datei ist.
 
Darum habe ich ja geschrieben, dass ich keine Prüfung der Parameter eingebaut habe.
 
Möchte doch gerne noch wissen ob das Home Verzeichnis das einzige ist welches mit dem Befehl ./configure&&make Files abgekriegt hat, oder wurde da noch tiefer installiert?
 
Möchte doch gerne noch wissen ob das Home Verzeichnis das einzige ist welches mit dem Befehl ./configure&&make Files abgekriegt hat, oder wurde da noch tiefer installiert?

das arbeitet nur in dem verzeichnis, wo du es aufrufst.
configure erstellt dir halt die make files passend zum system und make compiliert.
nur das install würde in die ziel verzeichnisse kopieren.
für die zukunft, es ist unsinnig einen ordner zu packen, um den dann zu löschen.
 
  • Gefällt mir
Reaktionen: Atalantia
Nö, den gepackten Ordner habe ich natürlich archiviert, aber die originalFiles gelöscht.
 
Zurück
Oben Unten