Ich habe dies und das gelesen und festgestellt, dass mein Problem anders und spezifischer ist.
Ich verstehe die folgenden Punkte.
- + x im Verzeichnis gewährt Zugriff auf Dateien inodes über dieses bestimmte Verzeichnis
- Metainformationen einer Datei, die von verwendet wird
ls -l, werden in ihrem i-Knoten gespeichert, aber der Dateiname gehört nicht dazu
Von den beiden oben genannten Punkten sollte, da lsohne -lnicht auf die i-Knoten der Dateien im Verzeichnis zugegriffen werden muss, die Dateinamen erfolgreich aufgelistet und 0 zurückgegeben werden.
Als ich es auf meinem Computer ausprobierte, wurden die Dateinamen aufgelistet, aber es gab einige Warnungen wie permission denied, und der Rückkehrcode ist 1.
b03705028@linux7 [~/test] chmod 500 permission/
b03705028@linux7 [~/test] ls --color=no permission/
f1*
b03705028@linux7 [~/test] chmod 400 permission/
b03705028@linux7 [~/test] ls --color=no permission/
ls: 無法存取 'permission/f1': 拒絕不符權限的操作
f1
b03705028@linux7 [~/test] echo $0
bash
Die chinesischen Schriftzeichen sprechen grundsätzlich darüber permission denied
Meine Unix-Distribution ist Linux 4.17.11-arch1
echo $0überprüfe, ob ich auch benutze bash. Darf ich fragen, welche Unix-Distribution Sie verwenden? Ich habe das Problem so aktualisiert, dass es die von mir verwendeten Befehle enthält.
/bin/lsdirekt laufen ? Es ist sehr wahrscheinlich, dass Sie einen Alias oder eine Funktion in Ihrer Shell haben, die versucht, Dateistatistiken abzurufen. Das *am Ende f1lässt mich denken, dass es die -FFlagge gibt
lsAlias ist und das -FFlag verwendet, um die Füllungen zu klassifizieren, siehe ls(1). Dies würde versuchen, darauf zuzugreifen f1, um es zu klassifizieren und ein Sternchen anzuhängen. Mit ls --color=nonur an den Alias anhängen. Versuchen Sie es command lsstattdessen. Ich benutze ArchLinux, sollte keinen Unterschied machen.
rm -rf lala; mkdir lala; chmod 400 lala; command ls lalaist für mich erfolgreich. Das stelltcommandnur sicher, dass kein Alias vonlsverwendet wird. Könnten Sie bitte Ihre Frage mit den genauen Befehlen erweitern, die Sie eingeben, um das Problem anzuzeigen? (dh machen Sie eine minimale Arbeitsdemonstration von dem, was Sie beobachten)