25
août
2022
16:00

«CIFS et Samba: Connexion aux dossiers généraux des fenêtres»

25 août 2022 16:00

Pour le travail, il est nécessaire de se connecter de Linux au dossier Windows commun pour ramasser ou transférer des fichiers. Les organisations à 99% utilisent des ordinateurs exécutant Windows, vous devez donc vous connecter de Linux à Windows.

Installation de samba d'un client à Linux

sudo apt-get update
sudo apt-get install samba-client
sudo apt-get install cifs-utils

Pour la commodité de consulter l'environnement réseau dans GUI, le gestionnaire de fichiers Nautilus avec l'ajout Nautilus-Lure est pratique

sudo apt-get install nautilus nautilus-share

Afficher les ressources réseau communes à l'aide d'une ligne de commande

Appeler le client Samba pour visualiser les ressources du serveur à partir de la ligne de commande:

1) Afficher les dossiers communs fournis pour un accès général sur le réseau pour les utilisateurs de serveurs locaux

smbclient -L //192.168.100.10 -U Username%Password

ou

smbclient -L //servername -U Username%Password

Où: 192.168.100.10 - Adresse du serveur IP, nom de serveur - Nom du serveur, nom d'utilisateur - utilisateur de serveur local, mot de passe - mot de passe de l'utilisateur

2) Affichage des dossiers communs prévus pour un accès général aux utilisateurs du domaine

smbclient -L //192.168.100.10 -U Domain/Username%Password

ou

smbclient -L //192.168.100.10 -U Username%Password -W Domain

ou par nom

smbclient -L //servername -U Username%Password -W Domain

Où le domaine est le nom du domaine Active Directory.

Ou (pour ne pas signaler le mot de passe dans les paramètres de commande à chaque fois) créez un fichier ~ / .smbCredentials
Avec les données d'entrée:

username=имя_пользователя
password=пароль
domain=имя_standalone_сервера_или_домена

Ensuite, en rejoignant le catalogue du réseau:

smbclient //server/share --authentication-file=/home/vladimir/.smbcredentials 

Connexion à un dossier Samba commun en mode interactif

La même chose, mais sans clé -l, mais avec le paramètre - le nom du dossier général, dans ce cas, "partager"

smbclient //192.168.100.10/share -U Domain/Username%Password

ou

smbclient //servername/share -U Domain/Username%Password

ou

smbclient //servername/share -U Username%Password -W Domain

Après une entrée réussie, une invitation apparaîtra

smb: \>

Vous pouvez saisir des commandes, par exemple, aide ou dir. L'interface SMBClient à l'aide de commandes ressemble à un client FTP.

Connexion aux dossiers généraux à l'aide du gestionnaire de fichiers Nautilus

Après le lancement de Nautilus, sélectionnez "+ autres endroits" sur le côté gauche de la fenêtre ** - La visualisation du réseau local s'ouvrira, où vous pouvez afficher les ordinateurs du réseau qui ont des dossiers communs.

Résoudre le problème avec la connexion: se débarrasser de l'erreur -13 accès refusé, ou nt_status_access_denided

Erreur:CIFS: VFS: cifs_mount failed w/return code = -13"

Cette erreur ne peut être résolue qu'en configurant les droits sur le serveur. Pour ouvrir le dossier de visualisation global, vous avez besoin de trois Conditions:
1) L'utilisateur est indiqué parmi les utilisateurs du serveur il Domain (ou le type d'accès invité est autorisé)
2) Égardé (non limité) d'accès au système de fichiers.
3) Dan Accès à un dossier réseau particulier - par exemple, l'utilisateur est inclus dans le groupe d'utilisateurs, auquel il a accès au dossier commun.

