У меня есть странная проблема с тем, что каталог виден и доступен для просмотра пользователю root, но не обычным пользователям (даже sudoer). Я запускаю команду ls -alF в каталоге, содержащем данную папку, и получаю это от пользователя root (и с помощью sudo ls -alF):

...
drwxrwxrwx+   1 root root 12288 Mar 22 22:13 os/
...

Я также получаю это из той же команды, запускаемой пользователем без полномочий root:

...
d?????????   ? ?    ?        ?            ? os/
...

Я иду, чтобы проверить ACL соответствующего каталога с помощью getfacl os , и я получаю это:

# file: os
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

Это точка монтирования раздела NTFS, смонтированного с помощью ntfs-3g, со следующей записью /etc /fstab (она была смонтирована с ее использованием):

UUID=<uuid>  /os  ntfs-3g  hide_hid_files,hide_dot_files,windows_names,no_def_opts,big_writes  0  0

1 ответ1

1

Я решил мою проблему следующим образом: добавив permissions к моим опциям, сделав мою запись в /etc /fstab следующим образом:

UUID=<uuid>  /os  ntfs-3g  hide_hid_files,hide_dot_files,windows_names,no_def_opts,big_writes,permissions  0  0

Для тех из вас, кому любопытно, вот мои рассуждения. Опция permissions использует стандартное управление доступом, в то время как опция acl позволяет устанавливать ACL POSIX (Windows не имеет ни малейшего представления, что это такое). Первый лучше в том, что он не пытается учитывать списки управления доступом Windows, что может привести к проблемам несовместимости с разрешениями по сравнению с разрешениями POSIX. Некоторые сборки не имеют опцию acl , но по крайней мере те, которые поставляются с бинарными файлами Ubuntu, имеют.

Если вы хотите максимальной совместимости с Windows и Linux без большого риска возникновения проблем, вы можете использовать следующие опции:

  • permissions - позволяет лучше обрабатывать разрешения, общие для Windows и Linux. Он указан как параметр по умолчанию, но по умолчанию переопределяется acl если он не передан. Таким образом, для обеспечения совместимости с другими сборками безопаснее явно передать это.
  • windows_names - гарантирует, что имена файлов / папок ограничены тем, что изначально поддерживается Windows. Например: Windows не может поддерживать символ : потому что он обозначает именованные потоки данных, а символ / является стандартным использованием для параметров командной строки в Windows.
  • big_writes - исключает необходимость деления записей на разделы по 4 КБ, что позволяет приложениям писать за один шаг. Хотя это не установлено по умолчанию, это практически всегда лучше с точки зрения производительности.

Если я что-то пропустил, это помечается как вики сообщества.

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