есть ли способ совместного использования раздела в формате ext3 / ext4 на внешнем USB-накопителе между разными пользователями (uid) на разных машинах Linux без создания группы для этой цели, установки группового владения разделом в эту группу и добавления каждого соответствующего пользователя группе на каждой машине?
Это означало бы, что мне нужны права root на каждой машине ... которых у меня может не быть в некоторых случаях.
Я использую этот раздел для хранения кода, который разрабатываю для Linux, и хотел бы, чтобы этот вариант был безопасным ... если это возможно.
Я мог бы использовать vfat-раздел, но тогда у меня нет контроля над правами rw + я не могу разрабатывать прямо в каталоге: мне всегда приходилось бы tar.gz каталог, извлекать, работать, tar.gz, копировать на внешний диск. .. и так далее.
Спасибо!
Общий ответ - «нет». uid и gid в файловой системе будут такими, как установлены в момент записи, и если они не совпадают на другой машине, то и привилегии не будут совпадать.
Если вы не хотите совершать небольшую революцию с uids / gids на нескольких машинах, вы можете попробовать использовать acls для установки желаемых разрешений для всех желаемых пользователей на всех машинах. Я подозреваю, что это будет использовать числовые uid внутри, поэтому может случиться так, что предоставление доступа к вашей учетной записи foo на машине A, uid a, предоставит доступ к вашим файлам случайной панели парня на машине B, uid a. Также кажется, что это больше хлопот, чем того стоит.
Я думаю, что более разумным подходом было бы использовать tar для переноса вашего дерева разработки.
У меня также была недоработанная идея носить с собой репозиторий Subversion (с файлами, доступными для записи только root и соответствующими файлами конфигурации доступа), и полагаться на то, что сервер svn присутствует на всех машинах, которые вы собираетесь использовать, но я не думаю, что это чрезмерно разумно.
Я обнаружил, что sys
идентификатор общего ресурса группы 3
на Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.
Ни одно другое имя группы не имеет такой же идентификатор. Четный root
группа с идентификатором 0
в некоторых системах на самом деле wheel
. И nogroup
в Linux обычно 65534
но на BSD есть 32766
((
Установите бит segid и ACL (включая значение по умолчанию) на sys
в каталоге на внешнем хранилище:
$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir
После добавления user
к sys
сгруппируйте его, способный читать и писать /mnt/data/dir
на любом хосте. Вам больше не нужно sudo
привилегии каждый раз к грандиозному доступу.
sys
группа и setgid
немного работает хорошо, но обходной путь uname
маску нужно использовать ACL.
Это лучшее, что ты можешь сделать.
UNIX не предназначен для личного / домашнего использования. Это корпоративная / корпоративная ОС, в которой не определено подключение съемных носителей к разным хостам ((
Смотрите также: