Как открыть общий доступ к папке, если домашняя папка зашифрована и имеет код 700?

Как открыть общий доступ к папке, если домашняя папка зашифрована и имеет код 700?

Примечание: я использую Ubuntu 12. Я не полный новичок (я могу настроить защищенный веб-сервер и тому подобное), но теперь, когда я пытаюсь использовать его в качестве рабочего стола, у меня такое чувство, будто я так и не изучил основы.

Есть ли папка по умолчанию в Linux для обмена данными между локальными пользователями? Я думал, что /usr/share для этого, но она не позволяет мне это сделать, пока я не использую sudo.

Я заметил, что есть пункт «параметры общего доступа», когда я нажимаю правой кнопкой мыши на папке, но я беспокоюсь, что это может сделать что-то за кулисами, что мне не понравится. Так как это работает? Будет ли сложно сделать то же самое из cli?

решение1

Единственные готовые папки, которые можно использовать для этого, это /tmp и /var/tmp. /tmp можно очищать при каждой перезагрузке, а /var/tmp можно удалить через какой-то период времени, например, через неделю. В любом случае, они длявременныйфайлы. Даже если Ubuntu 12.04 не коснется /var/tmp, вы никогда не знаете, что сделает следующая версия, поэтому вы всегда должны предполагать, что содержимое этих каталогов может быть удалено без предупреждения.

Если тот факт, что они временные, является проблемой, вам нужно другое решение. Если я хочу, чтобы другие локальные пользователи имели доступ на чтение моих файлов, я устанавливаю режим моего домашнего каталога на 755 (это то, что я обычно делаю); но в этом случае я забочусь о том, чтобы все секретные файлы или каталоги в моем домашнем каталоге были установлены на 600 или 700 соответственно.

Обычно достаточно сочетания временных файлов + домашнего каталога, доступного для чтения всем. Если вам действительно нужна общая папка, вам нужно создать, например, /home/shared и установить для нее значение 777 или 1777 (1777 означает, что все могут писать, как и 777, но только владелец файла может удалить файл). Более продвинутые настройки включают установку бита setgid каталога и игру с группами пользователей, но я не буду подробно останавливаться на этом.

Мне вообще не нравится режим 711 для каталогов; я нахожу его запутанным, и неясно, насколько он безопасен (я предпочитаю считать, что «читаемый» означает «читаемый», даже если для доступа к нему приходится угадывать его имя).

В заключение следует сказать, что решение зависит от того, что вы пытаетесь сделать.

решение2

Если вы даете разрешения на выполнение, но не на чтение для каталога, то процесс сможет перемещаться по каталогу, но не сможет читать его содержимое. Это позволит получить доступ к подкаталогам внутри него. Короче говоря, 0711.

решение3

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

Например, вы создаете каталог с именем /shares (или как вам больше нравится) и связываете все каталоги, которые должны быть доступны для общего доступа, с ним (предварительно необходимо создать /shares/user):

mount --bind /home/user/private/stuff/share /shares/user

Итак, только сам ресурс должен быть доступен другим, /home/user может быть 0700 (а также приватным, и т. д.). Чтобы сделать это постоянным, вам придется добавить запись в /etc/fstab:

/home/user/private/stuff/share /shares/user none bind 0 0

Команда монтирования или редактирование /etc/fstab потребуют привилегий root, поэтому при использовании непривилегированной учетной записи добавляйте к командам префикс «sudo».

Связанный контент