3

1) Я не уверен, как работают разрешения для вложенных каталогов.

Предположим, у меня есть следующие каталоги / файлы и разрешения:

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Общественность действительно публична?

2) Если я хочу сделать Private по-настоящему приватным, имеет ли значение, использую ли я -R при выполнении 'chmod 700'?

3) Я прочитал, что Ubuntu по умолчанию использует домашнюю папку с возможностью чтения слов и отказывается ее исправлять. Но когда я делаю 'ls -lh', я получаю это: drwx ------ (700, верно?). Так что это? Они изменили свое мнение о домашней папке?

Примечание: я нахожусь на Ubuntu 12 VM

1 ответ1

3
~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Пользователь, который не является владельцем ~/Private/ и ~/Private/Group , не сможет получить доступ к папке Public с этими разрешениями.

В Unix/Linux вы должны добавить бит выполнения, чтобы пользователь мог проходить (переходить в каталог или проходить через него). Но вам не нужно предоставлять доступ для чтения. Так что попробуйте это вместо. Но имейте в виду, что пользователь должен знать, что каталоги Group и Public существуют, и у них не будет возможности использовать ls чтобы увидеть, существуют ли они, если только им не предоставлен доступ для чтения.

~/Private/ 711
~/Private/Group 771
~/Private/Group/Public 777

имеет ли значение, использую ли я -R при выполнении 'chmod 700'

Если вы запустите эту команду, вы будете изменять права доступа для каждого файла в каталоге ниже каталога, на который вы нацелены. Если у вас есть что-то с другими разрешениями, они будут потеряны. Я подозреваю, что вы также добавили бы бит выполнения ко многим обычным файлам, что обычно нежелательно.

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

find {directory_path} -type d -print0 | xargs --null -n 1 chmod 0700

Аналогичная команда для изменения только файлов будет выглядеть следующим образом.

find {directory_path} -type f -print0 | xargs --null -n 1 chmod 0600

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .