Fehler "Nur root kann mounten" - aber ich bin root

9

Gestern konnte ich meine smb-Freigabe mit folgendem Befehl mounten:

sudo mount -t cifs //XXXX/share /media/share -o user=Ben,password=XXX,workgroup=WORKGROUP,ip=XXX.XX.XX,uid=ben,gid=ben,rw

Ich weiß nicht, warum es nicht mehr funktioniert. (Möglicherweise vom Systemupdate).

Ich habe folgenden Fehler erhalten:

mount: only root can mount //XXX.XXX.XXX/share on /home/ben/share

Ich weiß nicht, wie ich dieses Problem beheben soll.

Ich habe auch versucht, es mit su - zu mounten, und Smbclient funktioniert.

Ich verwende ArchLinux.

Biege
quelle
1
Was ist die Ausgabe von echo "$EUID"?
Chris Down
1
@ ChrisDown Echo $ EUID = 1000
Ben D
6
@BenD - In diesem Fall werden Sie nicht effektiv als Root ausgeführt. (Offensichtlich sollte dies in der gleichen Umgebung ausgeführt werden, in der Sie versuchen zu mounten, daher sollten Sie sicherstellen, dass sich die Root-Shell erweitert $EUID.)
Chris Down
2
Warum unterscheidet sich der Pfad zwischen der Fehlermeldung und dem Befehl mount? Einer ist /media/shareund der andere ist /home/ben/share. Außerdem empfehle ich die Verwendung /mntfür manuelle oder statische Halterungen. /mediawurde für die HAL / udev-Dämonen erstellt, um dynamisch erstellte Festplatten wie ein USB-Laufwerk zu mounten.
Pinguin359
1
Wie bei @ 9000 erwähnt, sehen Sie, was der ausführliche Modus sagt, indem Sie Ihrem Mount-Befehl ein -v hinzufügen. Überprüfen Sie auch Ihre Systemprotokolle, falls Sie dies noch nicht getan haben, und führen Sie den Befehl aus, um eine tiefere Fehlerbehebung durchzuführen.
Banjer

Antworten:

1

Wenn Sie nicht wissen, was passiert, versuchen Sie es mit strace:

sudo strace -f -F -o mount.strace mount -t cifs //XXXX/share /media/share -o user=Ben,password=XXX,workgroup=WORKGROUP,ip=XXX.XX.XX,uid=ben,gid=ben,rw

Versuchen Sie dann, die Datei mount.stracevon unten nach Fehlern zu durchsuchen. Sie werden offensichtlich einen Grund finden ... Es ist eine schwierige Methode, ich weiß ...

Jan Marek
quelle
0

Da ich keinen richtigen Grund für Ihren Fehler sehe, würde ich eine etwas andere Syntax vorschlagen.

Zuerst erstelle ich ein neues Verzeichnis als root (um sicherzugehen, dass root es erstellen kann) und mounte dann die Freigabe mit etwas anderen Optionen. Hier sind die Befehle (sie sollten alle erfolgreich sein):

sudo mkdir /mnt/smb_share
sudo touch /mnt/smb_share/test && sudo rm -f /mnt/smb_share/test && echo "Permissions are OK"
sudo mount -t cifs //(hostname)/share /mnt/smb_share -o user=Ben,domain=(WORKGROUP)

Der Befehl mount sollte Sie nach Ihrem Samba-Benutzer-Ben-Passwort fragen. Ich habe die Optionen uid und gid entfernt, um etwas "Rauschen" zu entfernen. Mit diesem Befehl sollten Sie überprüfen können, ob Sie die Freigabe bereitstellen können. Natürlich müssen Sie ersetzen:

  • (Hostname) durch den Hostnamen des Freigabeservers. Wenn es mit dem Hostnamen nicht funktioniert, versuchen Sie es erneut, aber verwenden Sie stattdessen die IP-Adresse.
  • (ARBEITSGRUPPE) nach Arbeitsgruppe oder Domäne.

Wenn das funktioniert. Versuchen Sie, die Freigabe der Freigabe aufzuheben und sie nur mit uid erneut bereitzustellen:

sudo umount /mnt/smb_share
sudo mount -t cifs //(hostname)/share /mnt/smb_share -o user=Ben,domain=(WORKGROUP),uid=ben

Wenn dies funktioniert, fügen Sie die GID hinzu, fügen Sie dann die rw hinzu und fügen Sie schließlich die Kennwortoption hinzu (Schritt für Schritt). So können Sie feststellen, welche der Optionen nicht verstanden wird.

Huygens
quelle