J'ai reçu un compte sur un serveur de fichiers Windows. La situation (à moi) très étrange est que
smbclient
, changer le sous-répertoire (profond) ou montrer son contenu/proc/mounts
) Mais je ne peux pas changer au même chemin ni énumérer son contenu. Je reçois No such file or directory
.Je n'ai ni "contenu d'affichage" ni "ne changer" la permission pour les sous-répertoires de niveau inférieur. Cela ne devrait pas être un problème et ce n'est pas pour smbclient
.
L'administrateur Windows a donné à mes autorisations supplémentaires à mon utilisateur afin que je puisse maintenant voir le contenu du point de moût. Et maintenant, je peux atteindre les sous-répertoires de niveau plus profonds via le mont.
Nous n'avons pas encore déterminé ce que l'ensemble minimal des autorisations de Windows est que nous avons besoin pour que cela fonctionne dans la configuration actuelle. Cependant, le problème doit être du côté Linux de toute façon.
smbclient
et mount.cifs
Accéder à une action Windows?mount.cifs
être fait pour se comporter comme smbclient
?J'ai eu l'administrateur Windows réinitialisé les autorisations de la part afin de pouvoir tester les suggestions dans les réponses. Malheureusement, le problème a disparu. Comme avant, je ne peux pas voir le contenu de la part mais maintenant, le mont peut maintenant accéder aux sous-répertoires profonds. Très étrange.
Une remarque @Intika: J'allais faire une prime supplémentaire pour votre réponse, mais que je faisais ainsi vous pour une raison quelconque a supprimé votre réponse ...
Server 2016, SMB 3.1.1
4.5.16; pas un membre du domaine
/etc/fstab
: //fs-p01.dnsdomain/Data /data cifs credentials=/root/fs-p01.credentials 0 0
smbclient //fs-p01.dnsdomain/Data -U username -W windowsdomain
Je viens de comprendre que windowsdomain
dans la commande smbclient
était incomplète. Probablement pas pertinent comme cela fonctionne. C'était juste name
au lieu de name.local
. Cependant, c'est une différence dans la configuration entre les commandes. Malheureusement, je ne peux pas vérifier si mount
fonctionnerait si j'utilise le mauvais domaine avec elle car je ne peux pas modifier les autorisations sur le serveur Windows sur leurs paramètres d'origine. Je dois attendre que les admins Windows fassent cela lundi.
La longueur du chemin dans la part est de 85 caractères pour l'annuaire que je souhaite travailler. Je devrais être en mesure d'accéder à son parent aussi, c'est-à-dire encore moins:
xxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/2020/2020_06
/root/fs-p01.credentials
username=username
password=...
domain=name.local
/etc/smb/smb.conf
(probablement pas pertinent pour les fonctions des clients)
[global]
workgroup = MERCHANTINVOICE
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
# panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
encrypt passwords = yes
unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = no
map to guest = bad user
usershare allow guests = no
Comme Intika a indiqué dans le commentaire, vous n'avez pas donné suffisamment de détails.
Vous pouvez peut-être frapper la infâme 260 limitation maximale du chemin de chemin . Il existe une manière unicode d'accéder à l'API, qui a un 32 767 Limitation. Dans Windows World, cela dépend si vous y accédez comme \\server\share
(La limite 260 s'applique) ou \\?\UNC\server\share
(La limite 32767 s'applique).
Maintenant, la question est, combien de temps est votre chemin que vous souhaitez énumérer. La deuxième question est laquelle smbclient
utilise vs mount.cifs
.
Citant de la smbclient
pages de l'homme:
sMBClient prend en charge les noms de fichiers longs où le serveur prend en charge le protocole LANMAN2 ou supérieur.
Alors que je n'ai pas pu trouver quoi que ce soit mentionner la mont.Cifs prend en charge le chemin de longue durée pour le moment, il est prudent de dire mount.cifs
Ne supporte pas le chemin long.
Je présume que vous n'utilisez pas smb1
Car il est considéré comme dangereux.
[.____] Utilisez-vous smb2
Ou smb3
Pour connecter smbclient
/mount.cifs
?
Voici peut-être des implications de sécurité NTLM si vous utilisez smb3
Protocole, ce qui pourrait vous empêcher de répertorier le répertoire.
Remarque: Vous devez vérifier le journal (visualiseur d'événements) sur le serveur et non sur le client, pour voir ce qui se passe.
Edit: en raison de la mise à jour et du commentaire
Je pense que vous pouvez souffrir de pointsmbv2
Bug (lors de l'utilisation du montage).
[.____] qui est en bref:
Lors du montage d'une fenêtre Windows, c'est la racine d'un lecteur (par exemple. C $) Le serveur ne renvoie pas
.
Et..
Entrées de répertoire. Il en résulte que le chemin du code SMB2 saute à tort les 2 premières entrées.
Comment le savoir? Vous pouvez spécifier dans votre entrée /etc/fstab
La version SMB doit être utilisée en ajoutant par exemple. vers=3.0
(SMBV3). Je m'approcherais du problème, si possible (si supporté), rétrogradant la version à vers=1.0
Pour voir si tout est affiché.
Donc, votre code de montage ressemblerait à ceci (j'ai ajouté aussi sec
_ pour appliquer le ntlm
(vous devrez peut-être essayer d'autres que vous pouvez trouver dans les Mount.Cif Man Pages :
//fs-p01.dnsdomain/Data /data cifs credentials=/root/fs-p01.credentials,vers=1.0,sec=ntlm 0 0
Si smbv1
Est désactivé et vous ne pouvez pas l'activer à des fins de test, vous pouvez activer SMB Débogage à l'aide de:
echo 1 > /proc/fs/cifs/traceSMB
Vous feriez ensuite simple ls -la
Pour voir si vous pouvez voir le répertoire dans le journal. Si oui, vous êtes influencé par ce bogue.
La troisième option qui se voit dans mon esprit serait d'avoir plus de 2 entrées à la racine de montage. Ceux-ci devraient commencer de manière à ce qu'ils devraient être avant l'entrée (IES) que vous voulez voir.
Ce bug a déjà été signalé. Vous pouvez le trouver à Bugzilla de Samba
Vous pouvez essayer d'utiliser - ce patch par Aurelien , mais je ne sais pas si cela a été correctement testé.
La deuxième option est de faire une "solution de contournement" similaire à la troisième option ci-dessus. Avoir deux répertoires qui seraient sur le dessus avec le tri par défaut. Ceci est juste une solution de contournement rapide. Il devrait vraiment être corrigé afin d'avoir une solution appropriée.
Vous pouvez également considérer le côté serveur également, nous savons que c'est une part de Windows, mais rien de plus, cela aiderait à connaître les fenêtres et SMB Ce cas particulier utilise. La configuration du serveur peut Faites une grande différence, surtout lorsque vous n'utilisez pas le système d'exploitation Windows comme client. Vous savez, depuis que les actions Windows sont apparues, une souris de chat, avec la Samba et d'autres équipes poursuivant les changements mis en œuvre par Microsoft, puisque elle est un système fermé, ils ne sont pas obligés de divulguer les nouvelles fonctionnalités.
Quelles sont les différences entre les moyens de savoir comment smbclient et mont.Cifs accèdent à une action Windows?
sMBClient était destiné à être utilisé comme utilitaire de ligne de commande pour avoir accès à une ressource réseau, Mount.Cifs est normalement utilisé par root, invoqué par la commande de montage lors de l'utilisation d'un type de système de fichiers CIFS, lorsqu'il est utilisé dans le fichier/etc/fstab. est utilisé pour avoir un accès permanent à un système de fichiers.
À partir de la page man ' La principale différence peut être celle Mount.Cifs ignore complètement SMB.CONF
les outils clients SAMBA tels que SMBCLIENT (8) Honorez les paramètres de configuration côté client d'honneur présent dans SMB.CONF. Contrairement à ces outils client, Mount.Cifs ignore complètement smb.conf.
sMBClient est une ancienne mise en œuvre d'un ancien protocole, SMB a été remplacé par CIFS, soi-disant, CIFS a les considérations pour une mise en œuvre plus récente.
Il peut donc être une bonne idée d'utiliser une mise en œuvre récente du protocole, mais vous devriez vérifier lesquelles de ces implémentations fonctionne mieux avec la version du serveur disponible.
Comment peut-on faire monter.Cifs pour se comporter comme smbclient?
Depuis que Mount.Cifs ignore le fichier SMB.conf, toutes les configurations de ce fichier doivent être exprimées dans la commande d'invocation, par exemple, la ligne correspondante dans/etc/fstab. Par exemple, vous envisagez déjà du U USERNAME Option utilisée dans SMBClient, mais il existe d'autres configurations dans le SMB.conf Thay que vous pouvez vérifier. En particulier la configuration du journal, où les messages d'erreur peuvent être écrits, il faut que l'un des fichiers FSTAB, pas le fichier SMB.conf, vérifier dmesg,/var/log/botte,/var/log/Messeges