Laufwerk als User mounten: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (→‎Mit Polkit: Gruppe »storage« durch »wheel« ersetzt)
(27 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{unvollständig}}
Man hat verschiedene Möglichkeiten, als normaler User Dateisysteme zu mounten. Dieser Artikel beschreibt das Mounten auf der Shell, da die großen Desktopumgebungen andere Methoden benutzen, die in ihren eigenen Artikeln beschrieben werden.
== Installation ==
Folgende Pakete müssen installierten sein


* dbus
== Als Option in /etc/fstab ==
* hal
Häufig benötigte Dateisysteme können bequem über eine Änderung in [[Fstab|/etc/fstab]] als normaler User eingebunden werden. Dem gewünschten Dateisystem muss nur die Option '''users''' hinzugefügt werden.
<pre>
//server/freigabe /mnt/usershare cifs user=user,password=password,domain=domain,users 0 0
</pre>
Das Mounten erfolgt auf der Shell des normalen Users:
<pre>
$ mount //server/freigabe
</pre>


== Konfiguration ==
== Mit sudo ==
=== Hal als Dienst eintragen ===
Da man sicher nicht immer /etc/fstab für jedes Dateisystem bearbeiten möchte, kann man auch eine Regel für [[sudo]] hinzufügen, damit normale Benutzer ohne Passwort Dateisysteme einbinden können.
Nun muss man Hal als Dienst eintragen unter '''/etc/rc.conf''' in der Zeile:
<pre>
DAEMONS=(syslog-ng network !netfs '''hal''' arch32 crond)
# visudo
</pre>
Nun gilt es, die Regel am Ende der sudoers Datei hinzuzufügen. Mit einem % wird ein Gruppenname angegeben. So ist es möglich, das Mounten für alle User möglich zu machen.
<pre>
%users ALL = NOPASSWD: /bin/mount
%users ALL = NOPASSWD: /bin/umount
</pre>


=== Gruppe eintragen ===
== Mit Polkit ==
Jetzt muss man nur noch sich in die [[Benutzer und Gruppen#Gruppen|Gruppe]] optical und storage eintragen.
Ein differenzierteres Einstellen der User-Privilegien ist mit dem Autorisierungsmanager [https://wiki.archlinux.org/index.php/Polkit Polkit] möglich. Bei Desktopumgebungen wie Gnome, KDE, Xfce etc. ist Polkit von vornherein integriert. Falls erforderlich, kann [https://www.archlinux.de/?page=Packages&architecture=&search=polkit polkit] aus den Paketquellen nachinstalliert werden.
gpasswd -a USER optical,storage


== Session anpassen ==
Die Standard-Privilegien zum Mounten von Laufwerken sind als „Actions“ im XML-Format gespeichert:
Sollte das Mounten von eingesteckten USB-Sticks oder externen Platten nicht mehr funktionieren, könnte dies am neuen Verhalten von HAL liegen. Um derlei Hardware wieder Mounten zu können, muss die Datei „/etc/pam.d/login“ um folgende Zeile erweitert werden:
<pre>
/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
</pre>
Mit Hilfe des Polkit-Explorer kann man sich eine gut lesbare Übersicht über die bestehenden Privilegien verschaffen.
Der {{AUR|polkit-explorer}} ist im [[Arch User Repository]] verfügbar.
{{Hinweis|Ein direktes Ändern von Polkit-Aktionen in der XML-Datei via Texteditor ist zwar prinzipiell möglich, aber in der Systemarchitektur von Polkit weder vorgesehen noch angeraten. Manuell vorgenommene Änderungen würden bei einem Update ohnehin wieder überschrieben werden.}}
Anpassungen von Polkit-Regeln werden in JavaScript verfasst und können im Verzeichnis {{ic|/etc/polkit-1/rules.d/}} dauerhaft hinterlegt werden.


session                    optional                  pam_ck_connector
=== Laufwerke als User mounten ===
Um die User-Privilegien zum Mounten von Laufwerken anzupassen, kann folgende Datei erzeugt und mit Regeln versehen werden:
<pre>
/etc/polkit-1/rules.d/10-udisks.rules
</pre>


In der .xinitrc“ im home-Verzeichnisses des jeweiligen Users muss der Aufruf des Fenstermanagers mittels „ck-launch-session“ geschehen. Statt zum Beispiel …
1. Beispielregel – Interne und externe LUKS-verschlüsselte Laufwerke dürfen mit normalen User-Privilegien gemountet werden:
<pre>
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.udisks2.encrypted-unlock-system" ||
      action.id == "org.freedesktop.udisks2.encrypted-unlock")
    {
      return polkit.Result.YES;
    }
});
</pre>
2. Beispielregel – Interne Laufwerke dürfen mit normalen User-Privilegien gemountet werden, wenn der User Mitglied in der Gruppe „wheel“ ist:
<pre>
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("wheel"))
    {
      return polkit.Result.YES;
    }
});
</pre>
3. Beispielregel – Interne und externe Laufwerke dürfen mit normalen User-Privilegien gemountet werden, wenn der User Mitglied in der Gruppe „wheel“ ist; LUKS-Laufwerke dürfen von allen Usern ohne Root-Berechtigung gemountet werden:
<pre>
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("wheel") ||
      action.id == "org.freedesktop.udisks2.filesystem-mount" && subject.isInGroup("wheel") ||
      action.id == "org.freedesktop.udisks2.encrypted-unlock-system" ||
      action.id == "org.freedesktop.udisks2.encrypted-unlock")
    {
      return polkit.Result.YES;
    }
});
</pre>


  exec openbox-session
