Nous utilisons un serveur d'hébergement de FreeBSD 10.3, où nous n'avons pas le pouvoir d'être un superutilisateur. Nous utilisons le serveur pour exécuter Apache2 pour les pages Web de notre entreprise. L'administrateur précédent de nos pages Web a semblé définir une autorisation ACL sur un répertoire, mais nous voulons le supprimer. Disons que le répertoire s'appelle foobar
.
Maintenant, le résultat de ls -al foobar
est comme suit:
drwxrwxr-x+ 2 myuser another_user 512 Nov 20 2013 foobar
Et l'autorisation est la suivante:
[myuser@hosting_server]$ getfacl foobar
# file: foobar/
# owner: myuser
# group: another_user
user::rwx
group::rwx
mask::rwx
other::r-x
Ici, nous voulons supprimer l'autorisation ACL et le signe plus à la fin de la liste des autorisations. Par conséquent, nous avons
setfacl -b foobar
Il a supprimé l'autorisation spéciale régie par l'ACL, mais n'a pas effacé le signe plus+
.
Notre question est de savoir comment effacer le signe plus+
dans la liste des autorisations, indiquée par "ls -al foobar"?
Notre problème a été résolu en utilisant:
setfacl -bn foobar
Le fait était que nous devions également supprimer le masque aclMask du répertoire avec une option -n ... La page de manuel de setfacl
dit ce qui suit:
-n Do not recalculate the permissions associated with the ACL mask
entry. This option is not applicable to NFSv4 ACLs.
Nous ne savons pas pourquoi cette option a fonctionné, mais elle l'a fait ...
Si vous obtenez d?????????
autorisation après la solution ci-dessus, essayez chmod -R a+rX
comme deux commentés ci-dessous.
Odd ... ne peut pas reproduire:
ls -l | grep foobar
drwxr-xr-x+ 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar
setfacl -b foobar/
ls -l | grep foobar
drwxr-xr-x 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar
Malheureusement, je n'ai pas accès à BSD pour tester en ce moment.
Informations système:
Distributor ID: Debian
Description: Debian GNU/Linux 8.7 (jessie)
Release: 8.7
Codename: jessie