ubuntuusers.de

Skript nach auto-login, Befehle im Skript erfordern teils root

Status: Ungelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

riot_snyder

Anmeldungsdatum:
2. Juli 2008

Beiträge: 28

Wohnort: NRW

Bin gerade dabei, meinen HTPC aufzusetzen.

Als Unterbau dient 12.04, auto-login ist aktiviert. In dem PC befinden sich mehrere Platten die ein mit LUKS verschlüsseltes RAID darstellen.

Jetzt möchte ich folgendes tun nachdem das System hochgefahren und sich automatisch angemeldet hat:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

# Ist Stick gemountet?
# Falls ja -> crypto-raid mounten & xbmc starten
# Falls nein -> tue nix

if [ -e /media/Stick/key.file ]
  then
    cryptsetup luksOpen --key-file=/media/Stick/key.file /dev/mdX RAID &&
    mount -t xfs /dev/mapper/RAID /media/RAID &&
    ln -s /media/RAID/.xbmc /home/xbmc/.xbmc &&
    ln -s /media/RAID/$Ordner1 /media/Freigaben/$Ordner1 &&
    ln -s /media/RAID/$Ordner2 /media/Freigaben/$Ordner2 &&
    ln -s /media/RAID/$Ordner3 /media/Freigaben/$Ordner3 &&
    umount /media/Stick &&
    service smbd restart &&
    xbmc & exit
fi
exit

/media/Freigaben ist ein Samba-Share, daher der restart des Samba-Servers

Ziel des Skripts soll sein, dass wenn der richtige Stick beim einschalten angesteckt sind, wird das System gebootet und direkt das xbmc gestartet was mir fernsehen ermöglicht, meine Musik zu hören etc. Fehlt der Stick, soll in ein normales Ubuntu gebootet werden und kein Hinweis darauf vorliegen, was sich auf dem Raid befindet. Daher soll auch die xbmc-Datenbank & Konfiguration auf dem Raid liegen.

Folgende Einfälle sind mir selbst bereits gekommen: - Skript nach /etc/init.d: Doofe Idee, da Start des xbmc so nicht klappt - Einrichtung unter "Startprogramme": ebenfalls doof, da das Skript dann ja mit den Rechten des angemeldeten Users läuft

cryptsetup, mount, umount & service sollen/müssen ja mit root-rechten erfolgen, der Rest aber eben nicht.

Zum herunterfahren habe ich ein Skript unter /etc/init.d was die Symlinks stoppt, das Raid umounten und anschließend mit cryptsetup luksClose schließt. Das stellt soweit ja kein Problem dar.

Auf jeden Fall bin ich jetzt für Ideen offen, wie ich mein Skript gestalten kann.

u1000

Anmeldungsdatum:
2. Oktober 2011

Beiträge: 1850

Script in die rc.local aufnehmen ?

Viele Grüße u1000

Vibaf

Ehemaliger

Anmeldungsdatum:
27. Dezember 2007

Beiträge: 3046

Du könntest zwei Skripte laufen lassen. Eins mit root-Rechten und das, was du jetzt auch hast. Und die beiden Kommunizieren mit einander.

Das Skript mit Root-Rechten wartet einfach bis in einer Datei unter z.B. /tmp irgendwas steht und führt dementsprechende Aktionen aus.

Oder du trägst das "service"-Programm in die sudoers-config so ein, dass dein Account kein Passwort mehr eingeben muss, wenn du es mit sudo aufrufst. Das ist aber die unsinnigste und vor allem unsicherste Methode, die mir grad so einfällt. 😬

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Skript nach /etc/init.d: Doofe Idee, da Start des xbmc so nicht klappt

Warum klappt das denn nicht? Muss das mit einem normalen Benutzer ausgeführt werden?

riot_snyder

(Themenstarter)

Anmeldungsdatum:
2. Juli 2008

Beiträge: 28

Wohnort: NRW

@u1000: rc.local: Geht nicht, da das XBMC ja nur gestartet werden soll, wenn alle vorherigen Schritte erfolgreich verliefen. rc.local funktioniert aber nur bei Programmen ohne GUI.

