Link setzen in bash.bashrc [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

Link setzen in bash.bashrc [gelöst]

Beitrag von sukram » 12.02.2011 08:47:33

Ich möchte, dass wenn sich ein Benutzer am System anmeldet ein Link auf ein Verzeichnis gesetzt wird und dachte mir ich mache das in der /etc/bash.bashrc
Leider erhält jeder Benutzer folgenden Fehler wenn ein Terminal gestartet wird: ln: Erzeuge symbolische Verknüpfung „/home/markus/Daten/data“: Keine Berechtigung

In der bash.bashrc habe ich folgenden Eintrag gemacht:

Code: Alles auswählen

ln -s /nfs/sunny/data/ /home/${USER}/Daten
Fragen:
1. Ist die /etc/bash.bashrc der geignete Platz um diesen Link auszuführen?
2. Warum wird in der Fehlermeldung "data" noch hinter ../Daten/ angehängt? Das Verzeichnis ../Daten/data existiert nicht!
Zuletzt geändert von sukram am 12.02.2011 23:20:10, insgesamt 1-mal geändert.
Ciao, Markus

Es hat alles seinen Grund...

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Link setzen in bash.bashrc

Beitrag von syssi » 12.02.2011 09:43:43

1. Die bash.bashrc ist der falsche Ort, wenn des Symlink nur einmal erstellt werden soll und nicht jedes Mal neu, wenn der Benutzer die Shell oeffnet. Es sollte reichen, wenn der Symlink zur Laufzeit von adduser angelegt wird. Dafuer kannst du die Datei /usr/local/sbin/adduser.local erstellen. Dies wird nach der erfolgreichen Einrichtung eines Benutzerkontos ausgefuehrt (siehe "man adduser").

2. Das sollte dich zum Ziel fuehren: ln -s /nfs/sunny/data /home/${USER}/Daten

Gruss syssi

sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

Re: Link setzen in bash.bashrc

Beitrag von sukram » 12.02.2011 15:35:01

Die Benutzer existieren bereits am System. Ist Deine Beschreibung gedacht wenn neue Benutzer angelegt werden?
Wo macht man denn Einstellungen die für alle Benutzer gleich gelten, unabhängig von der verwendeten shell wie sh, bsh, bash, usw. ?
Ciao, Markus

Es hat alles seinen Grund...

Benutzeravatar
Tintom
Moderator
Beiträge: 3069
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Link setzen in bash.bashrc

Beitrag von Tintom » 12.02.2011 18:31:21

Wenn Du existierenden Benutzer bearbeiten willst, solltest Du dir usermod anschauen

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Link setzen in bash.bashrc

Beitrag von syssi » 12.02.2011 19:48:30

Für existente User kannst du nachbessern:

Code: Alles auswählen

cd /home
for user in *
do
    ln -s /nfs/sunny/data /home/${user}/Daten
    chown -h $user:$user /home/${user}/Daten
done

Methusalix

Re: Link setzen in bash.bashrc

Beitrag von Methusalix » 12.02.2011 20:31:49

Hallo,
wenn alle schon vorhandenen Benutzer bearbeitet wurden, sollte eine Modifizierung der entsprechenden
Konfigurationsdatei unter /etc/skel/ für alle zukünftigen Benutzer helfen.
Gruß M.

sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

Re: Link setzen in bash.bashrc

Beitrag von sukram » 12.02.2011 23:19:48

Ich habe jetzt durch ausprobieren den Eintrag in /etc/profile vorgenommen und es funktioniert prima.
Jeder Benutzer durchläuft zwangsweise /etc/profile. Wenn der Link bereits existiert wird er nicht noch einmal neu gesetzt. Wird er vom Benutzer aus versehen gelöscht dann wird er beim nächsten Login wieder erzeugt :THX:

Code: Alles auswählen

# Link für alle Benutzer. Verweis auf die NFS-Partition
if [ ! -L "/home/${USER}/Daten" ]; then
    # Control will enter here if the Directory doesn't exist
    ln -s /nfs/sunny/Daten /home/${USER}
fi
Ciao, Markus

Es hat alles seinen Grund...

Antworten