» »

Mountanje SMB share-a na Linux

Mountanje SMB share-a na Linux

Bici ::

Mountanje SMB share-a na Linux

Naredim folder "shramba" v svojem home direktoriju, ki ima spodnje pravice.
drwxr-xr-x. 1 janez janez 0 Jan 21 22:48 shramba


Potem poženem tole
mount -t cifs -o username=janez,password=******* //192.168.1.201/data /home/janez/shramba

In dobim napako
This program is not installed setuid root - "user" CIFS mounts not supported.


Če poženem z "sudo" je težava da je potem da ima mapa "shramba" za ownership root userja, kar pomeni da vanjo ne morem pisat in je neuporabno.
sudo mount -t cifs -o username=janez,password==******* //192.168.1.201/data /home/janez/shramba


drwxr-xr-x. 2 root root 0 Sep 8 2023 shramba


Kaj mi je storiti ?
Zakaj ima Linux to tako nepotrebno komplicirano ?
  • spremenil: Bici ()

Bici ::

If you are mounting the CIFS share as root, you cannot write as normal user.
If your Linux Distribution and its kernel are recent enough that you could mount the network share as a normal user (but under a folder that the user own), you will have the proper credentials to write file (e.g. mount the shared folder somewhere under your home directory, like for instance $HOME/netshare/. Obviously, you would need to create the folder before mounting it).


Fedora 41 ni dovolj nova al kaj je fora ?

HrščPščvnk ::

s-bit bo rešil tvojo težavo.
sudo chmod u+s /bin/mount /bin/umount /usr/sbin/mount.cifs
Hrošč Puščavnik, ogrožena živalska vrsta iz Tivolija.

Grimnir3 ::

sudo mount -t cifs -o username=janez,password==*******,uid=1000,gid=1000 //192.168.1.201/data /home/janez/shramba


V tvoj ukaz dodaj uid in gid, 1000 je za prvega userja na sistemu, verjetno bo držalo za tvoj primer, če ne pa preveri z id -u in id -g prave vrednosti za svojega userja.

Zgodovina sprememb…

  • spremenil: Grimnir3 ()

Grimnir3 ::

HrščPščvnk je izjavil:

s-bit bo rešil tvojo težavo.

sudo chmod u+s /bin/mount /bin/umount /usr/sbin/mount.cifs


A ni to mal varnostno sporno ?

Bici ::

Deluje, hvala.

Grimnir3 je izjavil:

sudo mount -t cifs -o username=janez,password==*******,uid=1000,gid=1000 //192.168.1.201/data /home/janez/shramba


V tvoj ukaz dodaj uid in gid, 1000 je za prvega userja na sistemu, verjetno bo držalo za tvoj primer, če ne pa preveri z id -u in id -g prave vrednosti za svojega userja.


HrščPščvnk je izjavil:

s-bit bo rešil tvojo težavo.

sudo chmod u+s /bin/mount /bin/umount /usr/sbin/mount.cifs


Kaj naj bi to naredilo oz. zakaj naj bi rešilo težavo ?

Zgodovina sprememb…

  • spremenil: Bici ()

Ales ::

Grimnir3 je izjavil:

HrščPščvnk je izjavil:

s-bit bo rešil tvojo težavo.

sudo chmod u+s /bin/mount /bin/umount /usr/sbin/mount.cifs


A ni to mal varnostno sporno ?

Seveda je. ;((

Bici ::

Ales je izjavil:

Grimnir3 je izjavil:

HrščPščvnk je izjavil:

s-bit bo rešil tvojo težavo.

sudo chmod u+s /bin/mount /bin/umount /usr/sbin/mount.cifs


A ni to mal varnostno sporno ?

Seveda je. ;((


Mi lahko razložiš zakaj to ni OK? In kaj sploh naredi ta ukaz ?

In ali je rešitev od Grimnir3 pa OK ?

Zgodovina sprememb…

  • spremenil: Bici ()

Ales ::

Rešitev od @Grimnir3 je OK.

Z njegovim ukazom root uporabnik ustvari ta en točno določen mount in nad njim dodeli pravice navadnemu uporabniku.

Ti si že šel v pravi smeri, skoraj vse si prav naredil. Manjkalo je le to, da root (preko sudo) z definiranjem "uid=1000,gid=1000" dodeli pravice tvojemu uporabniku (in skupini). Kot je Grimnir3 rekel, "1000" je običajno prvi uporabnik na sistemu, lahko bi bil uid oz. gid za tvojega uporabnika tudi kak drug. Samo to je manjkalo.

Glede predloga @HrščPščvnk sem se morda prehitro skremžil, ker ob setuid bitih dobim ošpice in sem spregledal, da tega ni izvajal nad tvojo mapo. Kakšne pravice imajo na tvojem sistemu /bin/mount /bin/umount /usr/sbin/mount.cifs ?

Preveri z ukazom "ls -l /bin/mount /bin/umount /usr/sbin/mount.cifs"

Drugače lahko o setuid mogoče za začetek prebereš kar tu.

Bici ::

$ ls -l /bin/mount /bin/umount /usr/sbin/mount.cifs
-rwsr-xr-x. 1 root root 51648 Jan 15 01:00 /bin/mount
-rwsr-xr-x. 1 root root 39360 Jan 15 01:00 /bin/umount
-rwxr-xr-x. 1 root root 58096 Oct  8 02:00 /usr/sbin/mount.cifs


Ti si že šel v pravi smeri, skoraj vse si prav naredil. Manjkalo je le to, da root (preko sudo) z definiranjem "uid=1000,gid=1000" dodeli pravice tvojemu uporabniku (in skupini). Kot je Grimnir3 rekel, "1000" je običajno prvi uporabnik na sistemu, lahko bi bil uid oz. gid za tvojega uporabnika tudi kak drug. Samo to je manjkalo.


Zmedlo me je tole spodaj, kjer je napisano kot da na novejših linux distrotih lahko mountaš SMB share kot navaden user.

If you are mounting the CIFS share as root, you cannot write as normal user.
If your Linux Distribution and its kernel are recent enough that you could mount the network share as a normal user (but under a folder that the user own), you will have the proper credentials to write file (e.g. mount the shared folder somewhere under your home directory, like for instance $HOME/netshare/. Obviously, you would need to create the folder before mounting it).


No očitno to ne deluje.
Oziroma mogoče kaka distribucija privzeto nastavi setuid bit na one ukaze ali je še kaka tretja opcija da naj bi to delovalo to je napisano ?

In hvala @Ales

Zgodovina sprememb…

  • spremenil: Bici ()

Ales ::

Fedora kot kaže namenoma ne nastavlja setuid bit pri /usr/sbin/mount.cifs (paket cifs-utils). Tu je s tem povezan bug report, sedmi komentar (med drugim omeni, da imajo v Gnome drugače rešeno mountanje).

Arch recimo nastavi setuid bit tudi pri /usr/sbin/mount.cifs, tako za uporabnika kot za skupino:
-rwsr-sr-x 1 root root 52032 okt  9 08:12 /usr/sbin/mount.cifs

To včasih ni bilo tako, spremenili so.

To je še relevantno, iz "man mount.cifs":

"This command may be used only by root, unless installed setuid, in which case the noexec and nosuid mount flags are enabled. When installed as a setuid program, the program follows the conventions set forth by the mount program for user mounts, with the added restriction that users must be able to chdir() into the mountpoint prior to the mount in order to be able to mount onto it."

Zgodovina sprememb…

  • spremenil: Ales ()

Bici ::

Jaz uprabljam KDE, ker gnome je milorečeno čuden.
Na KDE sicer lahko dostopam do SMD share-a brez problema in tudi berem ter pišem podatke. Problem pa je da ko imam share odprt v Dolphin-u, nikoli ne vem kateri program bo lahko odprl datoteko na share-u in kateri ne. Tako, da potem je vse skupaj precej neuporabno.

Kot gledam naj bi bil KDE ekvivalent kioFuse. Moram še malo pogledat. Verjetno pa rabi aplikacija uporabljat prave API-je in če jih ne, nimaš kaj narediti. Iz tega stališča je mountanje SMB sharea še vedno najbolj transparentno in enostavno.

Bici ::

Škoda ker KDE po defaultu mounta ta SMB kr nekam u 3 pm... Če bi mountal direktno v home profil in pokazal še v GUI vmesniku pod mrežna mesta sploh ne bi bilo potrebe po ročnem mountanju.
Tako pa je skrito v
/run/user/1000/kio-fuse-<random>/smb/<user>@<hostname>


Škoda.