ls /usr/bin
donne le message d'erreur:
ls: reading directory '/usr/bin': Permission denied
sur wbash.exe
. Pour cette raison, achèvement de bash et achèvement de eshell échouent ou donnent des résultats incomplets. Je voudrais le faire fonctionner.
Les choses qui fonctionnent:
/usr/bin $ ls -l emacs
lrwxrwxrwx 1 root root 23 2017-07-31 17:16 emacs -> /etc/alternatives/emacs
/usr/bin $ ls -l gcc-5
-rwxr-xr-x 1 root root 915736 2017-09-14 06:01 gcc-5
/usr/bin $ ls -ld /usr/bin
drwxr-xr-x 0 root root 512 2017-12-19 09:45 /usr/bin
/usr/bin $ ls -ld /usr/sbin
drwxr-xr-x 0 root root 512 2017-12-19 09:45 /usr/sbin
/usr/bin $ ls -ld /
drwxr-xr-x 0 root root 512 2017-11-17 10:23 /
/usr/bin $ ls -ld /usr
drwxr-xr-x 0 root root 512 2017-03-30 11:55 /usr
La version Windows est la suivante: Windows 10 (64 bits), version 1703 (build 15063.786)
le sbin
répertoire peut être répertorié sans problèmes et tous les paramètres de Windows de bin
dans %USERPROFILE%\AppData\Local\lxss\rootfs\usr
disponibles via Windows Explorer sont les mêmes que ceux pour sbin
.
Les commandes icacls.exe bin
et icacls.exe sbin
dans %USERPROFILE%\AppData\Local\lxss\rootfs\usr
donner exactement la même réponse (jusqu'au premier mot qui est bin
pour bin
et sbin
pour sbin
). Donc, cela ne semble pas être lié aux attributs supplémentaires. Aussi les commandes icacls.exe bin /verify
et icacls.exe sbin /verify
n'indiquez aucune erreur.
Existe-t-il une fonctionnalité d'ubuntu liée à la sécurité (je ne sais pas) qui m'empêche de lister le contenu du répertoire de /usr/bin
? (Dans ce cas, il serait étrange de ne pas interdire l’inscription de /usr/sbin
.)
ls -ld /
etls -ld /usr
?icacls.exe bin
eticacls.exe sbin
donner exactement la même réponse (jusqu'au premier mot qui estbin
pourbin
etsbin
poursbin
). Donc, cela ne semble pas être lié aux attributs supplémentaires. Est-ce correct? Ou y at-il des astuces astucieuses pour obtenir encore plus d'informations?icacls.exe bin /verify
eticacls.exe sbin /verify
ne génère aucune erreur.bin
(etsbin
) sans problème sous Windows (par exemple, WindowsExplorer ou PowerShelldir bin
ouls bin
)Réponses:
Cela ressemble beaucoup à un problème d'autorisations.
Comme vous avez vérifié que le problème ne vient pas de Windows, alors ce problème est avec les paramètres internes WSL, où il émule des autorisations Linux qui n'existent pas de manière native sur Windows.
Je ne sais pas exactement comment WSL émule les autorisations Linux. S'il utilise le mécanisme Windows de la liste de contrôle d'accès, vous pouvez tous les réinitialiser en:
Si cela ne vous aide pas, et sans une meilleure connaissance de la mise en œuvre de ces autorisations, Je suggère de réinstaller WSL:
Sauvegardez vos données
Désinstallez l’environnement Ubuntu tout en conservant votre dossier personnel, puis réinstallez WSL à l'aide des commandes suivantes:
Si cela n'a pas aidé, réinstallez complètement l'environnement Ubuntu y compris la suppression de votre dossier personnel, en entrant:
Entre les deux commandes ci-dessus, vérifiez que le dossier
%localappdata%\lxss
est vide. Sinon, déplacez son contenu dans la mémoire temporaire et supprimez-le plus tard lorsqu'il n'est plus nécessaire.la source
Il n’ya pas de problèmes de permission avec cygwin sous
$HOME/AppData/Local/lxss/rootfs/usr/bin
et j'ai fait des tests avec des dossiers de jeux de wsl sous cygwin. Cela m'a conduit à la solution suivante.Dans le bash de cygwin je suis allé à
$HOME/AppData/Local/lxss/rootfs/usr
et lancez la commande suivante:Cela a créé un script
/temp/fix.sh
dans un dossier/temp
qui est partagé entre cygwin et wsl via des liens symboliques.Dans
wbash
je suis allé à/usr/
, créé les dossiersfix
etfix/bin
, lancez le script et déplacez le répertoirefix/bin
àbin-fix
.Ainsi,
wbash
m'a dit qu'il avait des problèmes de permission pourbin/head
. D'accord, j'ai accepté et réinstallécoreutils
comme dernière étape de cette procédure (voir ci-dessous). Ensuite j'ai tout ferméwbash
applications etwbash
lui-même et est retourné à cygwin où leusr
le dossier était toujours ouvert.Là j'ai déménagé
bin
hors du chemin et renommébin-fix
àbin
.J'ai recommencé
wbash
et voila tout se passe bien etls /usr/bin
travaux.Comme je l'ai déjà mentionné ci-dessus, j'ai réinstallé
coreutils
comme dernière étape:la source