Я монтирую тестовый сервер в общую файловую систему на работе. Это монтирование cifs, поэтому я смотрю на эту страницу справки:https://linux.die.net/man/8/mount.cifs
Я хочу попробовать смонтировать в манере "знать как можно меньше", чтобы люди не мошенничали с общей файловой системой с тестового сервера. Так что в документации я вижу:
uid=arg устанавливает uid, который будет владеть всеми файлами или каталогами в смонтированной файловой системе, когда сервер не предоставляет информацию о владельце. Он может быть указан как имя пользователя или числовой uid. Если не указано, по умолчанию используется uid 0. Помощник mount.cifs должен быть версии 1.10 или выше, чтобы поддерживать указание uid в нечисловой форме. Для получения дополнительной информации см. раздел ВЛАДЕЛЬЦЫ ФАЙЛОВ И КАТАЛОГОВ И РАЗРЕШЕНИЯ ниже.
Звучит хорошо. Но вот мой вопрос:
- Как проверить, предоставляет ли сервер информацию о владельце, и если да, то как узнать, что это на самом деле?
Бонусный вопрос:
- Какой смысл предоставлять разрешения, если их можно просто переопределить
file_mode=0777,dir_mode=0777
?
решение1
Вы смотрите на CIFS, а не на NFS. Я никогда не сталкивался с методом извлечения информации о владельце из общего ресурса Windows CIF с помощью инструментов Linux (если кто-то знает как - докажите, что я не прав!). Вот как это работает:
- На сервере предоставленные вами учетные данные определяют ваш доступ. Вы не можете «переопределить» доступ только для чтения с помощью
file_mode=0777
, вы получите отказ в доступе при попытке записи файла в таком случае. - Поскольку общий ресурс CIFS по умолчанию не экспортирует никакой информации о владельце, параметры
uid
,gid
,umask
,file_mode
,dir_mode
предоставляют способ разместить безопасность файлов Linux поверх смонтированного общего ресурса. Таким образом, вы можете сказать, что только определенный локальный пользователь/группа Linux может читать/писать в ваш смонтированный общий ресурс. Если вы не предоставите эти параметры во время монтирования, будут использоваться значения по умолчанию (скорее всего,uid=0, gid=0, umask=0
для всех каталогов и файлов внутри этого общего ресурса) - Глядя на официальныйдокументация, можно прочитать, что есть "расширения unix для CIFS", которые позволяют экспортировать информацию о владельце uid / gid. Но я не знаю, есть ли способ определить, поддерживает ли сервер эти расширения.