Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
laufwerke_mounten_als_benutzer [2017/10/02 13:40] |
laufwerke_mounten_als_benutzer [2017/10/02 13:40] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Allgemein ====== | ||
+ | Das mounten von Laufwerken ist ein sicherheitskritisches Thema. Aus diesem Grund ist es unter FreeBSD standardmäßig nicht möglich als normaler Benutzer Laufwerke zu mounten. | ||
+ | Dieses Verhalten lässt sich jedoch ändern, was speziell für Privatrechner sinnvoll sein kann. | ||
+ | |||
+ | Im Weiteren wird das System so angepasst, dass ein privilegierter Nutzer erhöhte Rechte erlangt und und somit unter anderem optische Datenträger als auch USB-Sticks mounten darf. | ||
+ | |||
+ | ====== Benutzer privilegieren ====== | ||
+ | Ein Benutzer gehört standardmäßig nur der eigenen Gruppe an. | ||
+ | (Die aktuellen Gruppenzugehörigkeiten können im übrigen mit dem Befehl //id// angezeigt werden). | ||
+ | |||
+ | Ist der Benutzer ebenfalls in der Gruppe **wheel** Mitglied so hat er bereits erhöhte Rechte und ist z.B. in der Lage mit dem Befehl //su// **root**-Rechte zu erlangen. Eine andere Stufe der Rechteebenen stellt die Gruppe **operator** dar. | ||
+ | |||
+ | Genauere Informationen zu diesem Thema sind unter [[Benutzer und Gruppen]] abgelegt. | ||
+ | |||
+ | ===== Benutzer zu operator hinzufügen ===== | ||
+ | Die Datei **/etc/group** wird editiert und die Zeile | ||
+ | <code> | ||
+ | operator:*:5:root | ||
+ | </code> | ||
+ | durch den eigenen Benutzer ergänzt. | ||
+ | |||
+ | <code> | ||
+ | operator:*:5:root,benutzername | ||
+ | </code> | ||
+ | |||
+ | Nach dem nächsten Login sollte der Benutzer nun in der Gruppe **operator** sein, was ihm z.B. bereits die Rechte beschert den Rechner herunterzufahren. | ||
+ | |||
+ | ====== Devicerechte anpassen ====== | ||
+ | Als nächstes werden die Rechte der Devices angepasst welche der Benutzer mounten dürfen soll. Hierfür werden die beiden Dateien **/etc/devfs.conf** und **/etc/devfs.rules**, welche das dynamische Device-Dateisystem **devfs** steuern, angepasst. Die zweite Datei muss ggf. erst erstellt werden. | ||
+ | |||
+ | Um Laufwerke zu mounten bedarf der Benutzer Lese- und Schreibrechte auf der entsprechenden Devicenode. Die Laufwerks-Devices gehören standardmäßig **root:operator**. Da der Benutzer bereits der Gruppe **operator** angehört müssen nun nur noch die Rechte für die Gruppe gesetzt werden. | ||
+ | |||
+ | ===== /etc/devfs.conf ===== | ||
+ | Die Datei **/etc/devfs.conf** steuert die Devicenodes in **/dev** welche zur Bootzeit erzeugt werden. Hierunter fallen im Allgemeinen alle Festplatten sowie die optischen Laufwerke. | ||
+ | |||
+ | Um dem Benutzer zu erlauben das optische Laufwerk zu mounten wird die Datei um folgende Zeile erweitert: | ||
+ | |||
+ | Für ATAP-Laufwerke: | ||
+ | <code> | ||
+ | perm acd0 0660 | ||
+ | </code> | ||
+ | |||
+ | Für SCSI-Laufwerke (oder bei Verwendung von atapicam zusätzlich zur obigen Zeile). | ||
+ | <code> | ||
+ | perm cd0 0660 | ||
+ | </code> | ||
+ | |||
+ | Beim nächsten Start wird die Devicenode des ersten optischen Laufwerks die richtigen Rechte haben. | ||
+ | |||
+ | ===== /etc/devfs.rules ===== | ||
+ | Die Datei **/etc/devfs.rules** steuert wie mit dynamisch erzeugten Devicenodes zu verfahren ist. Dynamische Devicenodes werden zur Laufzeit erzeugt, z.B. beim anstecken eines USB-Sticks. Es ist im weiteren zu wissen, dass USB-Sticks als SCSI-Laufwerk erkannt werden und demnach eine Devicenode im Bereich **/dev/daX** zugewiesen bekommen. | ||
+ | |||
+ | ==== Die Datei anlegen/erweitern ==== | ||
+ | Um dem Benutzer zu erlauben SCSI-Laufwerke zu mounten wird die Datei um folgende Zeilen erweitert: | ||
+ | <code> | ||
+ | [localrules=5] | ||
+ | add path 'da*' mode 0660 group operator | ||
+ | </code> | ||
+ | |||
+ | Hier wird festgelegt, dass neu erzeugte Devicenodes mit dem Namen **da*** (also SCSI-Laufwerke) mit den Rechten **0660** und der Gruppenzugehörigkeit **operator** angelegt werden sollen. | ||
+ | |||
+ | Eine Besonderheit ist zu beachten. Falls echte SCSI-Festplatten verbaut sind welche hiervon ausgenommen werden sollen. Sind z.B zwei Festplatten verbeut die bereits **da0** und **da1** belegen muss die entsprechende Zeile wie folgt aussehen: | ||
+ | <code> | ||
+ | add path 'da[2-9]*' mode 0660 group operator | ||
+ | </code> | ||
+ | |||
+ | Alle nun dynamisch erzeugten Devicenodes des Typs **daX** sollten nun die richtigen Rechte haben. | ||
+ | |||
+ | ==== Das Ruleset aktivieren ==== | ||
+ | Damit die eben angelegte Rule auch befolgt wird muss die Datei **/etc/rc.conf** noch um folgende Zeile ergänzt werden. | ||
+ | <code> | ||
+ | devfs_system_ruleset="localrules" | ||
+ | </code> | ||
+ | |||
+ | Nach dem nächsten Start des Systems sind die Änderungen aktiv. | ||
+ | |||
+ | ====== usermount erlauben ====== | ||
+ | Zuletzt muss noch die prinzipielle Erlaubnis zum mounten als Benutzer gesetzt werden. Hierfür wird die **sysctl**-Variable **vfs.usermount** auf **1** gesetzt. | ||
+ | |||
+ | Hierzu wird die Datei **/etc/sysctl.conf** um folgende Zeile ergänzt: | ||
+ | <code> | ||
+ | vfs.usermount=1 | ||
+ | </code> | ||
+ | |||
+ | Nach dem nächsten Start wird die Einstellung übernommen. Im laufenden Betrieb kann die Variable auch durch das Programm **sysctl** gesetzt werden. | ||
+ | |||
+ | ====== Mountpoint anlegen ====== | ||
+ | Ein Mountpoint in welchen ein Benutzer ein Laufwerk einhängt muss dem Benutzer mit kompletten Rechten gehören. Die Gruppenzugehörigkeit genügt hier nicht. Daher ist auch die Verwendung von **/mnt** für den Usermount nicht möglich. | ||
+ | |||
+ | Es sollte nun irgendwo im System ein Mountpoint angelegt werden der dem Benutzer gehört. Im hiesigen Beispiel wird ein Ordner **mount** im Heimatverzeichnis des Benutzers angelegt. | ||
+ | |||
+ | Hierfür wird als Benutzer im Heimatverzeichnis einfach ein Ordner angelegt. | ||
+ | <code> | ||
+ | cd ~ | ||
+ | % mkdir mount | ||
+ | </code> | ||
+ | |||
+ | ====== USB-Stick mounten ====== | ||
+ | Nun kann mit folgendem Aufruf ein USB-Stick welcher als **da0** erkannt wurde und mit FAT32 formatiert ist gemountet werden. | ||
+ | <code> | ||
+ | % mount_msdosfs /dev/da0 /home/benutzername/mount | ||
+ | </code> | ||
+ | |||
+ | Wichtig ist, dass die Laufwerke unbedingt ausgeworfen werden müssen bevor sie abgezogen werden!! | ||
+ | |||
+ | <code> | ||
+ | % umount /home/benutzername/mount | ||
+ | </code> | ||
+ | |||
+ | ====== optisches Laufwerk mounten ====== | ||
+ | Um das optische Laufwerk zu mounten wird gleich vorgegangen. Da es sich hier nicht um ein FAT32-Dateisystem handelt sondern um ein ISO9660-Dateisystem sieht der Befehl für ein ATAPI-Laufwerk wie folgt aus. | ||
+ | <code> | ||
+ | % mount_cd9660 /dev/acd0 /home/benutzername/mount | ||
+ | </code> | ||
+ | |||
+ | Ausgeworfen wird logischerweise wie folgt: | ||
+ | <code> | ||
+ | % umount /home/benutzername/mount | ||
+ | </code> | ||