Comment monter un partage CIFS?

56

J'utilise Ubuntu 11.10 et j'essaie de monter un serveur Freenas. Le serveur est configuré pour partager dans cifs et nfs sans succès.

J'ai essayé smbmount //192.168.1.### /mnt/

Je ne suis pas nouveau sur Ubuntu, mais je ne suis pas près d'un utilisateur expérimenté, alors je préférerais une option d'interface graphique si disponible.

Comment monter un partage cifs dans 11.10?

    
posée KYLE 03.02.2012 - 07:58
la source

8 réponses

69

Il y a pyNeighborhood qui est une interface pour monter des partages de samba et disponible dans le centre de logiciels à télécharger.

Il y a un bon article situé ici sur la façon de le configurer et de l'utiliser.

Installez d'abord cifs utils

sudo apt-get install cifs-utils

Sinon, la commande de terminal de base est la suivante:

mount -t cifs -o username=USERNAME,password=PASSWD //192.168.1.88/shares /mnt/share

Si vous souhaitez voir votre montage dans Nautilus, il serait bon de créer d'abord un sous-dossier dans / media / USERNAME / par exemple:

mkdir /media/paul/cifsShare

également, le mot de passe peut être envoyé dans la commande mount par exemple (montrera également les modes de fichier / dossier):

sudo mount -t cifs //nas-server/cifsShare /media/paul/cifsShare -o username=paulOnNAS,iocharset=utf8,file_mode=0777,dir_mode=0777,soft,user,noperm

Dans ce cas, il vous sera demandé le mot de passe (en fait pour 2 mots de passe) au moment du montage.

Lisez la documentation de Samba ici pour savoir comment procéder et configurez-la correctement pour la monter sur démarrer etc.

    
réponse donnée map7 03.02.2012 - 08:33
la source
9

C'est comme le dit map7, mais si vous ne voulez pas utiliser les permissions root à chaque fois que vous modifiez un fichier sur le disque, vous devrez monter dans un dossier utilisateur et vous assurer que le gid et le uid sont définis à votre nom d'utilisateur.

La commande les définissant:

mount -t cifs -o username=USERNAME,password=PASSWD,uid=$USER,gid=$USER //192.168.1.88/shares ~/mnt/share

Notez que le dossier mnt a été créé dans ~/mnt/share au lieu de /mnt/share .

Vous pouvez également ignorer mot de passe = PASSWD si vous souhaitez qu’il vous invite au lieu de l’avoir dans la commande, qui est potentiellement stockée dans l’historique de votre shell:

mount -t cifs -o username=USERNAME,uid=$USER,gid=$USER //192.168.1.88/shares ~/mnt/share
    
réponse donnée binamenator 21.12.2016 - 15:37
la source
4

1) Mes partages de samba dans Caja (l'explorateur ubuntu 16.04) en tant que

smb://thinkpad/ddrive/

Il s’agit d’un bon test de lithographie, il n’ya pas de problèmes de connexion / chemin.

( Avertissement : si caja vous demande si votre machine Windows contient des identifiants de mot de passe, vous voudrez peut-être passer de WORKGROUP à Domain, ie 'thinkpad'. les identifiants de connexion locaux de votre lecteur doivent faire.)

2) Si cela fonctionne, voici la commande:

sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
  • Assurez-vous au préalable que / mnt / ddrive existe en tant que répertoire vide.
  • Vous avez également froid d'ajouter un ,password=supersecret directement (sans espace) après le nom d'utilisateur =, mais vous pouvez également attendre d'être invité lorsque vous entrez la commande.
réponse donnée Frank Nocke 10.11.2016 - 16:50
la source
3

Je ne suis pas d'accord avec l'affirmation selon laquelle root est toujours nécessaire pour faire disparaître les connexions cifs. C'est vrai, il est toujours nécessaire pour smbmount CLI, mais un gestionnaire de fichiers tel que nautilus a la capacité de monter un partage cifs et il n'est pas nécessaire qu'il soit root.

Je n’utilise pas Gnome, mais Nautilus est toujours installé. Exécutez ceci dans un terminal pour éviter qu'il ne tente de prendre le contrôle du bureau

