как предоставить всем пользователям разрешение на чтение и запись для файлов в общем каталоге

Я установил систему Ubuntu на диске SS и хочу, чтобы пользователи получили доступ к разделам второго (механического) диска в качестве общих хранилищ с полными разрешениями на чтение / запись / удаление для каждого файла. И я хочу, чтобы каждый пользователь видел такой раздел (например, / dev / sdb7) как каталог с фиксированным именем (например, / home / the_user / F). Мне было сообщено (возможно ли установить раздел как общий хранилище для пользователей с таким же относительным путем?), Чтобы монтировать раздел во время загрузки и символизировать эту точку монтирования где-то в доме пользователя. Однако в руководстве для link я вижу вариант ‘-d’ ‘-F’ ‘--directory’ Allow users with appropriate privileges to attempt to make hard links to directories. However, note that this will probably fail due to system restrictions, even for the super-user. , которого я боюсь. Пожалуйста, сообщите мне пример правильной ссылки; и соответствующие команды группы или bindfs, которые будут использоваться при входе пользователя или один раз навсегда с помощью корня. Спасибо!

1
задан 28 August 2017 в 00:39

6 ответов

Вам не нужно использовать жесткие ссылки, на самом деле мы не можем создать жесткую ссылку на каталог, потому что она делает цикл в иерархии файловой системы.

Вы должны использовать опцию -s для создания символической ссылки:

Предположим, что я установлен /dev/sda7 на /media/some/mount/point. Чтобы создать ссылку на этот путь, мне нужно запустить:

ln -s [target] [symlink]

Нравится:

ln -s /media/some/mount/point /home/username/F

Разрешение ссылки было бы 777, но, как бы символическая ссылка не отличалась от вы фактический каталог, он предоставляет только доступ к symlink и пользователь должен иметь правильные разрешения, чтобы иметь возможность работать с файлами в /media/some/mount/point.

1
ответ дан 18 July 2018 в 07:49

Что касается вашей обеспокоенности в отношении ссылки на смонтированный каталог, это звучит так, как будто вы просто наткнулись на неправильную программу. Согласно вашему сообщению, вам рекомендуется создавать символические ссылки (т. Е. Символические ссылки). Однако команда link создает только жесткие ссылки. Для создания символических ссылок вы можете использовать команду ln, а именно:

ln -s /path/to/mount/point /home/the_user/F

Что касается общего доступа, вы можете установить это с помощью списков управления доступом (списки управления доступом), например:

sudo setfacl -Rm g:mount-group:rwx /path/to/mount/point sudo setfacl -Rdm g:mount-group:rwx /path/to/mount/point

Чтобы продемонстрировать, что это может выглядеть и дать вам отправную точку для экспериментов, вот более длинный пример, который привязывает-монтирует каталог (вы замените его на фактическое монтирование, которое вы хотите), устанавливает его право собственности и разрешения (с использованием списков управления доступом), а затем создает в нем символическую ссылку внутри другого каталога:

# Create a group to own the shared mount sudo groupadd mount-group # Create a user that belongs to this group sudo adduser mount-user sudo usermod -a -G mount-group mount-user # Create a directory to mount mkdir /tmp/mount-source # Create the mount-point mkdir /tmp/mount-target # Bind-mount the directory onto the mount point sudo mount --bind /tmp/mount-source /tmp/mount-target # Set the group owner for the mounted volume sudo chown :mount-group /tmp/mount-target # Set the group permissions to match the user permissions sudo chmod -R g=u /tmp/mount-target # Set the setgid bit on the mounted volume sudo chmod g=u,g+s /tmp/mount-source # Set the ownership and permissions for the mounted volume using an ACL sudo setfacl -Rm g:mount-group:rwx /tmp/mount-target # Set the default ownership and permissions for files created inside the mount-point sudo setfacl -Rdm g:mount-group:rwx /tmp/mount-target # Login as the test user su -l mount-user # Link a subdirectory inside the user's home folder to the mounted volume ln -s /tmp/mount-target ~/link-to-mount-target # Create a new file inside the mounted volume echo 'Hello world!' > ~/link-to-mount-target/hello.txt # Check the permissions on the new file getfacl ~/link-to-mount-target/hello.txt
0
ответ дан 18 July 2018 в 07:49

Я думаю, что ваш вопрос нуждается в двух двухкратном ответе: во-первых, при установке устройства в файловой системе, а во-вторых, при привязке места назначения.

Прежде чем вы начнете

Следующие объяснения требуют использования терминальной программы (сочетание клавиш: Ctrl + Alt + t) для ввода команд.

Вам также понадобятся привилегии суперпользователя. Обычно (как первый пользователь после новой установки) вы получаете привилегии, набрав sudo перед командой. После этого (обычно, если вы первый пользователь после новой установки), вы должны предоставить свой пароль перед запуском команды.

Ваш жесткий диск («механический» диск) должен быть подключен к ваш компьютер уже и правильно отформатирован с файловой системой (например, ntfs или ext4).

Остерегайтесь! Изменяя файл fstab, вы работаете с внутренними компонентами, которые могут остановить загрузку вашего компьютера. Это не является постоянным ущербом, но для ремонта потребуется время и время.

Если вы сомневаетесь в каком-либо из вышеуказанных предварительных условий, спросите в комментарии.

Установка диска при загрузке

Монтаж диски в процессе загрузки выполняются в файле /etc/fstab. Для этого вам нужно знать UUID вашего «механического» диска или, по крайней мере, его имя в каталоге /dev.

Найти UUID и имя (похожее на /dev/sdb5) вашего диска :

ls -l /dev/disk/by-uuid

Он будет указан здесь. Теперь определите файловую систему. Он будет указан в последнем столбце соответствующей строки

sudo fdisk -l | less

Затем выберите путь монтирования и создайте его:

sudo mkdir -p /media/shareddrv

Зная UUID диска, имя и тип файловой системы, ваша строка конфигурации для /etc/fstab выглядит так:

UUID=481aba75-c8a7-4b70-bdc4-fab4de7c1410 /media/shareddrv ext4 errors=remount-ro 0 2

, где UUID=481aba75-c8a7-4b70-bdc4-fab4de7c1410 может быть чем-то вроде /dev/sdb5, если у вас возникли проблемы с установкой UUID , Часть /media/shareddrv - это местоположение, которое вы определили, а ext4 - тип раздела и будет отличаться в зависимости от вашего диска. Остальное остается предпочтительно, как и здесь.

Вы должны добавить всю эту строку к своему /etc/fstab. Поскольку есть много способов сделать это, достаточно удобно использовать sudo nano /etc/fstab и набрать / вставить строку в конце файла.

Теперь сделайте, чтобы ваши изменения работали для вас: самый простой способ это RESTART ваш компьютер (например, sudo init 6 или sudo shutdown -h now). Если все работает, вы увидите свой «механический» диск и его точку монтирования после ввода: df -h в терминале.

Связывание диска в пользовательских каталогах

Эта часть может выполняться пользователем-после-пользователя, полу-вручную. Для пользователя «alice» запустите:

TMPUNAME=alice; sudo -u $TMPUNAME ln -s /media/shareddrv /home/$TMPUNAME/F

И повторите это для каждого пользователя. В конце вы могли бы unset TMPUNAME, но не обязательно.

Надеюсь, все работает на вас. Если вы найдете этот мини-учебник полезным, пожалуйста, поддержите мой ответ и отметьте его как полезный. Спасибо! Также задайте больше вопросов, если что-то не ясно или не работает!

0
ответ дан 18 July 2018 в 07:49

Вам не нужно использовать жесткие ссылки, на самом деле мы не можем создать жесткую ссылку на каталог, потому что она делает цикл в иерархии файловой системы.

Вы должны использовать опцию -s для создания символической ссылки:

Предположим, что я установлен /dev/sda7 на /media/some/mount/point. Чтобы создать ссылку на этот путь, мне нужно запустить:

ln -s [target] [symlink]

Нравится:

ln -s /media/some/mount/point /home/username/F

Разрешение ссылки было бы 777, но, как бы символическая ссылка не отличалась от вы фактический каталог, он предоставляет только доступ к symlink и пользователь должен иметь правильные разрешения, чтобы иметь возможность работать с файлами в /media/some/mount/point.

1
ответ дан 24 July 2018 в 18:53

Что касается вашей обеспокоенности в отношении ссылки на смонтированный каталог, это звучит так, как будто вы просто наткнулись на неправильную программу. Согласно вашему сообщению, вам рекомендуется создавать символические ссылки (т. Е. Символические ссылки). Однако команда link создает только жесткие ссылки. Для создания символических ссылок вы можете использовать команду ln, а именно:

ln -s /path/to/mount/point /home/the_user/F

Что касается общего доступа, вы можете установить это с помощью списков управления доступом (списки управления доступом), например:

sudo setfacl -Rm g:mount-group:rwx /path/to/mount/point sudo setfacl -Rdm g:mount-group:rwx /path/to/mount/point

Чтобы продемонстрировать, что это может выглядеть и дать вам отправную точку для экспериментов, вот более длинный пример, который привязывает-монтирует каталог (вы замените его на фактическое монтирование, которое вы хотите), устанавливает его право собственности и разрешения (с использованием списков управления доступом), а затем создает в нем символическую ссылку внутри другого каталога:

