Morgen.
Ich habe ein Shellskript, dass aus zwei Teilen bestehen soll
1
#!/bin/bash
2
3
sudo .-.-.-.
4
sudo .-.-.-.
5
6
su NUTZER
7
8
.-.-.-.
9
.-.-.-.
Im ersten Teil wird als root gearbeitet, im zweiten Teil sollen nur ein
paar Kopiervorgänge auf der Userebene erfolgen.
In der Shell kann ich über su NUTZER oder exit vom root in den
user-Modus wechseln. Im Shellskript klappt das aber nicht. Alles nach
dem su NAME bleibt unbearbeitet. Weiß jemand wieso?
t800 schrieb:> Weiß jemand wieso?
weil sudo eine neue Shell aufmacht. Unter Linux ist nicht vorgesehen das
ein Prozess seine UserId wechselt.
du musst ein zweites Scipt mit sudo starten (oder das gleiche script mit
einem andere Parameter)
Peter II schrieb:> Unter Linux ist nicht vorgesehen das ein Prozess seine UserId wechselt.
Doch, natürlich ist das vorgesehen, aber in der Regel eher anders rum.
Man startet den Prozess als root, und der wechselt dann nachher temporär
oder dauerhaft zu einem anderen User.
Rolf Magnus schrieb:
>Man startet den Prozess als root, und der wechselt dann nachher temporär>oder dauerhaft zu einem anderen User.
War ja bei mir der Fall. Im ersten Abschnitt soll Software als root
installiert werden und dann einzelne configs in das Homeverzeichnis, wie
etwa ~/.vimrc oder eine geänderte ~/.bashrc.
Hab das aber jetzt mit der Zweiscriptlösung gemacht.
A. K. schrieb:
>su - ak <<EOF
Hab gerade mal die Manpage für switch-user aufgerufen, aber da steht
nichts von diesen Optionen -ak. Was bewirken die?
t800 schrieb:>>su - ak <<EOF>> Hab gerade mal die Manpage für switch-user aufgerufen, aber da steht> nichts von diesen Optionen -ak. Was bewirken die?
Das gleiche wie die Optionen "u", "s", "e" und "r". ;-)
Man darf bei all denen sogar das "- " davor weglassen.
t800 schrieb:> installiert werden und dann einzelne configs in das Homeverzeichnis, wie> etwa ~/.vimrc oder eine geänderte ~/.bashrc.
Und warum muss du dann in den user kontext switchen? Du kannst die
Dateien doch als root Kopieren und dann mit "chown user:group" den
"neuen" besitzer zuweisen.
imonbln schrieb:
>Du kannst die>Dateien doch als root Kopieren und dann mit "chown user:group" den>"neuen" besitzer zuweisen.
Der user-switch wäre eine Zeile. Die beiden configs waren nur ein
Beispiel. Insgesamt sind es einige mehr. Dann für jede einmal chown ...,
da wäre mir ein einmaliges switch lieber.
t800 schrieb:> Der user-switch wäre eine Zeile. Die beiden configs waren nur ein> Beispiel. Insgesamt sind es einige mehr. Dann für jede einmal chown ...,> da wäre mir ein einmaliges switch lieber.
1. Ich kann mich irren, aber nimmt chown nicht eine Liste von Dateien
an?
2. Wenn es mehrere Dateien sind, dann sind die ja bestimmt in einem
Ordner? Also kannst du bei chown die r Option benutzen um rekursiv alle
Unterdateien in einem Ordner zu ändern.
Christopher B. schrieb:> t800 schrieb:>> Der user-switch wäre eine Zeile. Die beiden configs waren nur ein>> Beispiel. Insgesamt sind es einige mehr. Dann für jede einmal chown ...,>> da wäre mir ein einmaliges switch lieber.>> 1. Ich kann mich irren, aber nimmt chown nicht eine Liste von Dateien> an?> 2. Wenn es mehrere Dateien sind, dann sind die ja bestimmt in einem> Ordner? Also kannst du bei chown die r Option benutzen um rekursiv alle> Unterdateien in einem Ordner zu ändern.
Wildcards/Globbing hilft meistens auch, um mit 1..2 Ausdrücke genau die
betroffenen Dateien zu nennen.
Dann gibt's noch den Befehl install um kopieren, Eigentum&Rechte
setzen in einem zu erledigen.
Das ist alles richtig.
Auch wenn chown eine Liste in Form der Dateinamen annimmt, würde es in
keinem Verhältnis stehen. Es sind etwa 25 Files und die nochmal alle
tippen, nö danke.
Aber wie gesagt, habe es mittlerweile in zwei Scripts laufen und gut
ist.
Kommandozeile vor dem Frühstück für Alle! schrieb:
>Dann gibt's noch den Befehl install um kopieren, Eigentum&Rechte>setzen in einem zu erledigen.
Sehr interessant, sehe ich mir auf jeden Fall an und wenn es das kann,
was Du schreibst, bekomme ich doch noch meine Einscriptlösung
t800 schrieb:> Auch wenn chown eine Liste in Form der Dateinamen annimmt, würde es in> keinem Verhältnis stehen. Es sind etwa 25 Files und die nochmal alle> tippen, nö danke.
achso zwei fragil aufeinander abgestimmte Scripte sind so viel besser
als eine liste mit 25 Eintragen zu erzeugen und die an zwei stellen
zunutzen?
Ich bin auch gerne faul und dass sollte jeder Techniker sein, aber ich
wuerde lieber 2 * 25 Datein tippen als mir ein Konstrukt mit mehren
shellscripten zu schaffen, die nur um Benutzer Datein in Ihren HOME zu
packen. Spaetestens nach ein paar Jahren wenn Datei 26 dazu kommt wirst
Du oder dein Kollege vergessen das beide Scripte angefasst werden
muessen und dann, holt Dich deine Zeitersparnis von jetzt wieder ein.
Der weg mit install ist wahrscheinlich noch schoener, ich kann wuerde
dir raten den zunehmen.
t800 schrieb:> Achso, da waren ja noch Hinweise auf die Mögl. reg. Ausdrücke> einzusetzen. Mal sehen, aber hier muss ich mich erst Einlesen.
Nein, keine REs. Nur Wildcards/Globbing.
Deinem Ton nach kommen REs erst in 15 Lektionen.
t800 schrieb:> Das ist alles richtig.>> Auch wenn chown eine Liste in Form der Dateinamen annimmt, würde es in> keinem Verhältnis stehen. Es sind etwa 25 Files und die nochmal alle> tippen, nö danke.>> Aber wie gesagt, habe es mittlerweile in zwei Scripts laufen und gut> ist.
Doppelt selber schuld.
1. Im Editor deiner Wahl ist es sicher kein Umstand eine bescheidene
Liste von 25 Namen/Zeilen/Dinger zu duplizieren (kein Aufwand aber SEHR
schlechte Herangehensweise)
PS: auch auf der Befehlszeile ist's dank Historie, notfalls
tab-completion KEIN Aufwand.
2. Zwei Scripts schreiben können wollen, aber deren
Kopplung/Gemeinsamkeiten unüberlegt vom Himmel gefallen liegen lassen?
- - -
Dass (Dateinamen-)Listen ganz einfach einer Variable zugewiesen und
damit in Schleifenkonstrukte abgearbeitet werden können, käme Dir nicht
in den Sinn?
Dass ein einziger Script, z.b. per Parameter, mal einen (ersten) Teil an
Arbeit, mal einen anderen (zweiten) Teil an Arbeit mit derselben
(Dateien-)Liste erledigen könnte, ist f. Dich wohl bestand von
EndeDerVernunft, nicht von ElektronischerDatenVerarbeitun, gell?
Tipp: mach mal Upgrade t800 --> Toshiba T1100, der hat immerhin 4.77MHz
Systemtakt...
@ Kommandozeile vor dem Frühstück für Alle!
Du schreibst viel, Du gehst von falschen Prämissen aus und ziehst zudem
in mehrfacher Hinsicht schlichtweg falsche Schlüsse. Rechtschreibfehler
und grammatikalische Absonderlichkeiten runden den Gesamteindruck dann
vollends ab.
Off topic noch soviel zu Deinem Post... Du denkst bei dem Kürzel t800 an
einen Taschenrechner?!
https://www.google.de/?hl=de&q=t800
> gehst von falschen Prämissen aus
Von nicht dargelegten Prämissen aus.
> Rechtschreibfehler> und grammatikalische Absonderlichkeiten runden den Gesamteindruck dann> vollends ab.
Ist das Forum nun nur noch für D-Muttersprachler, wie?
Bring nochmal den Satz mit den Prämissen.
> Du denkst bei dem Kürzel t800 an> einen Taschenrechner?!
Nein, an ein Nudelsieb wo flüssiges Metall durchrinnt.
Prämissen sag ich da nur...
> https://www.google.de/?hl=de&q=t800
Dieser Verweis öffnet mir zwar die Google Startseite, jedoch ohne Suche
und ohne Ergebnisse.
Bleibe du also bei Deutsch und grammar nati , denn Prämissen f. EDV
bringst erwiesenermassen ja ungenügende mit.
Cholerisch hatte ich noch vergessen, Danke das Du mich darauf aufmerksam
gemacht hast.
Einen schönen Tag zusammen mit Deinen Mitmenschen, mein Freund und KUAZ