Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

PATH setzen für eigene Batch-Dateien ?

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
abgdf
Guru
Guru
Beiträge: 3319
Registriert: 13. Apr 2004, 21:15

PATH setzen für eigene Batch-Dateien ?

Beitrag von abgdf »

Hallo Freunde des Pinguins,

unter DOS konnte ich meine eigenen Batch-Dateien ".bat" erstellen, diese etwa in einem Verzeichnis C:\bats ablegen und in der autoexec.bat den Path auf

PATH C:\BATS

setzen. Dann konnte ich meine Batch-Dateien von jedem Verzeichnis aus ausführen.

Wie geht sowas unter SuSE 8.1 ?

Ich will zum Beispiel, wenn ich in /root/ oder in /home/user/ bin, schnell die Floppy mounten.
Ich habe, sagen wir eine Datei "mountfl" in /root/bats/. Die Datei enthält

cd /media
mount floppy
cd /root/

Wie kann ich von /root/ oder von /home/ aus "mountfl" oder "sh mountfl" eingeben, um "mountfl" auszuführen ?

Wie und wo muß ich den PATH setzen ?

Vielen Dank für eure Antworten

abgdf
admine
Administrator
Administrator
Beiträge: 8865
Registriert: 15. Feb 2004, 21:13
Kontaktdaten:

Beitrag von admine »

Da gibts verschiedene Möglichkeiten.
Entweder beim Aufruf den vollständigen Pfad angeben.
Oder das Script in ein Verzeichnis deiner Path-Variable der bash schreiben.
Oder in der .bashrc des Users folgenden Eintrag ergänzen

Code: Alles auswählen

export PATH=.:$PATH
Letzteres aber mit Vorsicht zu genießen, da du damit Sicherheitsvorkehrungen aushebelst.
..:: unser Linux-Club-Wiki ::..
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Benutzeravatar
imat
Member
Member
Beiträge: 69
Registriert: 7. Apr 2004, 12:48
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von imat »

Als User hast du automatisch einen Path auf /home/<user>/bin gesetzt. Du must also nur in deinem Home ein Verzeichnis "bin" anlegen und dort deine persönlichen Scripte ablegen.

Für den User root gilt dieses jedoch nicht.

Wenn du ein Skript global ablegen willst, damit jeder User und Root darauf Zugriff hat, musst du dieses am besten als User Root unter /usr/local/bin
ablegen, da hier per default immer ein Path gesetzt ist (User und root).

Wenn du an der globalen Path Einstellung für ALLE User etwas ändern willst,
dann schau dir die Datei /etc/profile an. In dieser Datei wird der Pfad für alle gesetzt. Änder das aber nicht in dieser Datei, sondern erstell eine Datei
/etc/profile.local und erweitere dort den Path, da eventuell bei einem Paketupdate die Datei /etc/profile überschieben wird.

Beispiel "/etc/profile.local"

Code: Alles auswählen

PATH=$PATH:/pfad/zu/mehr/bin
export $PATH
Wenn du als User deinen Pfad ändern willst ist der beste Platz die Datei
".profile" in deinem Homedir .
abgdf
Guru
Guru
Beiträge: 3319
Registriert: 13. Apr 2004, 21:15

Danke

Beitrag von abgdf »

Hallo nochmal,

ich habe meine kurzen, ausführbaren Skripte nach

/usr/local/bin

getan.

Sie werden tadellos erkannt. Jetzt tippe ich etwa statt startx gnome nur kurz x.
Super !

Vielen Dank für eure Hilfe.
Ihr seid klasse.

abgdf
Benutzeravatar
deac
Member
Member
Beiträge: 111
Registriert: 14. Apr 2004, 22:31

Beitrag von deac »

willst du dir das "sh" vor "sh mountfl" ersparen, brauchst nur als erste zeile in deinem skript

"#!/bin/sh" rein schreiben
padersuse
Member
Member
Beiträge: 244
Registriert: 13. Mai 2005, 09:30

PATH und root

Beitrag von padersuse »

@imat

Hallo,

das mit dem PATH-Befehl hast Du sehr schön erklärt. Nehmen wir an, man installiert die neueste Version von Samba in einem eigenen Verzeichnis (mit bin und sbin Unterverzeichnis), wie setzt man dann den PATH-Befehl nur für root, der ja als einziger den Dienst starten sollte. Oder gibts dafür eine andere Lösung ? Ich könnte natürlich das Programm mit den Befehlen configure, make und make install so installieren, dass die sbin Befehle im Verzeichnis /usr/sbin landen, aber die Deinstallation wäre zu aufwendig. Aber ein automatisches Starten der Dienste wäre doch wünschenswert, wobei ich jetzt nicht daran gedacht habe, Links in die /usr/sbin Verzeichnisse zu legen.

Padersuse
Benutzeravatar
mayestro
Newbie
Newbie
Beiträge: 1
Registriert: 23. Nov 2005, 11:53

PATH und root und SAMBA

Beitrag von mayestro »

Die "andere Lösung" kann natürlich so aussehen, daß die entsprechenden Dateien nur für den "root", dem sie ja auch gehören sollten, ausführbar sind:

chown root:root <filename>
chmod 700 <filname>


das ist der beste Schutz gegen ungewollte Zugriffe.
Allerdings kannst du die Datei dann wirklich auch nur noch als "root" ansehen, ändern und ausführen.

Alternativ kannst du auch noch einem Samba-User (der natürlich angelegt sein muß) Zugriff gewähren, indem du ihm die Gruppe "smbusr" (auch anlegen) zuordnest und dann die o.g. Befehle modifizierst:

chown root:smbusr <filename>
chmod 770 <filename>


Gruß
mayestro
Antworten