La dernière, troisième condition est la plus stricte. Il est nécessaire que l'administrateur du serveur accorde le droit à l'utilisateur (l'inclure dans un groupe d'utilisateurs d'un dossier commun).

La chose la plus intéressante est que les droits de l'administrateur ne le garantissent pas, il sera plein de droits pour accéder à un dossier commun, car il est nécessaire que l'utilisateur "administrateur" soit inclus dans le groupe, qui est accordé les droits sur le dossier réseau danu. À cet égard, l'administrateur ne diffère pas du groupe Oter / Nobody: il recevra une erreur de montage (13): autorisation refusée car elle n'est pas incluse dans le groupe d'utilisateurs du dossier réseau.

Utilisation de la commande Mount

Au lieu de smbclient можно использовать команду mount.

Vous devez d'abord créer des points de montage et donner le droit d'accéder au dossier, par exemple:

sudo mkdir /mnt/cifs
sudo chmod 0777 /mnt/cifs

Exemples d'utilisation de l'équipe Mount avec des dossiers de réseau:

sudo mount -t cifs //192.168.20.222/share /mnt/cifs -o user=Vlad,pass=Str0ngPa$$word
ls  /mnt/cifs
sudo umount //192.168.20.222/share
ls  /mnt/cifs

Ou la même chose avec le fichier .smbRedientials:

sudo mount -t cifs //192.168.20.222/share /mnt/cifs -o credentials=/home/vladimir/.smbcredentials

Si le nom du dossier réseau contient des écarts ("Partage avec des espaces de nom"), vous devez entrer comme suit:

sudo mount -t cifs //192.168.20.222/share\ with\ spaces\ in\ name /mnt/cifs -o credentials=/home/vladimir/.smbcredentials

Remarque: Pour qu'après avoir exécuté le dossier commandé Mount, cela fonctionnerait non seulement pour la lecture, mais aussi pour écrire au four distant, vous devez comparer l'utilisateur distant avec l'utilisateur local Linux, en utilisant les paramètres uid = 1000, gid-1000 . Où 1000 doit remplacer Linux par un utilisateur UID et GID (affiché par la commande id).
Ou ajouter aux paramètres - o noperm, ioCharset = utf8 .
Dans les touches de touches, vous pouvez définir la version Samba, que nous utilisons pour connecter. Par exemple,
pour SMB2: Vers = 2.0 ou pour SMB3 Vers = 3,0 .

Exemples:

sudo mount -t cifs //192.168.20.222/share\ with\ spaces\ in\ name /mnt/cifs -o user=username,pass=password,uid=1000,gid=1000

sudo mount -t cifs //192.168.20.222/share\ with\ spaces\ in\ name /mnt/cifs -o credentials=/home/vladimir/.smbcredentials,vers=2.0,noperm 

Si la version spécifiée de Samba (par exemple, SMB3) n'est pas prise en charge par le serveur, une erreur s'affichera "mount error(95): Operation not supported.".

L'ajout du paramètre nofail est utile lorsqu'il n'est pas connu si l'ordinateur distant (serveur) est activé ou non.

Montage d'un dossier réseau pendant le téléchargement (fichier / etc / fstab)

Syntaxe de ligne dans / etc / fstab:

//[URL]/[sharename] /mnt/[mountpoint] cifs vers=3.0,credentials=/home/username/.sharelogin,iocharset=utf8,file_mode=0777,dir_mode=0777,uid=[username],gid=[username],nofail 0 0

Où:
//[URL]/[sharename] - имя сервера и сетевой папки
/mnt/[mountpoint] - точка монтирования на локальном компьютере
vers=3.0 - принудительно установить версию протокола SMB3 (либо vers=2.0 - если клиент и сервер поддерживают лишь SMB2)
credentials=/home/username/.sharelogin - указание файла с именем пользователя, паролем и доменом для входа
iocharset=utf8 - прямое указание набора символов utf8 (не обязательно, если без него работает)
file_mode=0777,dir_mode=0777 - права доступа при выполнении mount
uid=[username],gid=[username] - данные uid и gid из результата вывода команды cat /etc/passwd | grep username
nofail - загрузка ОС будет продолжена даже в случае недоступности сервера URL

Autres paramètres:
defaults - включает опции rw, suid, dev, exec, auto, nouser, and async. Обычно идёт первой, т.к. можно переопределить отдельные опции в строке позднее, например: defaults, noexec, ro - нет исполнения, только чтение.
rw - очевидно, чтение-запись со стороны клиента (является противоположностью ro - только чтение (защита от записи).
suid - запрещает использование бит полномочий SUID (Set-User-IDentifier - установка идентификатора владельца) или SGID (Set-Group-IDentifier). Грубо говоря, запрещает передачу части прав при помощи битов SUID и SGID - права должны быть заданы явно.
auto - используется в /etc/fstab - разрешает автоматическое монтирование сетевых ресурсов при выполнении команды mount -a
noauto - запрет для fstab монтировать папку автоматически при выполнении команды mount -a.
nouser - прямой запрет на "ручное" монтирование всеми пользователями, кроме root (не влияет на монтирование во время загрузки ОС)
guest - для доступа к "гостевым" общим папкам, которые доступны по сети без указания имени пользователя и пароля.
async - запись данных в сетевую папку производится по мере возможности - значение по умолчанию. Повышает производительность.
sync - немедленная запись на удаленный компьютер (без использования буферов), не рекомендуется.
noperm - отключает встроенную в клиент проверку прав. Используют noperm в том случае, если права вроде бы есть, но создать файл на запись, например, программно, не получается, из-за несовместимости в реализации CIFS на клиенте и сервере.
noexec - прямой запрет запуска исполнимых файлов из сетевой папки
noatime - не обновлять время создания файла (повышает производительность, но понижает информативность)
nounix - отключение расширений Linux: не использовать символические ссылки. Используется, чтобы отключить символьные ссылки для обеспечения совместимости с Windows.
mfsymlinks - ключ для символьных ссылок в стиле Minshall+French. Этот стиль ссылок поддерживается Windows и Mac.

Exemples de la ligne dans FSTAB (où les données d'entrée sont indiquées dans le fichier /etc/.smbRedientials):

//192.168.20.222/share_name rw,auto,nofail,credentials=/etc/.smbcredentials 0 0

Si dans / etc / hôtes ou le serveur DNS local, les noms des machines sont énoncés, au lieu des adresses IP, vous pouvez connecter un dossier général nommé: // serveur / partage.

Équipe d'installation basée sur FSTAB:

sudo mount -a

Tous les disques basés sur / etc / fstab seront modifiés à l'exception du paramètre "Noauto".

Bref paramètres de samba dans Windows (protocoles SMB1, SMB2, SMB3)

Le protocole Samba a trois versions 1, 2 et 3.
Le protocole SMB1 est inclus si l'organisation dispose de voitures pour Windows XP. Dans d'autres cas, ils essaient de désactiver SMB1 comme dangereux.

En outre dans Windows 7 et Windows Server 2008R2 est fabriqué à l'aide d'un registre, paramètres
HKEY_LOCAL_MACHINE \ System \ CurrentControlset \ Services \ LanManServer \ Paramètres
Paramètres de type dword
Smb1 = 0
Smb2 = 1

Dans Windows 8, Windows 10, 11, Windows Server 2012, 2016 et au-dessus de la commande PowerShell est utilisée

Get-SMBServerConfiguration | Sélectionnez ActivedMB1ProtoCol, ActivedMB2ProtoCol

SET -SMBSERverConfiguration -EnablesMB2ProtoCol $ True

Ces commandants ne fonctionnent pas dans les premières versions de Windows 7 et de Windows Server 2008R2.
De plus, SMB3 ne fonctionne pas dans Win7 - pour plus de détails, voir.Voici winitpro.ru.


Liens:



Publications connexes