Linux / Unix Find All The Files Owned By a Particular User / Group
Linux / Unix Find All The Files Owned By a Particular User / Group
Let us see how to use the find command to locate all files/folders owned by one or many users on Linux or Unix-like system.
Find file owned by a group
Tutorial details
Difficulty level
Easy
Root privileges
Yes
Requirements
Linux or Unix
Est. reading time
2m
Use the following syntax to find files owned by users(s) in Linux/Unix: find directory-location -group < group-name >-name < file-name > Where,
directory-location : Locate the file in this directory path.
-group : Find the file belongs to group-name.
-name : The file name or a search pattern
In this example, locate or find all files belongs to a group called “ftpusers” in the /home directory: # find /home -group ftpusers To find all *.c file belongs to a group called “ftpusers” in /data/project directory, run: # find /data/project -group ftpusers -name «*.c» OR do case insensitive search: # find /data/project -group ftpusers -iname «*.c»
Find all *.mp4 files by group vivek
Find file owned by user
The syntax is: find directory-location -user < username >-name < file-name > Where,
directory-location : Locate files or directories in this directory location.
-user < user-name >: Find the file belongs to user.
-name : File name or pattern.
In this example, locate or find all file belongs to a user called “vivek” in /var directory: # find /var -user vivek To find all *.pl (perl files) file belongs to a user called “vivek” in /var/www directory, enter: # find /var/www -user vivek -name «*.pl»
No ads and tracking
In-depth guides for developers and sysadmins at Opensourceflare✨
Join my Patreon to support independent content creators and start reading latest guides:
How to set up Redis sentinel cluster on Ubuntu or Debian Linux
How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
How to find files by users vivek and wendy
### match files only ## # find / -type f -user vivek -o -user wendy ### match dirs only ## # find / -type d -user vivek -o -user wendy
Conclusion
You just learned how to find all of the files created by a particular user/group and display them to the screen. For more info see find command man page.
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
Linux List All Users In The System Command
Tutorial requirements
Requirements
Linux
Root privileges
No
Difficulty
Easy
Est. reading time
5 mintues
Table of contents
Linux list all users account using the /etc/passwd file
In order to list all users on Linux, use the cat command as follows: $ cat /etc/passwd Here is what I see:
Each line in the file has seven fields as follows. For example, consider the following line: vnstat:x:131:137:vnstat daemon. /var/lib/vnstat:/usr/sbin/nologin Where,
No ads and tracking
In-depth guides for developers and sysadmins at Opensourceflare✨
Join my Patreon to support independent content creators and start reading latest guides:
How to set up Redis sentinel cluster on Ubuntu or Debian Linux
How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
vnstat – The user name or login name.
x – Encrypted password is stored in the /etc/shadow file.
131 – UID (user ID number)
137 – Primary GID (group ID number)
vnstat daemon – GECOS. It may includes user’s full name (or application name, if the account is for a program), building and room number or contact person, office telephone number, home telephone number and any other contact information.
/var/lib/vnstat – Home directory for the user.
/usr/sbin/nologin – Login shell for the user. Pathnames of valid login shells comes from the /etc/shells file.
How to list users in Linux using pagers
Of course we can use pagers such as more/less commands as follows to view the /etc/passwd file: $ more /etc/passwd $ less /etc/passwd Sample outputs:
Fig.01: List users using /etc/passwd
Linux list user names only
To list only usernames type the following awk command: $ awk -F’:’ ‘< print $1>‘ /etc/passwd Sample outputs:
Another option is to use the cut command: $ cut -d: -f1 /etc/passwd
Get a list of all users using the getent command
To get a list of all Linux users you can type the following getent command: $ getent passwd $ getent passwd | grep tom ## get a list all users ## $ getent passwd | cut -d: -f1 ## count all user accounts using the wc ## $ getent passwd | wc -l One can use the compgen command on Linux to list users and other resources too: $ compgen -u
Find out whether a user account exists in the Linux server
We can use above commands to see whether a user exists in the Linux machine as follows using the grep command:
A simplified command would be:
How to count user accounts in the Linux server
Want to get user accounts count on your system? Try the wc command as follows: $ compgen -u | wc -l $ getent passwd | wc -l
A Note About System and General Users
Each user has numerical user ID called UID. It is defined in /etc/passwd file. The UID for each user is automatically selected using /etc/login.defs file when you use useradd command. To see current value, enter: $ grep «^UID_MIN» /etc/login.defs $ grep UID_MIN /etc/login.defs Sample outputs:
1000 is minimum values for automatic uid selection in useradd command. In other words all normal system users must have UID >= 1000 and only those users are allowed to login into system if shell is bash/csh/tcsh/ksh etc as defined /etc/shells file. Type the following command to list all login users:
To see maximum values for automatic uid selection in the useradd command, enter: $ grep «^UID_MAX» /etc/login.defs Sample outputs:
In other words, all normal system users must have UID >= 1000 (MIN) and UID /etc/shells file. Here is an updated code to get details:
Источник
Команда find в Linux – мощный инструмент сисадмина
Иногда критически важно быстро найти нужный файл или информацию в системе. Порой можно ограничиться стандартами функциями поиска, которыми сейчас обладает любой файловый менеджер, но с возможностями терминала им не сравниться.
Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:
Дате добавления.
Содержимому.
Регулярным выражениям.
Данная команда будет очень полезна системным администраторам для:
Управления дисковым пространством.
Бэкапа.
Различных операций с файлами.
Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.
Синтаксис команды find:
directory-to-search (каталог поиска) – это отправной каталог, с которой find начинает поиск файлов по всем подкаталогам, которые находятся внутри. Если не указать путь, тогда поиск начнется в текущем каталоге;
criteria (критерий) – критерий, по которым нужно искать файлы;
action (действие) – что делать с каждым найденным файлом, соответствующим критериям.
Поиск по имени
Следующая команда ищет файл s.txt в текущем каталоге:
. (точка) – файл относится к нынешнему каталогу
-name – критерии по которым осуществляется поиск. В данном случае поиск по названию файла.
В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.
Для поиска всех изображений c расширением .png нужно использовать шаблон подстановки *.png:
Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:
Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.
Поиск по типу файла
Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:
f – простые файлы;
d – каталоги;
l – символические ссылки;
b – блочные устройства (dev);
c – символьные устройства (dev);
p – именованные каналы;
s – сокеты;
Например, указав критерий -type d будут перечислены только каталоги:
Поиск по размеру файла
Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.
«+» — Поиск файлов больше заданного размера
«-» — Поиск файлов меньше заданного размера
Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.
В данном случае поиск выведет все файлы более 1 Гб (+1G).
Единицы измерения файлов:
Поиск пустых файлов и каталогов
Критерий -empty позволяет найти пустые файлы и каталоги.
Поиск времени изменения
Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:
Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).
Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.
Поиск по времени доступа
Критерий -atime позволяет искать файлы по времени последнего доступа.
Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).
Поиск по имени пользователя
Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:
Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.
Поиск по набору разрешений
Критерий -perm – ищет файлы по определенному набору разрешений.
Поиск файлов с разрешениями 777.
Операторы
Для объединения нескольких критериев в одну команду поиска можно применять операторы:
Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:
Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.
Перед скобками нужно поставить обратный слеш «\».
Действия
К команде find можно добавить действия, которые будут произведены с результатами поиска.
-delete — Удаляет соответствующие результатам поиска файлы
-ls — Вывод более подробных результатов поиска с:
Размерами файлов.
Количеством inode.
-print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам.
-exec Выполняет указанную команду в каждой строке результатов поиска.
-delete
Полезен, когда необходимо найти и удалить все пустые файлы, например:
Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.
Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.
command – это команда, которую вы желаете выполнить для результатов поиска. Например:
rm
mv
cp
<> – является результатами поиска.
\; — Команда заканчивается точкой с запятой после обратного слеша.
С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:
Другой пример использования действия -exec:
Таким образом можно скопировать все .jpg изображения в каталог backups/fotos
Заключение
Команду find можно использовать для поиска:
Файлов по имени.
Дате последнего доступа.
Дате последнего изменения.
Имени пользователя (владельца файла).
Имени группы.
Размеру.
Разрешению.
Другим критериям.
С полученными результатами можно сразу выполнять различные действия, такие как:
Удаление.
Копирование.
Перемещение в другой каталог.
Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.