$ nautilus --no-desktop &

Dans Ubuntu 16.04, le menu d’arborescence de gauche contient "Connect to Server" en bas. Cliquez dessus, la suggestion est de taper "smb: //foo.example.com". smb est un ancien mot pour "cifs", et si vous mettez dans votre serveur et partagez avec smb: // au début, la connexion fonctionne! Je promets. Si votre partage est une chose nommée, il est nécessaire après une barre oblique, "smb: //foo.example.com/myshare".

J'ai utilisé d'autres gestionnaires de fichiers de la même manière. Le protocole doit être "smb: //".

    
réponse donnée pauljohn32 15.07.2016 - 04:59
la source
3
  1. Vous pouvez mettre tous ces détails dans / etc / fstab pour pouvoir installer des répertoires au démarrage du système. Si Windows ou le serveur SMB est sur l'adresse IP 192.168.1.1

    /etc/fstab
    //192.168.1.1/SharedFolder/    /mnt/linux_smb   cifs    username=winuser,password=TopSecret   0    0
    
  2. Créer un répertoire en tant que point de montage Linux

    mkdir /mnt/linux_smb
    chmod 755  /mnt/linux_smb
    
  3. Pour la première fois, montez-le manuellement

    mount -a
    
  4. Des erreurs éventuelles peuvent être trouvées par

    dmesg | tail 
    
réponse donnée Amit Vujic 15.09.2017 - 14:36
la source
2
  1. Il existe un problème spécifique et très frustrant à résoudre lorsque les versions de CIF / SMB ne sont pas compatibles entre Linux et Windows. Dans ce cas, vous pouvez simplement effectuer des modifications mineures dans la ligne fstab en ajoutant "vers = 2.1"

    Donc, si le serveur Windows ou SMB est sur l’adresse IP 192.168.1.1

    /etc/fstab
    
    //192.168.1.1/SharedFolder/   /mnt/linux_smb   cifs   vers=2.1,username=winuser,password=TopSecret   0    0
    
  2. Les étapes 2, 3 et 4 restent les mêmes que dans la réponse précédente.

réponse donnée Amit Vujic 01.11.2017 - 13:30
la source
1

J'ai mis en place un petit script (destiné à Fedora) pour monter le système de fichiers CIFS à partir de la ligne de commande et créer / supprimer un fichier de test. Peut être utile:

#!/bin/bash
# Passes https://www.shellcheck.net/

set -o nounset

# See 
#   https://wiki.samba.org/index.php/Mounting_samba_shares_from_a_unix_client
#   https://access.redhat.com/solutions/448263
# and also
#   https://serverfault.com/questions/309429/mount-cifs-credentials-file-has-special-character

# One needs to run "yum install cifs-utils" to have the kernel module, man page
# and other stuff.

rpm --query cifs-utils > /dev/null

if [[ $? != 0 ]]; then
   echo "Package cifs-utils is not installed -- exiting" >&2
   exit 1
else 
   ver=$(rpm --query cifs-utils)
   echo "Package $ver exists ... good!" >&2
fi

# Where to find credentials? Use the "credential file" approach, which
# we call "authfile". Example content (w/o the leading #) below.
# Make sure there are no spaces around '=' (this is different than
# for "smbclient" which can deal with spaces around '='.)
# ----8<------8<----------------
# username=prisoner
# password=KAR120C
# domain=VILLAGE
# ----8<------8<----------------
# Trailing empty lines will lead to (harmless) error messages
# "Credential formatted incorrectly: (null)"

authfile='/etc/smb.passwd' # Make sure read permissions are restricted!!

# Server to contact.
# In the UNC path, we will use DNS name instead of the (more correct?)
# NetBIOS name.
# mount.cifs manpage says: "To mount using the cifs client, a tcp name
# (rather than netbios name) must be specified for the server."

server_dns=thedome.example.com

# The name of the connecting client, just to be sure (probably useless)

client_nbs=$(hostname --short | tr '[:lower:]' '[:upper]')

if [[ -z $client_nbs ]]; then
  client_nbs=UNKNOWN
fi

