Числовой вариант (в восьмеричной системе):
Значение | Права доступа | Список файлов каталога |
---|
0 | Ничего не разрешено
| --- |
1 | Нельзя читать и писать, разрешено исполнять
| --x |
2 | Нельзя читать и исполнять, разрешено писать | -w- |
3 | Нельзя читать, разрешено писать и исполнять
| -wx |
4 | Разрешено читать, нельзя писать и исполнять
| r-- |
5 | Разрешено читать и исполнять, нельзя писать | r-x |
6 | Разрешено читать и писать, нельзя исполнять
| rw- |
7 | Разрешено всё | rwx |
Дать владельцу файла testfile все права (4+2+1=7), группе права на чтение и запись (4+2=6), остальным никаких прав:
$ chmod 760 file_name
Таким образом -rwxr-x—x — это 751 и drwxr-xr-x — это 755 в восьмеричной системе.
Поиск по буквенным правам
Итак, рассмотрим директорию, содержащую следующие шесть файлов, у которых различные комбинации прав доступа.
# ls -l
total 0
-rwxrwxrwx 1 root root 0 2009-02-19 20:31 all_for_all (всем всё разрешено)
-rw-r--r-- 1 root root 0 2009-02-19 20:30 everybody_read (все могут читать)
---------- 1 root root 0 2009-02-19 20:31 no_for_all (никому ничего не разрешено)
-rw------- 1 root root 0 2009-02-19 20:29 ordinary_file (обычный файл, запись и чтение разрешены пользователю)
-rw-r----- 1 root root 0 2009-02-19 20:27 others_can_also_read (владелец может читать и записывать, группв только читать)
----r----- 1 root root 0 2009-02-19 20:27 others_can_only_read (группе разрешено читать)
Найти файлы с разрешением чтения для группы, другие свойства не принимаются во внимание, т.е. главное, чтобы присутствовало право read группы.
# find . -perm -g=r -type f -exec ls -l {} ;
-rw-r--r-- 1 root root 0 2009-02-19 20:30 ./everybody_read (все могут читать)
-rwxrwxrwx 1 root root 0 2009-02-19 20:31 ./all_for_all
----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read
-rw-r----- 1 root root 0 2009-02-19 20:27 ./others_can_also_read
Найти файлы с только и исключительно с разрешением чтения для группы. Другие свойства должны быть закрыты.
# find . -perm g=r -type f -exec ls -l {} ;
----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read
Поиск в числовом варианте (восьмеричный):
Найти файлы с только и исключительно с разрешением чтения для группы. Другие свойства должны быть закрыты (то же что и в предыдущем примере, но в восьмеричном виде).
# find . -perm 040 -type f -exec ls -l {} ;
----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read
Поиск файлов с правами доступа 644 (в символьном виде их можно представить как rw-r--r--):
$ find ~ -perm 644
Ещё примеры. Поищем файлы, изменять которые разрешено каждому (то есть и владельцу, и группе и всем остальным). Приведенные варианты одинаковы; в первом используется традиционная запись в восьмеричной системе, во втором — символьная запись, применяемая командой chmod
:
$ find ~ -perm -222
$ find ~ -perm -ugo=w
Теперь ищем файлы, изменять которые можно кому-то конкретно: или владельцу, или группе владельца, или остальному миру:
$ find ~ -perm /222
$ find ~ -perm /ugo=w
Поиск пустых файлов (zero byte file)
Большая часть найденных пустых файлов — это заблокированные файлы и файлы, созданные приложениями.
# find ~ -empty
Список всех пустых файлов в домашней директории:
# find . -maxdepth 1 -empty
Список всех неспрятанных пустых файлов в текущей директории:
# find . -maxdepth 1 -empty -not -name ".*"