# Create a group to own the shared mount sudo groupadd mount-group # Create a user that belongs to this group sudo adduser mount-user sudo usermod -a -G mount-group mount-user # Create a directory to mount mkdir /tmp/mount-source # Create the mount-point mkdir /tmp/mount-target # Bind-mount the directory onto the mount point sudo mount --bind /tmp/mount-source /tmp/mount-target # Set the group owner for the mounted volume sudo chown :mount-group /tmp/mount-target # Set the group permissions to match the user permissions sudo chmod -R g=u /tmp/mount-target # Set the setgid bit on the mounted volume sudo chmod g=u,g+s /tmp/mount-source # Set the ownership and permissions for the mounted volume using an ACL sudo setfacl -Rm g:mount-group:rwx /tmp/mount-target # Set the default ownership and permissions for files created inside the mount-point sudo setfacl -Rdm g:mount-group:rwx /tmp/mount-target # Login as the test user su -l mount-user # Link a subdirectory inside the user's home folder to the mounted volume ln -s /tmp/mount-target ~/link-to-mount-target # Create a new file inside the mounted volume echo 'Hello world!' > ~/link-to-mount-target/hello.txt # Check the permissions on the new file getfacl ~/link-to-mount-target/hello.txt
0
ответ дан 24 July 2018 в 18:53

Я думаю, что ваш вопрос нуждается в двух двухкратном ответе: во-первых, при установке устройства в файловой системе, а во-вторых, при привязке места назначения.

Прежде чем вы начнете

Следующие объяснения требуют использования терминальной программы (сочетание клавиш: Ctrl + Alt + t) для ввода команд.

Вам также понадобятся привилегии суперпользователя. Обычно (как первый пользователь после новой установки) вы получаете привилегии, набрав sudo перед командой. После этого (обычно, если вы первый пользователь после новой установки), вы должны предоставить свой пароль перед запуском команды.

Ваш жесткий диск («механический» диск) должен быть подключен к ваш компьютер уже и правильно отформатирован с файловой системой (например, ntfs или ext4).

Остерегайтесь! Изменяя файл fstab, вы работаете с внутренними компонентами, которые могут остановить загрузку вашего компьютера. Это не является постоянным ущербом, но для ремонта потребуется время и время.

Если вы сомневаетесь в каком-либо из вышеуказанных предварительных условий, спросите в комментарии.

Установка диска при загрузке

Монтаж диски в процессе загрузки выполняются в файле /etc/fstab. Для этого вам нужно знать UUID вашего «механического» диска или, по крайней мере, его имя в каталоге /dev.

Найти UUID и имя (похожее на /dev/sdb5) вашего диска :

ls -l /dev/disk/by-uuid

Он будет указан здесь. Теперь определите файловую систему. Он будет указан в последнем столбце соответствующей строки

sudo fdisk -l | less

Затем выберите путь монтирования и создайте его:

sudo mkdir -p /media/shareddrv

Зная UUID диска, имя и тип файловой системы, ваша строка конфигурации для /etc/fstab выглядит так:

UUID=481aba75-c8a7-4b70-bdc4-fab4de7c1410 /media/shareddrv ext4 errors=remount-ro 0 2

, где UUID=481aba75-c8a7-4b70-bdc4-fab4de7c1410 может быть чем-то вроде /dev/sdb5, если у вас возникли проблемы с установкой UUID , Часть /media/shareddrv - это местоположение, которое вы определили, а ext4 - тип раздела и будет отличаться в зависимости от вашего диска. Остальное остается предпочтительно, как и здесь.

Вы должны добавить всю эту строку к своему /etc/fstab. Поскольку есть много способов сделать это, достаточно удобно использовать sudo nano /etc/fstab и набрать / вставить строку в конце файла.

Теперь сделайте, чтобы ваши изменения работали для вас: самый простой способ это RESTART ваш компьютер (например, sudo init 6 или sudo shutdown -h now). Если все работает, вы увидите свой «механический» диск и его точку монтирования после ввода: df -h в терминале.

Связывание диска в пользовательских каталогах

Эта часть может выполняться пользователем-после-пользователя, полу-вручную. Для пользователя «alice» запустите:

TMPUNAME=alice; sudo -u $TMPUNAME ln -s /media/shareddrv /home/$TMPUNAME/F

И повторите это для каждого пользователя. В конце вы могли бы unset TMPUNAME, но не обязательно.

Надеюсь, все работает на вас. Если вы найдете этот мини-учебник полезным, пожалуйста, поддержите мой ответ и отметьте его как полезный. Спасибо! Также задайте больше вопросов, если что-то не ясно или не работает!

0
ответ дан 24 July 2018 в 18:53
  • 1
    Вау! Ответы появляются так быстро! Трудно конкурировать! Спасибо, парни! – Patryk Mazurkiewicz 28 August 2017 в 02:30

Другие вопросы по тегам:

Похожие вопросы: