Мне подключили жесткий диск USB к моей машине Ubuntu (11.04). Каждый раз, когда я перезагружаю компьютер и вход в систему, он монтирует жесткий диск. Так как диск имеет NTFS на нем, Linux присваивается некоторому пользователю, чтобы быть владельцем файлов на диске. Таким образом, все файлы на диске кажутся принадлежавшими одному пользователю и только что пользователь видит файлы.
Я использую два учетных записей пользователей на своем компьютере и часто переключаюсь между ними. После того как я переключаюсь на другую учетную запись пользователя, я больше не могу получать доступ к содержанию диска, потому что это принадлежит моей первой учетной записи пользователя. Есть ли, что-нибудь может делаться с этим кроме монтирования его через/etc/fstab?
Спасибо.
Существует. Помещенный оба пользователя в группу вместе. Затем используйте ту группу для установки gid=
опция и и монтирует Ваш диск с полномочиями, которые Вы хотите, чтобы это имело. Можно управлять полномочиями с umask=
, fmask=
и dmask=
опции в команде монтирования. Вот пример:
mount -O dmask=007,fmask=117,gid=46,uid=1000 /dev/sdc1 /media/winhdd
Эти опции могут также использоваться в /etc/fstab
как это: UUID=7258CB9858CB598D /media/win ntfs rw,auto,user,exec,nls=utf8,dmask=007,fmask=117,gid=46,uid=1000 0 2
.
Я предполагаю, что Вы хотите избежать fstab потому что диск это не всегда соединяемый на начальной загрузке. Если Вы хотите избежать, чтобы fstab использовали правило udev. Udev может автоматически смонтировать (и препятствовать тому, чтобы Ubuntu автомонтировалась), когда диск соединен. Правило для этого может быть похожим на это:
# In /etc/udev/rules.d/70-usb-winhdd-mount.rules
KERNEL=="sd?[0-9]", ATTR{removable}=="1", ATTRS{serial}=="UA04FLGC", ACTION=="add", RUN+="mount -O dmask=007,fmask=117,gid=46,uid=1000 /dev/%k /media/winhdd"
Необходимо будет определить диск, он - свойства. В моем примере я сделал это ATTRS{serial}=="UA04FLGC"
. Я описал, как сделать это в другом вопросе. Именование и местоположение файлов правил описаны там также.
Если Вы хотите сделать это со всем съемным диском - не только, что конкретный, просто не учтите последовательную часть, и, несомненно, присвоят уникальную точку монтирования (считающий их, создавая из последовательного, % - символ udev или другого метода). Также, как указано в другом месте ENV{mount_options}="$env{mount_options},dmask=007,fmask=117,gid=46,uid=1000"
могла быть опция для монтирования всех съемных дисков с определенным permissions/onwership.
Это - команды оболочки, чтобы создать группу, названную 'winhdd' и добавить, что пользователь назвал 'confus' той группе:
groupadd winhdd
usermod -a -G winhdd confus
Можно найти идентификаторы группы всех групп в системе в файле названными /etc/group
. Записи там похожи winhdd:x:4:confus,narur,joe
где 'confus', 'narur' и 'joe' являются именами пользователей, принадлежащими той группе, 'adm' является именем группы и '4' идентификатор группы, Вы ищете. В /etc/groups
можно также проверить при добавлении, что пользователи группе были успешны. Команда getent group winhdd
показал бы строку с информацией о группе. id
команда дает Вам Ваш идентификатор группы, идентификатор пользователя и имена и идентификаторы всех групп, которым Вы принадлежите.
Вы захотите установить dmask=
к разумному значению, разрешающему Вам, по крайней мере, выполнить (=access) каталоги. fmask=
опция для полномочий файла.
dmask=007,fmask=117,gid=46,uid=1000
позволяет владельцу, который является кодом пользователя 1000 (первая цифра в масках) и члены группы номер 46 (вторая цифра в маске), чтобы читать и записать и файлы на диске. Другие пользователи не имеют никаких прав сделать что-либо (следовательно третья цифра в масках - 7). Вот значения маски:
7 – no permissions 6 – execute only 5 – write only
4 – write and execute 3 – read only 2 – read and execute
1 – read and write 0 – read, write and execute