How can I find files that only have certain permission for owner?
I would like to find files only by a certain user's permission. For example, if I want to find a file that I have full permission.
I may do something like:
find . -user $(whoami) -perm
But what should I put after -perm
if I want to ignore the permission of root and other users.
Start with:
find /path/to/file -user user1 -perm -u+rwx
This means: look for files starting in /path/to/files
, owned by user1
, where the permissions for group and other can be anything (-
in front of the permission string) and the users permissions are only: rwx
To search for files only (no directories) then add -type f
.
Also, try some reading. This has great examples: Find tutorial
From the manpages of find
:
-perm -mode
All of the permission bits
mode
are set for the file. Symbolic modes are accepted in this form, and this is usually the way in which would want to use them. You must specify 'u', 'g' or 'o' if you use a symbolic mode.
And so:
find . -user $(whoami) -perm -007
for the specified user, it returns files with the following privileges: rwx,
find . -user $(whoami) -perm -006
for the specified user, it returns files with the following privileges: rwx, rw,
find . -user $(whoami) -perm -005
for the specified user, it returns files with the following privileges: rwx, rx,
find . -user $(whoami) -perm -004
for the specified user, it returns files with the following privileges: rwx, rw, rx, r,
find . -user $(whoami) -perm -003
for the specified user, it returns files with the following privileges: rwx, wx,
find . -user $(whoami) -perm -002
for the specified user, it returns files with the following privileges: rwx, rw, wx, w,
find . -user $(whoami) -perm -001
for the specified user, it returns files with the following privileges: rwx, rx, wx, x,
find . -user $(whoami) -perm -000
for the specified user, it returns files with the following privileges: rwx, rw, rx, wx, r, w, x, 0,
-perm /mode
Any of the permission bits
mode
are set for the file. Symbolic modes are accepted in this form. You must specify 'u', 'g' or 'o' if you use a symbolic mode. (...) If no permission bits in mode are set, this test matches any file (the idea here is to be consistent with the behaviour of-perm -000
).
Examples:
find . -user $(whoami) -perm /007
for the specified user, it returns files with the following privileges: rwx, rw, rx, wx, r, w, x,
find . -user $(whoami) -perm /006
for the specified user, it returns files with the following privileges: rwx, rw, rx, wx, r, w,
find . -user $(whoami) -perm /005
for the specified user, it returns files with the following privileges: rwx, rw, rx, wx, r, x,
find . -user $(whoami) -perm /004
for the specified user, it returns files with the following privileges: rwx, rw, rx, r,
find . -user $(whoami) -perm /003
for the specified user, it returns files with the following privileges: rwx, rw, rx, wx, w, x,
find . -user $(whoami) -perm /002
for the specified user, it returns files with the following privileges: rwx, rw, wx, w,
find . -user $(whoami) -perm /001
for the specified user, it returns files with the following privileges: rwx, rx, wx, x,
find . -user $(whoami) -perm /000
for the specified user, it returns files with the following privileges: rwx, rx, rw, wx, r, w, x, 0.
Examples have been tested.