Chmod 700 скрывает каталог от других пользователей или просто ограничивает их для отображения файлов внутри каталога?

Мой домашний каталог содержит «проект» в качестве каталога, который содержит «конфиденциальный» в качестве подкаталога, а «конфиденциальный» содержит некоторые файлы.

Я просто хочу, чтобы только я мог получить доступ к этой папке, а другие пользователи не могут получить к ней доступ.

Я выполнил команду

Me:~ me$ chmod -R 700 project/confidential 

Me:~ me$ su Bob

bob:/home/me/project$ ls

code confidential

Здесь отображаются две папки для Боба, но Боб не может получить доступ конфиденциальные файлы, если он пытается их перечислить.

Итак, chmod не скрывает папку от других пользователей? Я хочу, чтобы другие пользователи имели доступ только к каталогу 'code', не являясь конфиденциальным, как я могу его скрыть?

2
задан 15 September 2019 в 15:55

1 ответ

Ваше дерево текущего каталога - что-то как:

/home/me/project/
/home/me/project/code/
/home/me/project/confidential/

Вы не можете скрыться confidential каталог, если Вы хотите, чтобы другие пользователи смогли узнать и получить доступ к какому-либо каталогу, кроме того confidential. Родительский каталог (/home/me/project/), очевидно, чтение потребностей и выполняет разрешение другим пользователям, чтобы они смогли перечислить содержание project каталог и узнать что каталог, названный code выходы. Поэтому они могут узнать, что другой каталог (названный confidential) присутствует, кроме того, code каталог.

<час>

Для завершенного сокрытия каталога confidential можно поместить его в другой подкаталог (скажите /home/me/project/etc/), и дайте 700 разрешений ему (etc каталог). Таким образом, другие пользователи будут видеть etc каталог, но не смогут измениться в него или перечислить его (или любой из его подкаталогов). Так confidential каталог будет полностью скрыт.

<час>

Другая опция может быть этим:

chmod 711 /home/me/project/
chmod 700 /home/me/project/confidential/

Таким образом, Вы предотвращаете других пользователей для чтения содержания project каталог: ls -l /home/me/project/ даст Permission denied ошибка. Но, они смогут изменение в project каталог или любой другой подкаталог , они знают, что это существует , и перечислите его: ls /home/me/project/code будет работать, обеспеченный code, каталог имеет "нормальное" (755) полномочия.

Однако в этой конфигурации, обратите внимание, что выводы следующих команд другие пользователи могут работать:

$ ls /home/me/project/confidential
ls: cannot open directory '/home/me/project/confidential': Permission denied
$ ls /home/me/project/other
ls: cannot access '/home/me/project/other': No such file or directory

Так, даже это решение не может быть идеальным, потому что другие пользователи могут определять название скрытого каталога методом проб и ошибок .

4
ответ дан 23 October 2019 в 02:04

Другие вопросы по тегам:

Похожие вопросы: