User mount sans fstab

Bonjour,
je veux monter un device distant, //serveur/partage, sur un point de montage /media/mounts/partage.
j’ai les droits sur /media/mounts pour créer le point de montage.
Quand je fais la commande

mount -t cifs -i username=monuser,vers=3.0 //serveur/partage /media/mounts/partage

j’ai l’erreur suivante:

mount.cifs: permission denied: no match for /media/mounts/partage found in /etc/fstab

Par contre, si j’ajoute une entrée dans /etc/fstab, alors ça marche.
Pourquoi? Car je ne veux pas d’entrée dans /etc/fstab.

Qui plus est, je ne peux pas démonter un device que j’ai monter sans utiliser sudo/root. je veux pouvoir démonter mes propres points de montages

salut
le manuel dit
-o user=username
quel ligne ajoutes-tu dans ton /etc/fstab? tu as du -i?

Bonjour , pour faire ce que tu desires , le plus simple est encore de passer par le gestionnaire de fichiers .

Bonjour,

Non, pas pour mount.cifs

OPTIONS
       username=arg|user=arg
              specifies the username to connect as. If this is not given, then the environment variable USER is used.

              Earlier versions of mount.cifs also allowed one to specify the username in a user%password or workgroup/user or workgroup/user%password to allow the password and workgroup to be specified as part
              of  the  username.  Support for those alternate username formats is now deprecated and should no longer be used. Users should use the discrete password= and domain= to specify those values. While
              some versions of the cifs kernel module accept user= as an abbreviation for this option, its use can confuse the standard mount program into thinking that this is a  non-superuser  mount.  It  is
              therefore recommended to use the full username= option name.

       password=arg|pass=arg
              specifies the CIFS password. If this option is not given then the environment variable PASSWD is used. If the password is not specified directly or indirectly via an argument to mount, mount.cifs
              will prompt for a password, unless the guest option is specified.

              Note that a password which contains the delimiter character (i.e. a comma ',') will fail to be parsed correctly on the command line. However, the same password defined in the  PASSWD  environment
              variable or via a credentials file (see below) or entered at the password prompt will be read correctly.

Non car j’ai un script qui a besoin de faire une synchronisation avec un NAS distant, et ce script n’utilise pas root.

Dans mon /etc/fstab j’ai :

//serveur/partage     /media/mounts/serveur/partage cifs    username=monuser,vers=3.0,uid=1000,gid=1000,noexec,nosuid,nodev,noauto,user     0       0

mais justement j’aurais voulu ne pas utiliser de fstab.

Regarde cette page. Un mount se fait avec les droits root (c’est pour ça que ta commande passe dans fstab).
Il va falloir utiliser sudoers ou utiliser un script… (réponse #2) ou encore utiliser noauto dans fstab (réponse #3).

Sudoers pas possible car cela peut etre un autre utilisateur, et sudo n’est activé que pour des commandes spécifiques uniquement. sur mes machiens les utilisateurs n’ont pas accès à sudo autrement.
A quoi bon avoir des users qui ont accès à sudo si c’est pour qu’ils aient tous les droits root.
Quand je veux des droits root, je fait su.
le noauto est déjà mis dans les paramètres.
Monter le partage fonctionne, avec le montage dans fstab, j’ai finit par comprendre que Linux empêche un utilisateur de monter un système de fichier s’il n’a pas les droits administrateur.
Mais par contre pas moyen de le démonter.

Il faudrait investiguer le paquet cifs-utils

Description: utilitaires du système de fichier CIFS
Le protocole SMB/CIFS permet un partage de fichiers multiplate-forme avec
Microsoft Windows, OS X et d’autres systèmes Unix.
Ce paquet fournit des utilitaires pour gérer les montages des systèmes de
fichiers en réseaux CIFS.

mkdir /media/partage
mount –t cifs –o username=,password= \\\chemin /media/partage

oui c’est déjà ce que j’ai fait. ne marche que si tu met le point de montage dans /etc/fstab, et impossible de faire umount sans les droits root

On est bien d’accord, c’est de cela qu’il s’agit. La commande spécifique ici serait donc ton mount.

Je ne vois pas le rapport.

Bizarre cette nécessité de présence dans fstab.
Il y a moyen de créer un service systemctl pour monter directement un device (partition ou autre).
C’est en fait systemctl qui gère les montages système, après lecture de fstab si existant seulement (optionnel).

exemple:

$ systemctl cat home.mount

# /run/systemd/generator/home.mount
# Automatically generated by systemd-fstab-generator

[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
Requires=systemd-fsck@dev-disk-by\x2dlabel-S4_home.service
After=systemd-fsck@dev-disk-by\x2dlabel-S4_home.service
After=blockdev@dev-disk-by\x2dlabel-S4_home.target

[Mount]
What=/dev/disk/by-label/S4_home
Where=/home
Type=ext4

udisksctl était une piste, mais pas sûr que comprend le cfis.
C’est policykit qui gère les droits de montage udisksctl (gestion du montage de clef usb par exemple).

»» Systemd: Mount examples for cifs shares

je crois que oui
mount -t cifs lance mount.cifs de cifs-tools mais les options sont passées par mount
éventuellement tu pourrais essayer directement mount.cifs

Sauf si

sudo mount -t cifs -i username=monuser,vers=3.0 //serveur/partage /media/mounts/partage

marche

comme je l’imaginais tu as des informations supplémentaires ( user,uid,gid…

normalement, tu devrais utiliser l’option users

users  Autoriser tous les utilisateurs à monter et démonter le système de fichiers, même quand un autre utilisateur ordinaire l’a monté. Cette option implique  les  op‐
              tions noexec, nosuid et nodev (sauf s'il y a une surcharge par une option ultérieure, comme dans la ligne d’options users,exec,dev,suid).

mais ça nécessite quand même une entrée dans fstab

Une solution pas très propre serait de mettre un cron root qui lance les droits demandés par un utilisateur normal

Ca marche sans le sudo avec l’entrée dans FSTAB

Après d’autres tests. Avec dans /etc/fstab
//serveur/partage /media/mounts/serveur/partage cifs username=monuser,noauto,users 0 0
Je peux monter et démonter mon partageavec les options uig, gid, noexec,suid,nodev enlevées.
Il me suffit de faire un simple /media/mounts/serveur/partage.
Le soucis c’est que le script est conçu pour pouvoir utiliser d’autres partages, avec d’autres points de montage. ce son des options de lancement. S’il faut avoir systématiquement une entrée dans fstab c’est un vrai problème. Comme @Verner je trouve effectivement cette obligation bizarre.

cette méthode via systemd ne permet pas le protocole SMB1, il faut avoir un protocole supérieur. Ce qui n’est pas un problème car j’utilise le protocole SMB3.

Je vais étudier le sujet présenté par @Verner car cela pourrait faire l’affaire; si ce n’est que cest nettement plus complexe. car mon scripyt va devoir créer le fichier systemd à chaque fois (une fonction peut faire l’affaire mais c’est lourd).

cependant j’ai un doute sur l’utilisation, car créer un fichier pour systemd implique d’avoir les droits superutilisateur, non?

c’ etait a peu pres mon idée de depart en passant par le gestionnaire de fichiers .
Maintenant si c ’ est a placer dans un script , je pense que ca serait la solution , car pas de sudo ni root avec lui .

JE pense qu ’ il prend en charge le montage des systemes de fichiers samba / cifs , puisque justement c ’ est faisable en graphique a partir de tout gestionnaire de fichiers theoriquement , si je ne dis pas de betises .

Dans le pire des cas , un test " a la mano " doit prendre meme pas 5 minutes pour s ’ en assurer .

Un service systemd peut appartenir au user:

création de, soit, à essayer:
~/.config/systemd/user/myNewUnit.service
~/.local/share/systemd/user/myNewUnit.service

systemctl enable --user myNewUnit
systemctl start --user myNewUnit
systemctl status --user myNewUnit

Éventuellement, si besoin: /etc/sudoers.d/sysctl

yourname ALL = NOPASSWD: /bin/systemctl

salut
c’est clairement un danger de sécurité de permettre de monter sans être root
et ça yourname ALL = NOPASSWD: /bin/systemctl c’est franchement la disparition totale des sécurités

peut être une piste autour de fuse/fusermount/sshfs

oui je suis en train de regarder dans cette direction aussi. en tout ça, on peut monter une clef USB tranquille, alors qu’on ne peut rien sécuriser du contenu, alors qu’un accès distant avec user:mot de passe ne peut être correctement réalisé.

EDIT: j’ai regardé, mais sshfs,fusermount c’est pour utiliser des points de montage via SSH. Hors là, j’ai besoin de CIFS. Donc ça ne marche pas pour mon besoin

Au final, j’ai utilisé fstab, et mise umount en commande sudo pour l’utilisateur.
Pas terrible, mais ça fait l’affaire malgré tout.