Мой домашний каталог содержит «проект» в качестве каталога, который содержит «конфиденциальный» в качестве подкаталога, а «конфиденциальный» содержит некоторые файлы.
Я просто хочу, чтобы только я мог получить доступ к этой папке, а другие пользователи не могут получить к ней доступ.
Я выполнил команду
Me:~ me$ chmod -R 700 project/confidential
Me:~ me$ su Bob
bob:/home/me/project$ ls
code confidential
Здесь отображаются две папки для Боба, но Боб не может получить доступ конфиденциальные файлы, если он пытается их перечислить.
Итак, chmod не скрывает папку от других пользователей? Я хочу, чтобы другие пользователи имели доступ только к каталогу 'code', не являясь конфиденциальным, как я могу его скрыть?
Ваше дерево текущего каталога - что-то как:
/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
Так, даже это решение не может быть идеальным, потому что другие пользователи могут определять название скрытого каталога методом проб и ошибок .