# Connect to a certain service (which is a fileservice)
# and then switch to the given directory.
# Instead of appending $directory to form the complete UNC
# (Uniform Naming Convention) path, one could also use the option 
# "prefixpath".
# If there is no need to mount a subdirectory of the service,
# the UNC would just be unc="//$server_dns/$service_name"

service_name='information'
directory='PERSONALDATA'

unc="//$server_dns/$service_name/$directory"

# Finally, we will mount the CIFS filesystem here (the
# permissions on that node are not directly of interest)

mntpoint=/mnt/portal

if [[ ! -d "$mntpoint" ]]; then
   mkdir "$mntpoint"
   if [[ $? != 0 ]]; then
      echo "Could not create mountpoint '$mntpoint' -- exiting" >&2
      exit 1
   fi
fi

# Only this user will be able to access the mounted CIFS filesystem

user=number6
group=number6

# Try to mount this so that only user "number6" can access it

mount -t cifs \
   "$unc" \
   "$mntpoint" \
   --read-write \
   --verbose \
   -o "credentials=$authfile,uid=$user,gid=$group,netbiosname=$client_nbs,file_mode=0660,dir_mode=0770"

res=$?

if [[ $res != 0 ]]; then
   echo "Mount failed!" >&2
   echo "Return code $res; more info may be in kernel log or daemon log" >&2
   echo "Try 'journalctl SYSLOG_FACILITY=0' or 'journalctl SYSLOG_FACILITY=3'" >&2
   echo "...exiting" >&2
   exit 1
fi

# Check permissions on the mount point

stat=$(stat --format="group=%G user=%U access=%A" "$mntpoint")
soll="group=$group user=$user access=drwxrwx---"

if [[ $stat != "$soll" ]]; then
   echo "Incorrect permissions on root of '$mntpoint'" >&2
   echo "Expected: $soll" >&2
   echo "Obtained: $stat" >&2
   echo "...exiting" >&2
   umount "$mntpoint"
   exit 1
fi

# CD to the mountpoint to be sure

cd "$mntpoint"

if [[ $? != 0 ]]; then
  echo "Could not cd to '$mntpoint'" >&2
  exit 1
fi

# CD to directory TEST which must exist (change as appropriate)

newcd="$mntpoint/TEST"

if [[ ! -d "$newcd" ]]; then
   echo "Directory '$newcd' not found - can't test!" >&2
   echo "...exiting" >&2
   exit 1
fi

cd "$newcd"

if [[ $? != 0 ]]; then
  echo "Could not cd to '$newcd'" >&2
  exit 1
fi

# Create a file and check the permissions

testfile=$(mktemp --tmpdir="$newcd")

if [[ $? != 0 ]]; then
   echo "Could not create temporary file in '$newcd'" >&2
   exit 1
fi

stat=$(stat --format="group=%G user=%U access=%A" "$testfile")
soll="group=$group user=$user access=-rw-rw----"

if [[ $stat != "$soll" ]]; then
   echo "Incorrect permissions on temporary file '$testfile'" >&2
   echo "Expected: $soll" >&2
   echo "Obtained: $stat" >&2
   echo "...exiting" >&2
   exit 1
fi

/bin/rm "$testfile"

echo "Mounted '$unc' on '$mntpoint'" >&2
    
réponse donnée David Tonhofer 04.12.2017 - 16:43
la source
0

Le fonctionnement des différentes méthodes de montage a été épuisé, mais vous voudrez peut-être envisager quelque chose

Si vous ne souhaitez pas entrer vos informations d'identification directement dans / etc / fstab, vous pouvez utiliser une option de montage à la place: informations d'identification = / votre / chemin / ici / .credentials

cela devrait contenir nom d'utilisateur = nom d'utilisateur mot de passe = mspassword

Enregistrez le fichier et quittez votre éditeur de choix.

Les autorisations

doivent être modifiées pour chmod 600

si vous avez un répertoire personnel chiffré et que vous voulez que votre montage soit actif au démarrage, assurez-vous de placer le fichier en dehors de votre répertoire personnel. dans / etc / ou / media / pourrait être un endroit approprié et facilement mémorable.

    
réponse donnée amon san 29.04.2018 - 16:47
la source

Lire d'autres questions sur les étiquettes