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:
2 Answers 2
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
-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.
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 ).
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.
How to Find Files With SUID and SGID Permissions in Linux
In this tutorial, we will explain auxiliary file permissions, commonly referred to as “special permissions” in Linux, and also we will show you how to find files which have SUID (Setuid) and SGID (Setgid) set.
What is SUID and SGID?
SUID is a special file permission for executable files which enables other users to run the file with effective permissions of the file owner. Instead of the normal x which represents execute permissions, you will see an s (to indicate SUID) special permission for the user.
SGID is a special file permission that also applies to executable files and enables other users to inherit the effective GID of file group owner. Likewise, rather than the usual x which represents execute permissions, you will see an s (to indicate SGID) special permission for group user.
Let’s look at how to find files which have SUID and SGID set using the find command.
$ find directory -perm /permissions
Important: Certain directories (such as /etc, /bin, /sbin etc.) or files require root privileges in order to be accessed or listed, if you are managing your system as a normal user, use the sudo command to gain root privileges.
How to Find Files with SUID Set in Linux
This below example command will find all files with SUID set in the current directory using -perm (print files only with permissions set to 4000) option.
You can use the ls command with -l option (for long listing) to view the permissions on the listed files as shown in the image above.
How to Find Files with SGID Set in Linux
To find files which have SGID set, type the following command.
To find files which have both SUID and SGID set, run the command below.
You may also like to read these useful guides about file permissions in Linux:
That’s it for now! In this guide, we showed you how to find files which have SUID (Setuid) and SGID (Setgid) set in Linux. If you have any questions, use the feedback form below to share any queries or additional thoughts about this topic.