Если я изменю 700 домашний каталог пользователя (в Linux), гарантирует ли это, что другие непривилегированные пользователи не могут получить доступ к любому подкаталогу или файлу в этом домашнем каталоге? Или из этого есть скрытые исключения?
Чтобы быть конкретным, если у меня есть каталог / home / foo с номером 700, и в нем есть подкаталог "bar" с номером 777, может ли любой другой пользователь на системной панели читать? Или он гарантированно не читается?
Да. Чтобы другой пользователь мог перейти в какие-либо подкаталоги, ему необходимо прочитать базовый каталог. Если у него нет разрешений (например: 700), он не сможет ничего там прочитать. Также убедитесь, что базовый каталог (/ home / foo) принадлежит пользователю foo. Пользователь bar не должен иметь к нему доступа.
Наличие 700 завивок в каталоге - это только первый шаг в правильном направлении.
Если / home / foo - 700, а / home / foo / bar - 777, любой может писать в bar, если он знает, что bar есть, так как у них нет прав на просмотр / home / foo. Вот почему иногда вам может понадобиться запустить chmod -R o-rwx / home / foo. Также, чтобы предотвратить проблемы в будущем, установите для umask более ограниченное значение, например 077 или 027, в зависимости от ваших потребностей.
Кроме того, вы должны убедиться, что все файлы в / home / foo / принадлежат нужному пользователю (в данном случае, вероятно, пользователю с именем foo). Если у вас есть файлы, принадлежащие кому-то другому, то 700 будет защищать доступ к этому файлу для его владельца, а не владельца каталога, в котором он находится.