Laufwerk als User mounten: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Weitere Möglichkeit hinzugefügt um Laufwerke ohne EIngabe eines root-Passwortes zu mounten.
K →‎Mit Sudo: Warnung eingebaut
 
(19 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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.
Man hat mehrere 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 ==
== Mit Fstab ==
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.
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 {{ic|'''users'''}} hinzugefügt werden.
<pre>
<pre>
//server/freigabe /mnt/usershare cifs user=user,password=password,domain=domain,users 0 0
//server/freigabe /mnt/usershare cifs user=user,password=password,domain=domain,users 0 0
Zeile 11: Zeile 11:
</pre>
</pre>


== Mit sudo ==
== 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.
{{Achtung|Hiermit erlaubt man Usern, nach belieben Dateisysteme einzubinden. Unter anderem können hiermit durch entsprechende Mountoptionen sämtliche Dateiberechtigungen und Schreibschutzmaßnahmen umgangen werden.}}
Da man vermutlich nicht immer {{ic|/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 dem Zeichen {{ic|'''%'''}} wird ein Gruppenname angegeben; so ist es möglich, das Mounten für alle User zu ermöglichen.
 
%users ALL = NOPASSWD: /bin/mount
%users ALL = NOPASSWD: /bin/umount
 
Aufgrund der Sicherheitsproblematik sollte man dies nur machen, wenn man das System alleine benutzt, oder alle Benutzer vertrauenswürdig sind.
 
== Mit Polkit ==
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.
 
Die Standard-Privilegien zum Mounten von Laufwerken sind als „Actions“ im XML-Format gespeichert:
<pre>
<pre>
# visudo
/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy
</pre>
</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.
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.
 
Um die User-Privilegien zum Mounten von Laufwerken anzupassen, kann folgende Datei erzeugt und mit Regeln versehen werden:
<pre>
<pre>
%users ALL = NOPASSWD: /bin/mount
/etc/polkit-1/rules.d/10-udisks.rules
%users ALL = NOPASSWD: /bin/umount
</pre>
</pre>


== In GNOME und KDE ==
<b>1. Beispielregel</b> – Interne und externe LUKS-verschlüsselte Laufwerke dürfen mit normalen User-Privilegien gemountet werden:
Um in KDE und Gnome Laufwerke als User ohne Nachfrage des root-Passworts zu mounten, muss man die Datei als root bearbeiten:
<pre>
<pre>
/usr/share/polkit-1/actions/org.freedesktop.udisks.policy
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>
</pre>
 
<b>2. Beispielregel</b> – Interne Laufwerke dürfen mit normalen User-Privilegien gemountet werden, wenn der User Mitglied in der Gruppe „wheel“ ist:
Man ändert einfach den folgenden Abschnitt von
<pre>
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("wheel"))
    {
      return polkit.Result.YES;
    }
});
</pre>
<b>3. Beispielregel</b> – 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>
<pre>
<action id="org.freedesktop.udisks.filesystem-mount-system-internal">
polkit.addRule(function(action, subject) {
    <description>Mount a system-internal device</description>
  if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("wheel") ||
    <description xml:lang="da">Montér en intern enhed</description>
      action.id == "org.freedesktop.udisks2.filesystem-mount" && subject.isInGroup("wheel") ||
    <message>Authentication is required to mount the device</message>
      action.id == "org.freedesktop.udisks2.encrypted-unlock-system" ||
    <message xml:lang="da">Autorisering er påkrævet for at montere et fil system</message>
      action.id == "org.freedesktop.udisks2.encrypted-unlock")
     <defaults>
     {
      <allow_any>no</allow_any>
      return polkit.Result.YES;
      <allow_inactive>no</allow_inactive>
     }
      <allow_active>auth_admin</allow_active>
});
     </defaults>
  </action>
</pre>
</pre>


auf
== Mit Pmount ==
Eine weitere Möglichkeit ist die Nutzung von {{AUR|pmount}}, einem Wrapper zum Programm [[Mount]]. Mit Pmount können Laufwerke direkt in das Verzeichnis {{ic|/media/}} eingebunden werden. Bei Verwendung von Pmount ist es nicht erforderlich, Einstellungen mit Polkit vorzunehmen oder Sudo zu installieren.
 
Die Handhabung des Programmes ist einfach, da lediglich das zu mountende Verzeichnis anzugeben ist, beispielsweise:
pmount /dev/sdb
Nachdem das Laufwerk nun in {{ic|/media/sdb}} eingehängt ist, steht es als Verzeichnis zur Verfügung. Ein Aushängen des Laufwerkes ist über diesen Befehl möglich:
pumount /media/sdb


<pre>
Pmount unterstützt eine Reihe von Dateisystemen: ''udf, iso9660, vfat, ntfs, hfsplus, hfs, ext3, ext2, ext4, reiserfs, reiser4, xfs, jfs'' und ''omfs''.
<action id="org.freedesktop.udisks.filesystem-mount-system-internal">
 
    <description>Mount a system-internal device</description>
Damit auch NTFS-Laufwerke von Pmount gemountet werden können, wird das Paket {{paket|ntfs-3g}} benötigt.
    <description xml:lang="da">Montér en intern enhed</description>
Ist das Paket {{paket|cryptsetup}} installiert, kann Pmount auch LUKS-verschlüsselte Partitionen auf transparente Weise mounten.
    <message>Authentication is required to mount the device</message>
 
    <message xml:lang="da">Autorisering er påkrævet for at montere et fil system</message>
Weitergehende und ausführliche Informationen kann man den Man-Pages entnehmen:
    <defaults>
man pmount
      <allow_any>no</allow_any>
man pumount
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
</pre>


Nun kann jeder Benutzer Systeminterne Laufwerke (z.B. Festplatten) ohne Eingabe eines root-Passwortes mounten.
[[Kategorie:Hardware]]
[[Kategorie:Hardware]]

Aktuelle Version vom 27. Juli 2021, 10:38 Uhr

Man hat mehrere 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.

Mit 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

Achtung: Hiermit erlaubt man Usern, nach belieben Dateisysteme einzubinden. Unter anderem können hiermit durch entsprechende Mountoptionen sämtliche Dateiberechtigungen und Schreibschutzmaßnahmen umgangen werden.

Da man vermutlich 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 dem Zeichen % wird ein Gruppenname angegeben; so ist es möglich, das Mounten für alle User zu ermöglichen.

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

Aufgrund der Sicherheitsproblematik sollte man dies nur machen, wenn man das System alleine benutzt, oder alle Benutzer vertrauenswürdig sind.

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.

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 Nutzung von pmountAUR, einem Wrapper zum Programm Mount. Mit Pmount können Laufwerke direkt in das Verzeichnis /media/ eingebunden werden. Bei Verwendung von Pmount ist es nicht erforderlich, Einstellungen mit Polkit vorzunehmen oder Sudo zu installieren.

Die Handhabung des Programmes ist einfach, da lediglich das zu mountende Verzeichnis anzugeben ist, beispielsweise:

pmount /dev/sdb

Nachdem das Laufwerk nun in /media/sdb eingehängt ist, steht es als Verzeichnis zur Verfügung. Ein Aushängen des Laufwerkes ist über diesen Befehl möglich:

pumount /media/sdb

Pmount unterstützt eine Reihe von Dateisystemen: udf, iso9660, vfat, ntfs, hfsplus, hfs, ext3, ext2, ext4, reiserfs, reiser4, xfs, jfs und omfs.

Damit auch NTFS-Laufwerke von Pmount gemountet werden können, wird das Paket ntfs-3g benötigt. Ist das Paket cryptsetup installiert, kann Pmount auch LUKS-verschlüsselte Partitionen auf transparente Weise mounten.

Weitergehende und ausführliche Informationen kann man den Man-Pages entnehmen:

man pmount
man pumount