Bash-Shell Programmierung
Hi folks,
könnt ihr mir eben ein skript coden, das diese beiden Codezeilen jeden Morgen um 07:00 Uhr ausführt?
/usr/local/tomcat431-4/bin/catalina.sh stop
/usr/local/tomcat431-4/bin/catalina.sh start
Und könnt ihr mir sagen, wo ich dieses Skript eintragen muss, damit es auch täglich läuft?
Vielen Dank
könnt ihr mir eben ein skript coden, das diese beiden Codezeilen jeden Morgen um 07:00 Uhr ausführt?
/usr/local/tomcat431-4/bin/catalina.sh stop
/usr/local/tomcat431-4/bin/catalina.sh start
Und könnt ihr mir sagen, wo ich dieses Skript eintragen muss, damit es auch täglich läuft?
Vielen Dank
2. Version
Gut, soviel dazu.
Ich habe noch eine weitere Frage.
1. Ich habe mit dd eine Datei (crypted) erstellt die 50MB groß ist.
2. Diese Datei (crypted) habe ich mit mkfs.ext3 formatiert.
3. Der Root kann (crypted) mounten aber ein einzelner User nicht.
Das Verzeichniss auf das ich die Datei (crypted), als root, Mounte ist:
/home/peter/.desktop/privat/ drw-rw-rw
Die Datei(crypted) liegt unter:
/home/peter/.desktop/crypted -r--r--r--
Das mounten und unmounten habe ich in 2 Skripte ausgelagert:
/home/peter/.desktop/uncrypt.sh -rwx--x--x
und
/home/peter/.desktop/encrypt.sh -rwx--x--x
Wenn ich die Skripte als normaler user(peter) ausführe kommt entweder eine "Nicht genug heap" oder "Only root can mount" Fehlermeldung.
Was muss ich machen um das Mounten für den user (peter) zu ermöglichen?
Ich habe noch eine weitere Frage.
1. Ich habe mit dd eine Datei (crypted) erstellt die 50MB groß ist.
2. Diese Datei (crypted) habe ich mit mkfs.ext3 formatiert.
3. Der Root kann (crypted) mounten aber ein einzelner User nicht.
Das Verzeichniss auf das ich die Datei (crypted), als root, Mounte ist:
/home/peter/.desktop/privat/ drw-rw-rw
Die Datei(crypted) liegt unter:
/home/peter/.desktop/crypted -r--r--r--
Das mounten und unmounten habe ich in 2 Skripte ausgelagert:
/home/peter/.desktop/uncrypt.sh -rwx--x--x
und
/home/peter/.desktop/encrypt.sh -rwx--x--x
Wenn ich die Skripte als normaler user(peter) ausführe kommt entweder eine "Nicht genug heap" oder "Only root can mount" Fehlermeldung.
Was muss ich machen um das Mounten für den user (peter) zu ermöglichen?
Du könntest höchtens über die /etc/fstab irgendwie dem benutzer die Rechte einräumen, wie genau weiss ich aber auch nicht.
Du kannst aber die beiden shellscripte auch einfach an root übergeben, und dann das suid-bit setzen und dann allen die ausführung erlauben.
Dann kann der Benutzer das Script aufrufen, und die Datei wird gemountet.
Damit der Benutzer aber auch in die datei (bzw das Dateisystem) schreiben kann, muss dieses noch dem Benutzer übergeben werden. Dazu reicht ein chmod auf die datei nicht aus. Das Dateisystem muss eingebunden sein, und dann muss der mountpoint dem benutzer übergeben werden, denn alle eigenbundenen dateisysteme gehören normalerweise root.
Bei dem Befehl oben gehe ich davon aus, dass der benutzer peter auch in einer Gruppe names peter ist. Bei vielen Distributionen ist dem so. In welchen gruppen du bist, siehst du mit dem Befehl "groups".
Die Rechte, das dateisystem zu beschreiben bleiben übrigens auch nach dem aushängen erhalten, dh alle obigen Aktionen sind einmalig.
Ich hoffe, ich konnte helfen.
mfg Gimli
Du kannst aber die beiden shellscripte auch einfach an root übergeben, und dann das suid-bit setzen und dann allen die ausführung erlauben.
|
|
Quellcode |
1 2 3 |
su chown root:root encrypt.sh chmod a+sx encrypt.sh |
Dann kann der Benutzer das Script aufrufen, und die Datei wird gemountet.
Damit der Benutzer aber auch in die datei (bzw das Dateisystem) schreiben kann, muss dieses noch dem Benutzer übergeben werden. Dazu reicht ein chmod auf die datei nicht aus. Das Dateisystem muss eingebunden sein, und dann muss der mountpoint dem benutzer übergeben werden, denn alle eigenbundenen dateisysteme gehören normalerweise root.
|
|
Quellcode |
1 2 3 4 5 |
su cd /home/peter/.desktop/ mount crypted privat/ chown -R peter:peter privat/ umount privat/ |
Bei dem Befehl oben gehe ich davon aus, dass der benutzer peter auch in einer Gruppe names peter ist. Bei vielen Distributionen ist dem so. In welchen gruppen du bist, siehst du mit dem Befehl "groups".
Die Rechte, das dateisystem zu beschreiben bleiben übrigens auch nach dem aushängen erhalten, dh alle obigen Aktionen sind einmalig.
Ich hoffe, ich konnte helfen.
mfg Gimli
"Linux is evolution, not intelligent design." - Linus Torvalds
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Gimli« (20. Juni 2006, 10:57)
Zitat
Original von Gimli
Du könntest höchtens über die /etc/fstab irgendwie dem benutzer die Rechte einräumen, wie genau weiss ich aber auch nicht.
Du kannst aber die beiden shellscripte auch einfach an root übergeben, und dann das suid-bit setzen und dann allen die ausführung erlauben.
![]()
Quellcode
1 2 3 su chown root:root encrypt.sh chmod a+sx encrypt.sh
Was bedeutet das "a" und das "s"?
Über die fstab möchte ich nicht gehen, weil die Datei nicht immer vorhanden ist.
Die Skripte möchte ich benutzen weil ich vor- und nach dem Mounten noch gpg und bcrypt und tar ausführen möchte.
Zitat
Original von Gimli
Dann kann der Benutzer das Script aufrufen, und die Datei wird gemountet.
Damit der Benutzer aber auch in die datei (bzw das Dateisystem) schreiben kann, muss dieses noch dem Benutzer übergeben werden. Dazu reicht ein chmod auf die datei nicht aus. Das Dateisystem muss eingebunden sein, und dann muss der mountpoint dem benutzer übergeben werden, denn alle eigenbundenen dateisysteme gehören normalerweise root.
Das hatte ich schon, das klappt.
Zitat
Original von Gimli
![]()
Quellcode
1 2 3 4 5 su cd /home/peter/.desktop/ mount crypted privat/ chown -R peter:peter privat/ umount privat/
Wird bei dem Aufruf von "su" nicht nach dem Passwort gefragt?
Hängt die abfrage des Passwortes vom Besitzer ab?
Kann ich den Mount-Befehl einer anderen Gruppe freigeben?
Zitat
Original von Gimli
Bei dem Befehl oben gehe ich davon aus, dass der benutzer peter auch in einer Gruppe names peter ist.
Jo.
Zitat
Original von Gimli
Bei vielen Distributionen ist dem so. In welchen gruppen du bist, siehst du mit dem Befehl "groups".
Die Rechte, das dateisystem zu beschreiben bleiben übrigens auch nach dem aushängen erhalten, dh alle obigen Aktionen sind einmalig.
Ich hoffe, ich konnte helfen.
mfg Gimli
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »nocturne« (20. Juni 2006, 12:05)
Zitat
Original von nocturne
Zitat
Original von Gimli
![]()
Quellcode
1 chmod a+sx encrypt.sh
Was bedeutet das "a" und das "s"?
a = alle (dh user, group und others)
+ = rechte setzen
s = suid-bit, dh script läuft mit den rechten des autors, nicht mit den rechten desjenigen der es aufgerufen hat. hier wären das root-rechte, weil wir die datei root zuweisen.
x = execute, ausführen
Zitat
Original von nocturne
Zitat
Original von Gimli
![]()
Quellcode
1 2 3 4 5 su cd /home/peter/.desktop/ mount crypted privat/ chown -R peter:peter privat/ umount privat/
Wird bei dem Aufruf von "su" nicht nach dem Passwort gefragt?
Hängt die abfrage des Passwortes vom Besitzer ab?
Kann ich den Mount-Befehl einer anderen Gruppe freigeben?
1. jop, wollte nur kenntlich machen, dass du das als root durchführen musst.
2. Mit su kann man allgemein den Benutzer wechseln. "su peter" wechselt dich zu peter, dafür musst du peters passwort eingeben. oder "su mike" wechselt zu mike, dafür brauchst du mikes passwort. "su" und "su root" sind gleichbedeutend.
3. das weiss ich nicht, vielleicht funktioniert es, wenn du mit chown den besitzer von /bin/mount änderst. vielleicht geht es aber auch nicht. Würde ich aber nicht ausprobieren!
Vielleicht hast du mich falsch verstanden, deshalb fasse ich es nochmals kurz zusammen:
1. Selbst wenn du als root den Cryptocontainer gemountet hast, kannst du als benutzer nicht darauf schreiben. Zuerst musst du einmal dem Benutzer zugriff darauf geben, das funktioniert wie eben schon gesagt mit "chown -R pater:peter /home/peter/.desktop/privat/" Der Cryptocontainer muss dabei aber eingebunden sein.
2. Damit du als Benutzer den Cryptocontainer einbinden kannst, machst du einen kleinen Umweg. Du rstellst ein Script, welches den Cryptocontainer einbindet (bzw entfernt). Der Besitzer dieses Scripts muss root werden: "chown root:root encrypt.sh"
Damit jeder das script ausführen kann, setzen wir die entsprechenden rechte: "chmod 755 encrypt.sh"
Wenn das script jetzt aufgerufen wird, läuft es mit den rechten desjenigen, der es aufgerufen hat. Das reicht ja aber nicht, Peter will mounten aber nur root darf.
Deshalb setzen wir (als root) das suid-bit: "chmod +s encrypt.sh"
Von jetzt an, läuft das Script immer mit rootrechten, egal von wem es aufgerufen wird.
Du solltest dich unbedingt vergewissern, dass nur root die scripte beschreiben darf. Ansonsten kann jeder Benutzer die Datei editieren, irgendwas reinschreiben, und wenn er die datei danach ausführt, hat er root-rechte. So könnte er beispielsweise das berühmtberüchtigte "rm -rf /" ind die Datei schreiben, und wenn er sie ausführt, hat er rootrechte und löscht dir das ganze system. Das nur als bemerkung, ich weiss ja nicht, wer auf die entsprechende maschine alles zugriff hat.
mfg Gimli
"Linux is evolution, not intelligent design." - Linus Torvalds
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Gimli« (20. Juni 2006, 14:45)
Zitat
Original von Gimli
Zitat
Original von nocturne
Zitat
Original von Gimli
![]()
Quellcode
1 chmod a+sx encrypt.sh
Was bedeutet das "a" und das "s"?
a = alle (dh user, group und others)
+ = rechte setzen
s = suid-bit, dh script läuft mit den rechten des autors, nicht mit den rechten desjenigen der es aufgerufen hat. hier wären das root-rechte, weil wir die datei root zuweisen.
x = execute, ausführen
Zitat
Original von nocturne
Zitat
Original von Gimli
![]()
Quellcode
1 2 3 4 5 su cd /home/peter/.desktop/ mount crypted privat/ chown -R peter:peter privat/ umount privat/
Wird bei dem Aufruf von "su" nicht nach dem Passwort gefragt?
Hängt die abfrage des Passwortes vom Besitzer ab?
Kann ich den Mount-Befehl einer anderen Gruppe freigeben?
1. jop, wollte nur kenntlich machen, dass du das als root durchführen musst.
2. Mit su kann man allgemein den Benutzer wechseln. "su peter" wechselt dich zu peter, dafür musst du peters passwort eingeben. oder "su mike" wechselt zu mike, dafür brauchst du mikes passwort. "su" und "su root" sind gleichbedeutend.
3. das weiss ich nicht, vielleicht funktioniert es, wenn du mit chown den besitzer von /bin/mount änderst. vielleicht geht es aber auch nicht. Würde ich aber nicht ausprobieren!
Vielleicht hast du mich falsch verstanden, deshalb fasse ich es nochmals kurz zusammen:
1. Selbst wenn du als root den Cryptocontainer gemountet hast, kannst du als benutzer nicht darauf schreiben. Zuerst musst du einmal dem Benutzer zugriff darauf geben, das funktioniert wie eben schon gesagt mit "chown -R pater:peter /home/peter/.desktop/privat/" Der Cryptocontainer muss dabei aber eingebunden sein.
2. Damit du als Benutzer den Cryptocontainer einbinden kannst, machst du einen kleinen Umweg. Du rstellst ein Script, welches den Cryptocontainer einbindet (bzw entfernt). Der Besitzer dieses Scripts muss root werden: "chown root:root encrypt.sh"
Damit jeder das script ausführen kann, setzen wir die entsprechenden rechte: "chmod 755 encrypt.sh"
Wenn das script jetzt aufgerufen wird, läuft es mit den rechten desjenigen, der es aufgerufen hat. Das reicht ja aber nicht, Peter will mounten aber nur root darf.
Deshalb setzen wir (als root) das suid-bit: "chmod +s encrypt.sh"
Von jetzt an, läuft das Script immer mit rootrechten, egal von wem es aufgerufen wird.
Du solltest dich unbedingt vergewissern, dass nur root die scripte beschreiben darf. Ansonsten kann jeder Benutzer die Datei editieren, irgendwas reinschreiben, und wenn er die datei danach ausführt, hat er root-rechte. So könnte er beispielsweise das berühmtberüchtigte "rm -rf /" ind die Datei schreiben, und wenn er sie ausführt, hat er rootrechte und löscht dir das ganze system. Das nur als bemerkung, ich weiss ja nicht, wer auf die entsprechende maschine alles zugriff hat.
mfg Gimli
Das mit dem "+s" ist wohl der Springende Punkt.
Eben zur Kommunikation:
In der Datei crypted Liegen mehrere Ordner u.a. mit den Zugriffsrechten für peter:peter. Hab dich also gut verstanden !
Hey, vielen Dank.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »nocturne« (20. Juni 2006, 14:54)
Bei mount und gewissen anderen Programmen scheint das mit dem suid-bit nicht zu funktionieren, weil die noch ne interne abklären haben wer das programm gestartet hat.
Das einzige was da wohl weiterhelfen dürfte könnte sudo mit /etc/sudoers sein.
mfg Gimli
Das einzige was da wohl weiterhelfen dürfte könnte sudo mit /etc/sudoers sein.
mfg Gimli
"Linux is evolution, not intelligent design." - Linus Torvalds