== Mit pmount ==
Eine weitere Möglichkeit ist die Benutzung von pmount. Mit diesem Programm ist es nicht mehr nötig Einstellungen an PolicyKit vorzunehmen oder sudo zu installieren. Es ist ein Wrapper um das normale mount-Programm und bindet die Laufwerke direkt in den /media-Ordner ein. Man installiert es aus dem AUR mit
  yaourt -S pmount


das Openbox startet, muss dann
Die Benutzung ist denkbar einfach: Um einen z.B. das Laufwerk sdb zu mounten, tippt man lediglich
pmount /dev/sdb


  exec ck-launch-session openbox-session
Damit ist das Laufwerk in /media/sdb eingehängt und kann über diesen Ordner benutzt werden. Das Aushängen ist ebenfalls einfach:
  pumount /media/sdb


… verwendet werden. Bei Verwendung der „großen Desktopmanager“ wie [[GNOME]] und [[KDE]] sollte dies nicht nötig sein.
pmount unterstützt alle wichtigen Dateisysteme und enthält zusätzlich einen LUKS-kompatiblen Wrapper um cryptsetup, sodass es auch möglich ist verschlüsselte Laufwerke einzuhängen, ohne sie erst seperat zu entschlüsseln.
 
Informationen zur weiteren Benutzung und zu verschiedenen Optionen kann man man den Manpages entnehmen:
man pmount
man pumount


[[Kategorie:Hardware]]
[[Kategorie:Hardware]]
[[Kategorie:Unvollständig]]

Version vom 20. Juni 2015, 11:39 Uhr

Man hat verschiedene Möglichkeiten, als normaler User Dateisysteme zu mounten. Dieser Artikel beschreibt das Mounten auf der Shell, da die großen Desktopumgebungen andere Methoden benutzen, die in ihren eigenen Artikeln beschrieben werden.

Als Option in /etc/fstab

Häufig benötigte Dateisysteme können bequem über eine Änderung in /etc/fstab als normaler User eingebunden werden. Dem gewünschten Dateisystem muss nur die Option users hinzugefügt werden.

//server/freigabe /mnt/usershare cifs user=user,password=password,domain=domain,users 0 0

Das Mounten erfolgt auf der Shell des normalen Users:

$ mount //server/freigabe

Mit sudo

Da man sicher nicht immer /etc/fstab für jedes Dateisystem bearbeiten möchte, kann man auch eine Regel für sudo hinzufügen, damit normale Benutzer ohne Passwort Dateisysteme einbinden können.

# visudo

