web-dev-qa-db-fra.com

16.04 propriété personne: nogroup

Il semble qu'après la mise à niveau vers 16.04, j'ai toujours des problèmes avec la propriété et l'autorisation des dossiers partagés.

J'ai créé un nom de dossier testname__, modifié son autorisation en 777 et partagé ce dossier sur un réseau local.

Sur une autre machine (Windows), je peux afficher et modifier un fichier sur ce dossier testname__, mais chaque fois que je modifie quelque chose sur un fichier de ce dossier, la propriété et l'autorisation ne deviennent plus personne: nogroup - et par conséquent, je ne peux pas le modifier à nouveau sur mon 16.04. machine.

test$ ll
total 328
drwxrwxrwx 2 pac   pac      4096 Jan 20 09:59 ./
drwxrwxrwx 4 pac   pac      4096 Jan 20 09:32 ../
**-rwxr--r-- 1 nobody nogroup** 326442 Jan 20 09:59 t1.log*

Pourquoi change-t-il automatiquement en -rwxr--r-- 1 nobody nogroup? Comment puis-je empêcher cette modification afin que l'autorisation soit toujours rwxrwxrwxet que le droit de propriété soit toujours pac:pac (en supprimant ce désagrément nobody:nogroup)?

Je souhaite éviter de devoir répéter cette opération dans le dossier testname__:

$ Sudo chown pac:pac . -R
$ chmod 777 . -R
5
artm

En cas de problèmes de permission avec les partages Samba, il est bon de savoir que Samba possède sa propre structure pour les utilisateurs, ainsi que les autorisations de fichier et de répertoire. Si l'on crée un partage Samba et que l'on souhaite restreindre l'accès en donnant à certains utilisateurs uniquement l'accès à ce partage Samba, on crée normalement des utilisateurs Samba. Sur la ligne de commande, cela peut être fait avec la commande "smbpasswd". Voir pour plus d'infos:

man smbpasswd

Pour ajouter des autorisations d’utilisateur et de fichier/répertoire à la configuration de Samba, vous pouvez éditer le fichier smb.conf situé dans/etc/samba /.

Voir aussi ici:

https://help.ubuntu.com/community/Samba/SambaServerGuide#Samba_Server_Configuration_in_terminal

et pour définir les autorisations, voir ici:

https://help.ubuntu.com/community/Samba/SambaServerGuide#File_Sharing_.28Advanced.29

Après avoir modifié smb.conf, les démons de serveur Samba doivent être redémarrés ou la lecture du fichier de configuration doit être effectuée (rechargement).

Dans certaines versions plus anciennes d'Ubuntu, il était possible de redémarrer smbd et nmbd, mais dans les versions plus récentes d'Ubuntu, le script "init" samba peut être redémarré.

Sudo service samba restart

Dans certains environnements de bureau, il peut être judicieux de ne faire qu'un rechargement de configuration, au lieu d'un redémarrage Samba, afin d'éviter d'éventuelles interruptions pour les utilisateurs.

/etc/init.d/nmbd force-reload && /etc/init.d/smbd force-reload

C'est sur certaines versions plus anciennes d'Ubuntu. Je suppose que sur les nouvelles versions d'Ubuntu:

Sudo service samba force-reload 

pourrait fonctionner. (Je n'ai pas encore testé cela).

2
albert j

Il s'agit d'un problème lié aux autorisations de fichier et de répertoire lorsque vous utilisez samba et non 16.04. Je suppose que vous configurez un partage public et n'utilisez pas de connexions, et mappez l'utilisateur invité samba à l'utilisateur nobody .

Puisque tous les utilisateurs de samba seront connectés en tant que nobody , tout fichier sauvegardé héritera de l'utilisateur nobody et groupe nogroup .

Votre fichier t1.log créé par l'utilisateur invité samba dispose des autorisations -rwxr--r--, et le propriétaire de ce fichier est personne. Votre utilisateur pac n'est pas en mesure de le modifier car il dispose uniquement d'une autorisation de lecture pour Autres.

Une façon de résoudre ce problème consiste à remapper l'utilisateur invité samba sur votre utilisateur pac .

Assurez-vous que ceci est défini dans votre /etc/samba/smb.conf:

guest account = pac

... puis changez la propriété de tous les fichiers de votre dossier partagé en utilisateur pac

Sudo chown -R pac:pac /path/to/share

_

Évidemment, cela ne fonctionnera pas dans un environnement multi-utilisateur où un autre utilisateur que pac a également besoin d'un accès direct.

Certains peuvent proposer l'utilisation de create mask = 0777 et directory mask = 0777 dans smb.conf pour que les fichiers et les répertoires soient créés avec -rwxrwxrwx, cependant, dans mon expérience, je l'ai trouvé assez peu fiable, car au fil du temps, certains fichiers avaient toujours une autre autorisation. .

La seule solution fiable que j'ai trouvée consiste à remonter le répertoire de partage avec bindfs pour toujours forcer les autorisations 0777.

Tout d'abord, installez bindfs:

Sudo apt install bindfs

Ensuite, créez un fichier de service systemd:

Sudo nano /lib/systemd/system/mount-bindfs.service

Collez ceci dans le fichier:

# mount-bindfs systemd service file

[Unit]
Description=Remount directories with different permission
After=mountall.service

[Service]
Type=forking
ExecStart=/bin/sh -c "/usr/bin/bindfs -o perms=0777 /path/to/share /path/to/share"

[Install]
WantedBy=multi-user.target

Rechargez systemd, activez le service au démarrage et démarrez-le:

Sudo systemctl daemon-reload
Sudo systemctl enable mount-bindfs.service
Sudo systemctl start mount-bindfs.service

Faites un ll sur votre dossier de partage et tout devrait maintenant apparaître comme rwxrwxrwx.

2
loongyh