[Erledigt] find /path -uid n liefert unerwartete Ergebnisse

Tronde

Benutzer
Mitglied seit
27. April 2013
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
Guten Morgen Synology-Gemeinschaft,

ich möchte auf meiner DS213air mit dem Kommando find nach Dateien und Verzeichnissen suchen, die einem bestimmten Benutzer gehören. Dazu verwende ich folgenden Befehl:
Rich (BBCode):
find /volume1/share -uid 1027 -exec ls -ln {} \;

Bei der Ausgabe der Ergebnisse mit ls -ln ist mir allerdings aufgefallen, dass auch Dateien gefunden werden, die anderen Benutzern gehören. Folgende Ausgabe soll dies verdeutlichen:
Rich (BBCode):
root@Diskstation:~# find /volume1/share -uid 1027 -exec ls -ln {} \; | grep -v 1027
total 16
drwx------+ 2 1026 100 4096 Mar 21  2016 Steuern_2014
total 1728
-rwx------+ 1 1026 100  23702 Mar 12  2015 ebook.pdf
-rwx------+ 1 1026 100  86429 Oct 29  2015 Freund Hein.pdf
-rwx------+ 1 1026 100 101116 Oct 29  2015 datei1.pdf
-rwx------+ 1 1026 100  44228 Oct 29  2015 datei2.pdf
-rwx------+ 1 1026 100 100732 Mar 12  2015 Rechnung.pdf
-rwx------+ 1 1026 100  85537 Oct 29  2015 Rad.pdf
drwxrwxrwx+ 2    0 100   4096 Mar 21  2016 @eaDir
total 136
-rwx------+ 1 1026 100 30699 May  5  2016 Bücher für schriftliche Prüfung DGS 1, bereits gedruckt.pdf
-rwx------+ 1 1026 100 43605 Sep 16  2016 Bücher für schriftliche Prüfung DGS 2, bereits gedruckt.pdf
drwxrwxrwx+ 2    0 100  4096 Sep 16  2016 @eaDir
total 664
drwxrwxrwx+ 2    0 100   4096 May 15 16:26 @eaDir
-rwx------+ 1 1026 100  79373 May  9 19:08 Whiteboard Büro.pdf
total 16684
total 248652
total 8076
drwxrwxrwx+ 2    0 100    4096 May  9 19:10 @eaDir
-rwx------+ 1 1026 100   23040 May  9 19:10 Thumbs.db

Es ist zu erkennen, dass hier jede Menge Dateien gefunden werden, die nicht der UID 1027 gehören. Hat jemand eine Erklärung dafür, warum dies so ist?

Man stelle sich vor, statt einem ls ein rm auszuführen, um so eigene Dateien zu löschen. Die übrigen Benutzer würden sich bedanken.

Habe ich einen Fehler im Kommandoaufruf, oder verhält find sich hier fehlerhaft?

Rich (BBCode):
root@Diskstation:~# find --version
find (GNU findutils) 4.4.2

MfG
Tronde
 
Zuletzt bearbeitet:

Tronde

Benutzer
Mitglied seit
27. April 2013
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
Mir ist ein LIcht aufgegangen

Ah, ich denke, ich habe gerade die Erklärung gefunden.

Code:
find /volume1/share -uid 1027 -exec ls -ln {} \;

Das Kommando findet alle Dateien und Verzeichnisse, welche dem Benutzer mit der UID 1027 gehören. Diese Treffer werden allesamt an das Kommando ls -ln übergeben. Dieses listet nun den Inhalt der Verzeichnisse auf. Darunter fallen dann selbstverständlich auch die Dateien und Verzeichnisse, die nicht der UID 1027 gehören.

LG
Tronde
 

Fusion

Benutzer
Mitglied seit
06. April 2013
Beiträge
11.205
Punkte für Reaktionen
133
Punkte
319
Es wird unter Linux nicht unterschieden zwischen Dateien und Verzeichnissen, sind erst mal alles Dateisystemobjekte.
Du kannst bei find die Einschränkung "-type f" oder "-type d" mitgeben um den Typ des Objekts auf Dateien oder Verzeichnisse einzugrenzen.
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten, denn dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit einem hohen technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive oder Themen fremde Werbung. Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.