Wie abcde Rechte übergeben
Wie abcde Rechte übergeben
Hi Leute,
abcde legt bei mir neu eingelesene CDs unter /home/user/music/flac/INTERPRET/ALBUM/LIEDER und /home/user/music/mp3/INTERPRET/ALBUM/LIEDER ab. Alles in Großbuchstaben wird dabei bei Bedarf neu angelegt bzw. übernommen, wenn schon vorhanden. Das funktioniert soweit. Wie erreiche ich aber, dass er diese sofort mit den korrekten Rechte-Angaben ablegt? Entweder steht das nicht im manual, oder ich habe es überlesen.
Was ich haben möchte:
Erstellen von Verzeichnisname und Dateien unter einer bestimmten UID und GID (darf der User, benötigt keine root-Rechte, muss ich aber momentan manuell nachbessern), dabei sollen die Dateien den User als owner, aber eine fremde Gruppe bekommen, außerdem 640 als Recht; die Verzeichnisse auch User, unter dem abcde läuft und andere Gruppe, dabei als Rechte 41750
Verzeichnis und Dateien werden namentlich schon korrekt angelegt, nur die Rechte & Besitzer stimmen noch nicht. Kann man abcde überhaupt anweisen, die Verzeichnisse und Dateien mit bestimmten Besitzern/Rechten anzulegen?
abcde legt bei mir neu eingelesene CDs unter /home/user/music/flac/INTERPRET/ALBUM/LIEDER und /home/user/music/mp3/INTERPRET/ALBUM/LIEDER ab. Alles in Großbuchstaben wird dabei bei Bedarf neu angelegt bzw. übernommen, wenn schon vorhanden. Das funktioniert soweit. Wie erreiche ich aber, dass er diese sofort mit den korrekten Rechte-Angaben ablegt? Entweder steht das nicht im manual, oder ich habe es überlesen.
Was ich haben möchte:
Erstellen von Verzeichnisname und Dateien unter einer bestimmten UID und GID (darf der User, benötigt keine root-Rechte, muss ich aber momentan manuell nachbessern), dabei sollen die Dateien den User als owner, aber eine fremde Gruppe bekommen, außerdem 640 als Recht; die Verzeichnisse auch User, unter dem abcde läuft und andere Gruppe, dabei als Rechte 41750
Verzeichnis und Dateien werden namentlich schon korrekt angelegt, nur die Rechte & Besitzer stimmen noch nicht. Kann man abcde überhaupt anweisen, die Verzeichnisse und Dateien mit bestimmten Besitzern/Rechten anzulegen?
Re: Wie abcde Rechte übergeben
Es wäre wohl etwas fatal wenn Anwendungen die Rechte setzen oder ändern könnten. Das wirst du mit chmod machen müssen. Den entsprechenden Befehl kannst du doch einfach auf das entsprechende Verzeichnis anwenden und ggf mit && an deinen abcde-Befehl anhängen.
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Re: Wie abcde Rechte übergeben
Im Prinzip solltest du für die Rechte-Flags einfach mit umask die default-rechte für neue Dateien ändern können. Genauso kannst du mit newgrp die Gruppe für neue Dateien/Ordner ändern (oder das Programm mittels sg gruppenname abcde aufrufen).
Ob sich dann abcde daran hält ist eine andere Frage - normalerweise sollte das aber funktionieren, solange sich das Programm nicht explizit dagegen wehrt, und dafür gibt es keinen Grund...
@jkoerner: wieso wäre das fatal? Natürlich können Anwendungen Rechte setzen, wer denn sonst? Irgendwer muss das ja tun.
MfG Peschmä
Ob sich dann abcde daran hält ist eine andere Frage - normalerweise sollte das aber funktionieren, solange sich das Programm nicht explizit dagegen wehrt, und dafür gibt es keinen Grund...
@jkoerner: wieso wäre das fatal? Natürlich können Anwendungen Rechte setzen, wer denn sonst? Irgendwer muss das ja tun.
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
Re: Wie abcde Rechte übergeben
Warum das "fatal" wäre, erschließt sich mir auch nicht, denn der User darf es, also darf es auch die in seinem Namen ausgeführte Anwendung, hier eben abcde bzw. der nachgeschaltete Encoder.
Das mit umask ist aber suboptimal, weil es ja immer und für alles gelten würde. Ich möchte aber, das eben genau nur abcde das macht.
Es sollen die erstellten files (und das macht ja IMO noch nichtmal abcde, sondern lame oder wer auch immer im Nachgang) eben wie geschrieben dem ausführenden User, aber einer anderen Gruppe zugeordnet werden, ebenso wie Verzeichnisse und Rechte. Sowas muss doch machbar sein!?
Das mit umask ist aber suboptimal, weil es ja immer und für alles gelten würde. Ich möchte aber, das eben genau nur abcde das macht.
Es sollen die erstellten files (und das macht ja IMO noch nichtmal abcde, sondern lame oder wer auch immer im Nachgang) eben wie geschrieben dem ausführenden User, aber einer anderen Gruppe zugeordnet werden, ebenso wie Verzeichnisse und Rechte. Sowas muss doch machbar sein!?
Re: Wie abcde Rechte übergeben
Ich würde nicht so lange suchen und einfach das danach laufen lassen.
Code: Alles auswählen
find /home/user/music/ -type f -exec chmod XXX {} \;
find /home/user/music/ -type f -exec chgrp xxxx {} \;
find /home/user/music/ -type d -exec chgrp xxxx {} \;
Nja halt für alles was in der shell läuft. Würde halt die konsole auf machen umask ausführen und nachdem du abcde ausgeführt hast die kosole zu machen und alles ist wieder vergessen.dirk11 hat geschrieben:Das mit umask ist aber suboptimal, weil es ja immer und für alles gelten würde.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Wie abcde Rechte übergeben
Problem ist halt, das ich sowas leider auch öfter mal vergessen würde, was nicht ganz so toll wäre.wanne hat geschrieben:Ich würde nicht so lange suchen und einfach das danach laufen lassen.
Außerdem: fehlt da nicht was?: Gruppe setzen für files, Rechte setzen für files, Gruppe setzen für directories, Rechte setzen für directories.
Re: Wie abcde Rechte übergeben
Schreib dir doch ein Bash-Skript, das abcde aufruft und vor dem Beenden die Rechte der Verzeichnisse ändert. Kannst so etwas wahrscheinlich auch in abcde selber einfügen, denn das ist doch auch ein Skript.dirk11 hat geschrieben:Problem ist halt, das ich sowas leider auch öfter mal vergessen würde, was nicht ganz so toll wäre.
Code: Alles auswählen
file /usr/bin/abcde
/usr/bin/abcde: Bourne-Again shell script, ASCII text executable
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Re: Wie abcde Rechte übergeben
Die umask wird für Dateien von einem Startwert von 666 subtrahiert, für Ordner von 777. Subtil, aber das geht sogar etwa von selber auf. Davon abgesehen schreibst du das gesamte ja dann wohl eh in ein Script - da gilt das dann auch nur für die Ausführdauer von dem Script selbst... - und wenns nur für einen Teil des scripts gelten soll must du halt entweder eine subshell starten oder das manuell zurücksetzen.dirk11 hat geschrieben:Außerdem: fehlt da nicht was?: Gruppe setzen für files, Rechte setzen für files, Gruppe setzen für directories, Rechte setzen für directories.
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
Re: Wie abcde Rechte übergeben
Bin da gerade etwas ideenlos, kannst du vielleicht mal einen Vorschlag machen?debianoli hat geschrieben:Schreib dir doch ein Bash-Skript, das abcde aufruft und vor dem Beenden die Rechte der Verzeichnisse ändert.
Originale umask ist 22 direkt auf der Konsole, per ssh ist es 66. Darauf sollte man sich also nicht unbedingt verlassen müssen dabei.
Lieber nicht, beim nächsten update geht dann alles daneben...Kannst so etwas wahrscheinlich auch in abcde selber einfügen, denn das ist doch auch ein Skript.
Re: Wie abcde Rechte übergeben
Das wird dir wohl keiner hinbekommen aber für den rest:dirk11 hat geschrieben:Rechte 41750
Code: Alles auswählen
umask 026
newgrp [GRUPPE]
abcde "$@"
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Wie abcde Rechte übergeben
Öhm, das ist 750+ Sticky (T), wie es mir der mc anzeigt, wird das sonst anders genannt?wanne hat geschrieben:Das wird dir wohl keiner hinbekommendirk11 hat geschrieben:Rechte 41750
Ach, und kannste bitte die Codezeilen noch erläutern? Was machen die drei einzelnen Zeilen?
Mit umask 026 wird dieselbe gesetzt, aber was macht newgroup? Ich will ja keine neue Gruppe definieren, sondern nur eine andere GID als die GID des Nutzers nehmen.
Re: Wie abcde Rechte übergeben
Die erste Zeile ist dann ja eh klar…
und genau das, was du willst macht newgrp: Normalerweise, wenn du dich anmeldest gehören von dir angelegte Dateien und Verzeichnisse deinem Benutzer und deiner Standardgruppe mit der du automatisch angemeldet wirst. Und genau diese Gruppe ändert newgrp zu der angegebenen Gruppe, wobei allerdings der Name der Gruppe und nicht die ID gefragt ist.
Obendrein ist es bei dem Befehl hilfreich, wenn dein Benutzer bereits Mitglied dieser Gruppe ist, aber das wird ja vermutlich bereits der Fall sein.
und die letzte Zeile startet einfach nur abcde mit den Optionen, mit denen das Skript aufgerufen wurde
und genau das, was du willst macht newgrp: Normalerweise, wenn du dich anmeldest gehören von dir angelegte Dateien und Verzeichnisse deinem Benutzer und deiner Standardgruppe mit der du automatisch angemeldet wirst. Und genau diese Gruppe ändert newgrp zu der angegebenen Gruppe, wobei allerdings der Name der Gruppe und nicht die ID gefragt ist.
Obendrein ist es bei dem Befehl hilfreich, wenn dein Benutzer bereits Mitglied dieser Gruppe ist, aber das wird ja vermutlich bereits der Fall sein.
und die letzte Zeile startet einfach nur abcde mit den Optionen, mit denen das Skript aufgerufen wurde
Re: Wie abcde Rechte übergeben
Ich würde mir abcde einfach nach /home/USER/.bin kopieren und in dem Skript die entsprechenden Änderungen vornehmen. Am Ende des Skripts dann deine Anweisungen wie chmod etc.dirk11 hat geschrieben:Lieber nicht, beim nächsten update geht dann alles daneben...Kannst so etwas wahrscheinlich auch in abcde selber einfügen, denn das ist doch auch ein Skript.
Code: Alles auswählen
chmod -R 640 $OUTPUTDIR/*
)
exit 0
Ist zwar nicht so elegant wie wannes Lösung, funktioniert aber auch. Und ob abcde überhaupt zu wheezys Zeiten noch ein Update erfährt, würde ich bezweifeln...