@Vibaf: Das System hat autologin... da erübrigt sich fast jede andere Frage nach Sicherheit ☺ Und solange das verschlüsselte Raid nicht gemountet ist, ist auf dem System auf nix kritisches zu finden. Private Daten etc liegen auf aufm Laptop/PC/Owncloud und sind selbstverständlich komplett verschlüsselt mit ner ordentlichen Passphrase.

Mein XMBC soll aber möglichst einfach zu starten und zu bedienen sein, ich muss einen recht hohen WAF erreichen

@Doc_Symbiosis: XBMC ist ein grafisches Programm, die versch. runlevel unterscheiden afaik bei Ubuntu aber nicht, ob bereits ein X-Server läuft und ob man angemeldet ist

Vibaf

Ehemaliger

Anmeldungsdatum:
27. Dezember 2007

Beiträge: 3046

riot_snyder schrieb:

@Vibaf: Das System hat autologin... da erübrigt sich fast jede andere Frage nach Sicherheit ☺ Und solange das verschlüsselte Raid nicht gemountet ist, ist auf dem System auf nix kritisches zu finden. Private Daten etc liegen auf aufm Laptop/PC/Owncloud und sind selbstverständlich komplett verschlüsselt mit ner ordentlichen Passphrase.

Mein XMBC soll aber möglichst einfach zu starten und zu bedienen sein, ich muss einen recht hohen WAF erreichen

Das mit dem WAF ist gut 😀 kannte ich noch nicht.

Also wenn dir die Sicherheit unwichtig ist, dann würde dich dieser Befehl eventuell zufrieden stellen:

1
echo "$USER ALL=NOPASSWD: /usr/sbin/service" | sudo tee -a /etc/sudoers

Im deinem Skript musst du die Zeile mit dem service allerdings noch in ein

1
sudo service smbd restart

abändern.

Für alle anderen, die über diesen Thread stolpern, ist das absolut nicht empfehlenswert. ☺

ExcitedSpoon

Avatar von ExcitedSpoon

Anmeldungsdatum:
17. Juli 2010

Beiträge: 226

Wohnort: /home/berlin

Vibaf schrieb:

1
echo "$USER ALL=NOPASSWD: /usr/sbin/service" | sudo tee -a /etc/sudoers

So ist das ganz böse. Wenn dann mit visudo die /etc/sudoers bearbeiten. visudo legt eine temporäre Kopie der /etc/sudoers an, auf welcher man die Änderungen vollzieht und validiert die Änderungen, bevor /etc/sudoers überschrieben wird. Wenn du visudo umgehst, kanns passieren, dass du dich im schlimmsten Fall aus dem System aussperrst, falls du Murks in die Datei schreibst (sowas verhindert visudo nämlich).

Wiki-Artikel zu visudo: http://wiki.ubuntuusers.de/sudo/Konfiguration?highlight=visudo#Einstellungen

riot_snyder

(Themenstarter)

Anmeldungsdatum:
2. Juli 2008

Beiträge: 28

Wohnort: NRW

Jetzt ist's zu spät ^^

Werde die Raid-Platten erst morgen umstöpseln und dass Ganze dann mal testen, wenn's geklappt hat, kann ich den Thread als gelöst markieren.

Allen Beteiligten aber schonmal Danke für die extrem schnelle Hilfe!

Vibaf

Ehemaliger

Anmeldungsdatum:
27. Dezember 2007

Beiträge: 3046

Funktionieren sollte das so, da ich es bei mir auch schon so ausprobiert habe. ☺

Ansonsten kann man das ganze mit visudo ja mal überprüfen. ☺

riot_snyder

(Themenstarter)

Anmeldungsdatum:
2. Juli 2008

Beiträge: 28

Wohnort: NRW

Hmm, jetzt spackt mdadm rum und will mein Raid 5 nicht erkennen -.-

Falls jemand von euch Vorschläge hat, der Thread ist hier zu finden: http://forum.ubuntuusers.de/topic/raid-umzug-in-neuen-pc-klappt-nur-teilweise/

Antworten |