Как запретить листинг каталогов в Linux
В этом кратком руководстве мы увидим, как запретить вывод списка каталогов в Linux из командной строки. Другими словами, мы запретим обычным пользователям просматривать содержимое каталога с помощью команды ls
, но при этом разрешим пользователям получать доступ и изменять файлы из того же каталога.
Запретить листинг каталогов в Linux
Давайте создадим каталог 'test
' с несколькими файлами в нем.
mkdir test
touch test/{file1,file2}.txt
Теперь установите соответствующие разрешения для каталога 'test
' с помощью команды chmod
:
chmod 0111 test/
Эта команда запретит обычным пользователям просматривать содержимое каталога «test
».
Давайте проверим права доступа к каталогу:
ls -ld test/
Пример вывода:
d--x--x--x 2 ostechnix ostechnix 4096 Dec 21 18:23 test/
Как видно из приведенного выше вывода, тестовый каталог имеет только разрешение на выполнение (x). Разрешения на чтение (r) и запись (w) отозваны. Это означает, что обычные пользователи не могут получить доступ к содержимому каталога с помощью команды ls
.
Давайте попробуем просмотреть содержимое каталога с помощью команды ls
:
ls test/
Пример вывода:
ls: cannot open directory 'test/': Permission denied
Видеть? Мы не можем перечислить содержимое каталога. Потому что мы отключили список каталогов для «тестового» каталога.
Однако мы по-прежнему можем получить доступ к файлам в каталоге, используя их имя.
echo "Welcome to OSTechNix blog" > test/file1.txt
cd test/
cat file1.txt
Welcome to OSTechNix blog
Запретить листинг каталогов в Linux
Этот трюк может быть полезен для защиты содержимого каталога на веб-сайте. Этот метод является одним из способов запретить ботам сканирование веб-каталога. Разумеется, пользователи super и root могут получить доступ к каталогу без каких-либо ограничений.
Связанное чтение:
- Как просмотреть древовидную структуру каталогов в Linux
- Различные способы отображения содержимого каталога без использования команды ls
- Как выполнить cd и ls одной командой