Почему другие пользователи могут видеть файлы в моей домашней папке?

36

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

Что является рациональным для настройки таких слабых разрешений?

ændrük
источник
Связанные: unix.stackexchange.com/a/315197/85039
Сергей Колодяжный

Ответы:

32

В Publicвашем домашнем каталоге ( /home/user) существует папка для обмена файлами с другими пользователями. Если другой пользователь хочет получить доступ к этой Publicпапке, бит выполнения для мира должен быть установлен в домашнем каталоге.

Если вам не нужно разрешать другим пользователям доступ к вашей домашней папке (другим пользователям или пользователям, например, www-dataдля веб-сервера), у вас все будет в порядке chmod o-rwx "$HOME"(удалите чтение / запись / выполнение из «другого», что эквивалентно тому, chmod 750 "$HOME"что разрешение по умолчанию равно 750 ). В противном случае вам также следует изменить этот umaskпараметр, чтобы вновь созданные файлы по умолчанию не получали разрешения на чтение для всего мира.

Для общесистемной конфигурации отредактируйте /etc/profile; индивидуальные настройки могут быть настроены в ~/.profile. Я предпочитаю одинаковую политику для всех пользователей, поэтому я отредактирую /etc/profileфайл и добавлю строку:

umask 027

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

Теперь, чтобы исправить существующие разрешения, вам нужно удалить разрешения на чтение / запись / выполнение из других:

chmod -R o-rwx ~

Теперь, если вы решили открыть общий ~/Publicдоступ к папке, выполните следующие команды:

  • chmod o+x ~- разрешить всем спускаться в каталог ( x), но не получать список каталогов ( rне следует добавлять)
  • find ~/Public -type f -exec chmod o+r {} \; - разрешить всем читать файлы в ~/Public
  • find ~/Public -type d -exec chmod o+rx {} \; - разрешить всем спускаться в каталоги и перечислять их содержимое

Если вы используете GNU coreutils (например, в Ubuntu, а не во встроенной системе, имеющей только busybox), тогда две предыдущие команды, использующие findи chmodмогут быть заменены этой единственной командой, которая рекурсивно делает папки и файлы читаемыми (и дополнительно добавляет команду execute (нисходящую) немного только для каталогов ):

chmod -R o+rX ~/Public
Lekensteyn
источник
13

По словам сотрудника Ubuntuforms.org , это облегчает обмен файлами между новыми пользователями.

Вы можете изменить разрешение на 700 или 750, если не хотите, чтобы файлы читались и выполнялись другими.

Команда это:

chmod 750 $HOME

Примечание: Ubuntu по умолчанию 755

Джейсон Айверсон
источник
2
Конечно, другие пользователи не должны быть sudoers .
Пабло А
7

По словам Марка Шаттлворта ,

«Большинство пользователей систем Ubuntu либо имеют исключительное право пользования машиной (личным ноутбуком), либо делятся ими с друзьями и родственниками. Мы предполагаем, что люди, которые используют эту машину, либо доверяют, либо могут взломать машину (загрузка). от USB!) тривиально. В результате мало что принесет пользу "

... от удаления этих разрешений.

обманчивая надежда
источник
12
Я думаю, что такое же поведение в версии для сервера - это дыра в безопасности
warvariuc
4
Это сумасшедшие объяснения. Помимо учетных записей пользователей, существуют технические учетные записи, которые люди могут использовать для изоляции приложений. Кроме того, есть много инструкций о том, как настроить локальный FTP-сервер, который по существу разделяет учетную запись на машине.
Барафу Альбинос
4
Я знаю, что это старая тема, но считаю это глупым решением. Представьте, что один из пользователей запускает приложение / скрипт (может быть непреднамеренно), который может читать и отправлять файлы из любого другого профиля.
mauron85
5

Вы можете прочитать раздел « Управление пользователями» в Руководстве по серверу Ubuntu, в котором описаны необходимые детали. Профиль пользователя Безопасность пункт, скорее всего , ответит на ваши вопросы - официально.

Павлос Г.
источник
4
Я ценю официальный источник. К сожалению, это не выглядит как оправдание.
ændrük
1

Я думаю, что ответ Лекенштейна можно улучшить, заменив две последние команды поиска на chmod с помощью опции -X (обратите внимание на заглавную букву X). Две команды поиска могут быть заменены на

chmod -R o+rX ~/Public

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

раскрутить
источник
0

Поскольку вас интересует конфиденциальность (судя по примененным тегам), вполне возможно, что установка разрешений недостаточна (см . Ответ Игниса ). Ответ может быть что-то вроде зашифрованного домашнего каталога . Это решение специально разработано для защиты от атак другого пользователя компьютера. Конечно, он не сможет помешать другим пользователям повредить ваши файлы (просто удалив ~/.Privateкаталог, удалив при этом все ваши файлы), но он не сможет смонтировать каталог и увидеть файлы без вашего пароля.

Самый простой способ добиться этого во время процесса установки - установить флажок «Зашифровать ваш домашний каталог», и вам нужно выбрать его.

Поскольку маловероятно, что вы захотите переустановить только для этого (и поскольку он по-прежнему несет в себе все риски, связанные с выполнением этого без переустановки), вы можете сделать следующее:

sudo apt-get install encryptfs-utils
encryptfs-migrate-home
v010dya
источник
-1

Если вам действительно нужен высокий уровень безопасности: переустановите и убедитесь, что вы выбрали вариант шифрования всего диска. Для этого потребуется пароль, чтобы даже запустить машину. Вы можете, конечно, также зашифровать свою домашнюю папку еще раз, с некоторым снижением производительности; хотя не заметно для нормального использования.

Обратите внимание, что шифрование вашей домашней папки отключит такие приложения, как Dropbox. Dropbox не является безопасным хранилищем, которое в любом случае соблюдает конфиденциальность, так что это может быть банальным моментом. Однако, если вам действительно нужно безопасное и частное хранилище в облаке, я лично рекомендую MEGAsync, поскольку только у вас будут ключи для доступа к данным.

СЛС
источник