Можно ли в опциях fstab использовать uid и gid в виде имени пользователя и группы, или они должны быть числовыми?

Вопрос или проблема

Я изучаю, как настроить tmpfs в fstab для пользователя www-data, и мне интересно, могу ли я использовать фактические имена пользователя/группы вместо числовых идентификаторов (личное предпочтение)?

Я на Debian с ext4, отформатированным с “msdos” во время установки.

Похоже, это работает, но мне интересно, является ли это особенностью Debian или это будет работать на разных платформах (мне нравится переносимость)?

Вот что у меня есть:

$ vim /etc/fstab

# Временные файлы PHP.
tmpfs /tmpfs/php-session tmpfs defaults,size=512M,mode=1700,uid=www-data,gid=www-data,noexec,nodev,nosuid 0 0
tmpfs /tmpfs/php-upload  tmpfs defaults,size=256M,mode=1700,uid=www-data,gid=www-data,noexec,nodev,nosuid 0 0

Программа Linux mount интерпретирует ненумерические параметры для опций uid и gid как имена пользователя и группы соответственно. Это применяется ко всем типам файловых систем. Это работает как в случае, если опции поступают из командной строки, так и если они поступают из /etc/fstab.

Источник: источник (старый (parse_opt), новый (mnt_optstr_fix_gid, mnt_optstr_fix_uid)).

Если вы используете файловую систему ext, опции uid и gid игнорируются, так как разрешения устанавливаются самой файловой системой.

Для цитаты gilles из другого ответа:

На файловой системе ext4 (как и ext2, ext3 и большинстве других файловых систем, имеющих unix-источник) действительные разрешения файлов не зависят от того, кто смонтировал файловую систему или от опций монтирования, а только от метаданных, хранящихся внутри файловой системы.

Один из способов решить эту проблему – это chown или chgrp файловую систему в какой-то момент после монтирования.

На мой взгляд, это своего рода хак, но что я сделал, так это в пути /mnt у меня есть /mnt/somefolder, что я сделал, так это вручную создать эту папку перед монтированием чего-либо, а затем изменить владельца и группу на мой uid/gid. После этого каждый раз, когда fstab монтируется, он сохраняет эти разрешения/право собственности.

то есть.

sudo mkdir /mnt/somefolder
#получить uid и gid
id -u
id -g

#изменить владельца
sudo chown {uid}:{gid} /mnt/somefolder

#теперь монтируйте с тем, что вы настроили в fstab
sudo mount -a

Ответ или решение

Вопрос о том, могут ли параметры uid и gid в файле /etc/fstab в Linux быть указаны в виде имен пользователей и групп, а не только в числовом формате, является актуальным во время настройки системных файлов. Давайте рассмотрим этот вопрос более детально.

Возможные значения для uid и gid

В контексте Linux, когда вы настраиваете файлы системных монтирований, такие как в fstab, параметры uid и gid могут принимать как числовые значения (например, 33 для пользователя www-data), так и строковые значения (имя пользователя или группы, например, www-data). Система mount в Linux интерпретирует несчисловые параметры как имена пользователей и групп. Это относится не только к опциям, заданным в fstab, но и к тем, что передаются через командную строку. Таким образом, использование имен пользователей и групп является допустимым и поддерживается.

Платформенная совместимость

Это поведение не является особенностью какой-либо конкретной Linux-дистрибутив, такой как Debian, а является частью общего поведения Linux. Следовательно, использование имен пользователей и групп вместо числовых идентификаторов сделает вашу конфигурацию переносимой между различными дистрибутивами Linux.

Хранение прав доступа в файловых системах

Однако важно понимать, что для файловых систем, таких как ext4, параметры uid и gid в некоторых случаях могут игнорироваться. Это происходит потому, что файловая система сама хранит метаданные о разрешениях, и права доступа зависят от этих метаданных, а не от параметров, заданных при монтировании. Как упоминалось в вашем источнике, effective permissions основаны на информации внутри файловой системы, а не на параметрах монтирования. Это означает, что даже если вы укажете идентификаторы в fstab, они будут игнорироваться при использовании ext4.

Рекомендации по управлению правами доступа

Для управления правами доступа к временным файловым системам, таким как tmpfs, вы можете использовать команды chown и chgrp для изменения владельца каталога после его монтирования. Это даст вам возможность установить необходимые права доступа. Ваша предложенная стратегия создания каталога предварительно и последующего изменения его владельца является хорошим подходом для гарантии правильных разрешений при каждом монтировании.

Выводы

  1. Использование имен пользователей и групп: Возможность использования имен вместо числовых идентификаторов поддерживается и является функциональным на всех дистрибутивах Linux.

  2. Игнорирование параметров uid и gid для ext4: Будьте внимательны, что права доступа на файлы, созданные в файловой системе ext4, определяются самими метаданными системы, а не параметрами монтирования.

  3. Управление правами через chown: Рекомендуется использовать chown и chgrp для задания прав на монтируемые системы, чтобы гарантировать, что необходимые права доступа будут установлены.

Эта информация позволит вам более уверенно настраивать временные файловые системы и обеспечивать их правильное функционирование в ваших окружениях Linux.

Оцените материал
Добавить комментарий

Капча загружается...