J'ai un client Centos 5 VirtualBox sur un hôte Win7x64. Je tente de configurer une lecture/écriture partager un répertoire détenu par root
avec mon hôte Windows à l'aide de Samba, mais je n'ai pas de chance après avoir couru en cercles. Pour simplifier les choses, j'ai désactivé mon pare-feu (/etc/init.d/iptables stop
). À mesure que la sécurité et les autorisations ne sont pas pertinentes à cette fin, je préférerais ne pas avoir à configurer un autre utilisateur/groupe/mot de passe UNIX.
Voici la sortie de testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[Guest Share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
et la source de /etc/samba/smb.conf
:
[global]
workgroup = WRKGRP
netbios name = SMBSERVER
security = SHARE
load printers = No
[Guest Share]
comment = Guest access share
path = /root/src
read only = No
guest ok = Yes
Fonctionnement /etc/init.d/smb restart
montre un statut OK. Toutefois, sur mon hôte Windows, je ne peux voir que le dossier d'action sur l'invité \\IPv4
, mais je ne peux pas entrer dans "Partager invité":
"Le nom du réseau est introuvable" Le message d'erreur est une erreur courante , avec une cause probable:
L'utilisateur que vous essayez d'accéder à la part avec ne dispose pas de suffisamment d'autorisations pour accéder à la voie de la part de la part. La lecture (R) et l'accès (X) devraient être possibles.
Est-ce que j'essaie d'utiliser la racine comme un invité Samba sans mot de passe? J'aimerais, est-ce possible? Comment puis-je configurer Samba pour partager (lecture/écriture) tout dossier avec des autorisations root?
Je suis capable de faire ça. À titre de comparaison, voici une entrée de l'une de mes actions:
[Music] ; user="jlacroix"
force user = jlacroix
path = /home/jlacroix/Music
writable = no
public = yes
Assurez-vous de remplacer "jlacroix" avec le nom d'utilisateur que vous utilisez. Cela devrait forcer à utiliser cet utilisateur malgré ce que l'utilisateur utilise réellement le fichier. Donc, vous devrez peut-être changer "Jlacroix" à la racine. Cependant, je ne conseille pas de partager de cette manière parce que vous devriez faire attention à ce qui peut accéder aux fichiers perforants de racine.
guest account = nobody
admin users = nobody
man 5 smb.conf https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html#adminuusers
Vous pouvez y parvenir avec deux étapes ( par votre configuration actuelle):
Modifier votre fichier de configuration Samba:
vi /etc/samba/smb.conf
Modifier ce qui suit:
[Guest Share]
comment = Guest access share
path = /root/src
browsable = yes
writable = yes
read only = no
public = yes
create mask = 0644
directory mask = 0755
Remarque:
Vous n'avez pas mentionné la version Samba que vous utilisez, mais expliquer:
writeable = yes
est un alias pour read only = no
utilisé dans Samba 3.
Cet alias a été supprimé à Samba 4.
Lecture connexe pour ce sujet:
le fichier de configuration de Samba principal avec des exemples
Cela semble assez simple.
Il suffit de modifier les autorisations sur votre dossier pour refléter les exigences en lecture/écriture. Dans votre cas, car le dossier apparaîtra à root, vous devez donner les "autres" la permanence RW.
Chmod 776 Invité Partager
Cela donne une racine complète RWX et tout le monde RW.
Une meilleure approche serait de créer un groupe pour les utilisateurs de réseau et de modifier le groupe sur votre part de la racine à celle que vous venez de créer.
Une dernière note: je pense que vous avez peut-être besoin des autorisations d'exécution définies sur n'importe quel dossier que vous souhaitez traverser. Vous pouvez avoir des autorisations RW définies dans le dossier lui-même, mais elles doivent réellement être configurées dans l'autorisation d'exécution. Expérimenter avec ça aussi.
Avez-vous vérifié SELINUX?
Si la sortie de Getenforce n'est pas permissive ou désactivée, vous devez appliquer les contextes à votre part. Il y a aussi un booléen que vous pouvez décider de contourner cela, j'ai trouvé cette question à essayer de google ce qui est.
Vous pouvez déboguer pour confirmer si c'est SELINUX en utilisant la commande: setenforce 0