Nun gilt es, die Regel am Ende der sudoers Datei hinzuzufügen. Mit einem % wird ein Gruppenname angegeben. So ist es möglich, das Mounten für alle User möglich zu machen.

%users ALL = NOPASSWD: /bin/mount
%users ALL = NOPASSWD: /bin/umount

Mit Polkit

Ein differenzierteres Einstellen der User-Privilegien ist mit dem Autorisierungsmanager Polkit möglich. Bei Desktopumgebungen wie Gnome, KDE, Xfce etc. ist Polkit von vornherein integriert. Falls erforderlich, kann polkit aus den Paketquellen nachinstalliert werden.

Die Standard-Privilegien zum Mounten von Laufwerken sind als „Actions“ im XML-Format gespeichert:

/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy

Mit Hilfe des Polkit-Explorer kann man sich eine gut lesbare Übersicht über die bestehenden Privilegien verschaffen. Der polkit-explorerAUR ist im Arch User Repository verfügbar.

Hinweis: Ein direktes Ändern von Polkit-Aktionen in der XML-Datei via Texteditor ist zwar prinzipiell möglich, aber in der Systemarchitektur von Polkit weder vorgesehen noch angeraten. Manuell vorgenommene Änderungen würden bei einem Update ohnehin wieder überschrieben werden.

Anpassungen von Polkit-Regeln werden in JavaScript verfasst und können im Verzeichnis /etc/polkit-1/rules.d/ dauerhaft hinterlegt werden.

Laufwerke als User mounten

Um die User-Privilegien zum Mounten von Laufwerken anzupassen, kann folgende Datei erzeugt und mit Regeln versehen werden:

/etc/polkit-1/rules.d/10-udisks.rules

1. Beispielregel – Interne und externe LUKS-verschlüsselte Laufwerke dürfen mit normalen User-Privilegien gemountet werden:

polkit.addRule(function(action, subject) {
   if (action.id == "org.freedesktop.udisks2.encrypted-unlock-system" ||
       action.id == "org.freedesktop.udisks2.encrypted-unlock")
    {
       return polkit.Result.YES;
    }
});

2. Beispielregel – Interne Laufwerke dürfen mit normalen User-Privilegien gemountet werden, wenn der User Mitglied in der Gruppe „wheel“ ist:

polkit.addRule(function(action, subject) {
   if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("wheel")) 
    {
       return polkit.Result.YES;
    }
});

3. Beispielregel – Interne und externe Laufwerke dürfen mit normalen User-Privilegien gemountet werden, wenn der User Mitglied in der Gruppe „wheel“ ist; LUKS-Laufwerke dürfen von allen Usern ohne Root-Berechtigung gemountet werden:

polkit.addRule(function(action, subject) {
   if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("wheel") ||
       action.id == "org.freedesktop.udisks2.filesystem-mount" && subject.isInGroup("wheel") ||
       action.id == "org.freedesktop.udisks2.encrypted-unlock-system" ||
       action.id == "org.freedesktop.udisks2.encrypted-unlock")
    {
       return polkit.Result.YES;
    }
});

Mit pmount

Eine weitere Möglichkeit ist die Benutzung von pmount. Mit diesem Programm ist es nicht mehr nötig Einstellungen an PolicyKit vorzunehmen oder sudo zu installieren. Es ist ein Wrapper um das normale mount-Programm und bindet die Laufwerke direkt in den /media-Ordner ein. Man installiert es aus dem AUR mit

yaourt -S pmount

Die Benutzung ist denkbar einfach: Um einen z.B. das Laufwerk sdb zu mounten, tippt man lediglich

pmount /dev/sdb

Damit ist das Laufwerk in /media/sdb eingehängt und kann über diesen Ordner benutzt werden. Das Aushängen ist ebenfalls einfach:

pumount /media/sdb

pmount unterstützt alle wichtigen Dateisysteme und enthält zusätzlich einen LUKS-kompatiblen Wrapper um cryptsetup, sodass es auch möglich ist verschlüsselte Laufwerke einzuhängen, ohne sie erst seperat zu entschlüsseln.

Informationen zur weiteren Benutzung und zu verschiedenen Optionen kann man man den Manpages entnehmen:

man pmount
man pumount