J'utilise Ubuntu 11.10 et j'essaie de monter un serveur Freenas. Le serveur est configuré pour partager cifs et nfs sans aucune chance.
J'ai essayé smbmount //192.168.1.### /mnt/
Je ne suis pas nouveau dans Ubuntu, mais je ne suis pas près d'un utilisateur expérimenté. Je préférerais donc une option d'interface graphique, le cas échéant.
Comment monter une action cifs dans 11.10?
Il existe pyNeighborhood qui est un outil graphique pour monter des partages Samba et disponible dans le centre de logiciel pour le téléchargement.
Il y a un bon article situé ici sur la façon de le configurer et de l'utiliser.
Commencez par installer cifs utils
Sudo apt-get install cifs-utils
Alternativement, la commande de base du terminal est:
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 un sous-dossier d'abord dans/media/USERNAME/par exemple:
mkdir /media/paul/cifsShare
de plus, mot de passe pourrait être omis dans la commande mount par exemple (montrera également les modes 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, le mot de passe vous sera demandé (en fait, pour 2 mots de passe) lors du montage.
Lisez attentivement le documentation Samba ici pour savoir comment le faire et configurez-le correctement pour monter au démarrage, etc.
C'est comme map7 a dit, mais si vous ne voulez pas utiliser les autorisations root à chaque fois que vous modifiez un fichier sur le lecteur, vous devrez alors monter dans un dossier utilisateur et vous assurer que les identifiants gid et uid sont définis avec votre nom d'utilisateur. .
La commande les plaçant:
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 omettre password = PASSWD si vous souhaitez qu'il vous le demande 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
1) Mon partage de samba s'affiche à Caja (Ubuntu 16.04 „Explorer“) en tant que
smb://thinkpad/ddrive/
C'est un bon test lithmus, il n'y a pas de problèmes de connexion/chemin.
(caveat: Si caja vous interroge sur les identifiants de mot de passe de votre machine Windows, vous voudrez peut-être passer du domaine de WORKGROUP au nom de la machine, c'est-à-dire 'thinkpad'. Ensuite, les identifiants de connexion véritablement locaux de votre lecteur devrait faire.)
2) Si cela fonctionne, voici la commande:
Sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
,password=supersecret
directement (sans espace) après username =, mais vous pouvez également attendre que l’invite vous le demande lorsque vous entrez la commande.Je ne suis pas d'accord avec l'affirmation selon laquelle root est toujours nécessaire pour que les connexions cifs disparaissent. C’est vrai, c’est toujours nécessaire pour smbmount CLI, mais un gestionnaire de fichiers tel que Nautilus est capable de monter un partage cifs et il n’est pas nécessaire d’être root.
Je n'utilise pas Gnome, mais j'ai toujours Nautilus installé. Exécutez ceci dans un terminal pour éviter de l’essayer de prendre le contrôle du bureau.
$ nautilus --no-desktop &
Dans Ubuntu 16.04, le menu de gauche dans l'arborescence a "Connect to Server" en bas. Cliquez dessus, la suggestion est de type "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 nommé, il est obligatoire 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: //".
Il existe un problème spécifique possible 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 faire un changement mineur dans la ligne fstab en ajoutant "vers = 2.1"
Donc, 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 vers=2.1,username=winuser,password=TopSecret 0 0
Les étapes 2, 3 et 4 restent les mêmes que dans la réponse précédente.
Vous pouvez mettre tous ces détails dans/etc/fstab pour que les répertoires soient montés au démarrage du système. 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 username=winuser,password=TopSecret 0 0
Créer un répertoire en tant que point de montage linux
mkdir /mnt/linux_smb
chmod 755 /mnt/linux_smb
Pour la première fois, montez-le manuellement
mount -a
Les erreurs éventuelles peuvent être trouvées par
dmesg | tail
J'ai mis en place un petit script (destiné à Fedora cependant) 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
le fonctionnement des différentes méthodes de montage a été épuisé, mais il y a quelque chose que vous voudrez peut-être envisager
si vous ne souhaitez pas saisir vos informations d'identification directement dans/etc/fstab, vous pouvez utiliser une option de montage: credentials =/votre/chemin/ici/.credentials
cela devrait contenir username = msusername password = mspassword
Enregistrez le fichier et quittez l'éditeur de choix.
les autorisations doivent être changées en chmod 600
si vous avez un répertoire personnel crypté et que vous voulez que votre montage soit opérationnel, 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.