Форум программистов, компьютерный форум, киберфорум
RedHat, Fedora, CentOS, ASP Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 17.07.2018
Сообщений: 5
1

Автомонтирование сетевых ресурсов в зависимости от группы пользователей

17.07.2018, 14:20. Показов 4609. Ответов 12

Доброго времени суток, уважаемые форумчане.

Наша организация должна перейти на отечественное ПО. Выбрали дистрибутив Rosa Cobalt.

Изучать Linux стал месяц назад в связи с переходом на отечественное ПО, поэтому могу путаться в терминологии.
Стоит задача автоматического монтирования сетевых папок с сервера под управлением Windows для пользователей AD, залогиненных в линукс.
Автомонтирование сетевых папок, общих для всех пользователей (типа ОБЩИЙ ОБМЕН), расположенных на файловом сервере под управлением Windows подмонтировал легко (и через fstab, и через pam_mount). Но проблема встала с некоторыми сетевыми папками. На диске сервера есть набор папок с названиями групп пользователей. Каждая группа может войти только в свою папку, например группа пользователей GROUP1 только в папку GROUP1, .. группа пользователей GROUP9 только в папку GROUP9. И вот здесь возникла проблема. Пользователь домена AD не состоит в группе sudo и не может выполнить монтирование сетевых папок, запустив скрипт (в нем можно определить к какой группе принадлежит залогинившийся пользователь и для каждого пользователя группы подмонтировать только его папку). Конечно, можно всех пользователей ввести в группу sudo, но это и не правильно, и не безопасно.
Тогда я попробавал через systemd. Но, как я понял, сервисы запускаются до входа имени и пароля пользователя, поэтому в скрипте определялся пользователь как root и группа пользователя как root. Тупик.

Выход конечно есть, - это подмонтировать все папки GROUP1 - GROUP9 в папку /mnt/Disk_W , но тогда начнется путаница у пользователей. Они будут видеть все папки . А нужно, чтобы зайдя в папку /mnt/Disk_W они могли видеть файлы, доступные только для их группы.
Подскажите, как решить эту задачу. Очень нуждаюсь в помощи. Только простым языком, я ведь в Linux'е чуть больше месяца.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2018, 14:20
Ответы с готовыми решениями:

Связать группы пользователей из мастер защиты на уровне пользователей с должностями пользователей в БД
Интересный вопрос и интересно как его решить. Изначально условия следующие: один компьютер, ...

Где почитать про пользователей и группы пользователей в Windows 7?
Подскажите где почитать про пользователей и группы пользователей в windows 7?

Отлов сетевых ресурсов
Приветствую. Имеется большая локалка (порядка 700 машин). На каждой машине есть определенные...

Сканер сетевых ресурсов на PHP
хочется научится узнавать расшаренные папки на выбранной машине ) как ето можно сделать? умные...

12
Модератор
Эксперт NIX
2785 / 2033 / 680
Регистрация: 02.03.2015
Сообщений: 6,514
18.07.2018, 13:11 2
Цитата Сообщение от Torbrand Посмотреть сообщение
не состоит в группе sudo и не может выполнить монтирование сетевых папок
Есть команда позволяющая обойти это ограничение: udisksctl mount ...
Цитата Сообщение от Torbrand Посмотреть сообщение
для пользователей AD
Должно решаться методами/средствами AD
Цитата Сообщение от Torbrand Посмотреть сообщение
через systemd. Но, как я понял, сервисы запускаются до входа имени и пароля пользователя
Можно поставить условие на выполнение сервиса после логина. Это уже если не говорить о возможности выполнения от любого пользователя и монтировании только после непосредственного обращения к диску.

Добавлено через 1 минуту
Цитата Сообщение от Torbrand Посмотреть сообщение
все папки GROUP1 - GROUP9 в папку /mnt/Disk_W , но тогда начнется путаница у пользователей
А закрыть папки на уровне прав? Видят, но войти и прочитать не могут...
0
0 / 0 / 0
Регистрация: 17.07.2018
Сообщений: 5
18.07.2018, 14:59  [ТС] 3
Цитата Сообщение от Marinero Посмотреть сообщение
Есть команда позволяющая обойти это ограничение: udisksctl mount ...
Спасибо за помощь. Можете привести пример использования udisksctl mount ? Как я уже писал выше, в линукс я новичок и многое для меня еще пока очень трудно дается.
Для монтирования под root следующая команда отрабатывает отлично. mount -t cifs //dc5/OSD$/ /mnt/Сетевые\ диски/Диск\ W -o sec=ntlm,username=alexandr,password=12345,rw,iocharset=utf8, file_mode=0777,dir_mode=0777,noperm
Логинюсь под именем alexandr. Команда в консоли whoami возвращает domain\alexandr.
Как можно использовать вышеописанную команду для монтирования под пользователем domain\alexandr ?

Цитата Сообщение от Marinero Посмотреть сообщение
Можно поставить условие на выполнение сервиса после логина
Если нетрудно, подскажите можно поставить условие на выполнение сервиса после логина. Может быть в этом направлении что-то у меня получится. Конечно, в скрипте можно считать переменную USER и уже по имени пользователя определить его группу в домене, но вот сам сервис и скрипт будут запущены от root или от имени залогинившегося пользователя?

Цитата Сообщение от Marinero Посмотреть сообщение
А закрыть папки на уровне прав? Видят, но войти и прочитать не могут...
Вся идея была в том, что пользователи заходят в папку Диск W и видят только свои файлы и папки. Если они войдут в Диск W и увидят десятки папок с названиями групп, которые им надо проверить на предмет вхождения или нет, то нам придется целый день каждому объяснять к какой группе они принадлежат и куда им можно заходить, а куда нет. Пользователей у нас более 600 человек и с некоторыми особо не поспоришь. Привыкли они к такому виду Диска W.
0
Модератор
Эксперт NIX
2785 / 2033 / 680
Регистрация: 02.03.2015
Сообщений: 6,514
18.07.2018, 20:06 4
Покажите
Bash
1
id
Добавлено через 9 минут
Попробуйте
Bash
1
udisksctl mount -t cifs -b //dc5/OSD$/ -o sec=ntlm,username=alexandr,password=12345,rw,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm
Должно примонтироваться в /media

Добавлено через 5 минут
С чем связано желание монтировать в /mnt, а не поддиректорию пользователя?
0
0 / 0 / 0
Регистрация: 17.07.2018
Сообщений: 5
19.07.2018, 07:22  [ТС] 5
Цитата Сообщение от Marinero Посмотреть сообщение
id
uid=16777216(RYAZANADM\alexandrek) gid=16777216(RYAZANADM\domain users) группы=16777216(RYAZANADM\domain users),16777217(RYAZANADM\ingisgeo),16777218(RYAZANADM\lease srv),16777219(RYAZANADM\asu) контекст=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Цитата Сообщение от Marinero Посмотреть сообщение
Попробуйте
Bash
udisksctl mount -t cifs -b //dc5/OSD$/ -o sec=ntlm,username=alexandr,password=12345,rw,iocharset=utf8, file_mode=0777,dir_mode=0777,noperm
Должно примонтироваться в /media
Выдало ошибку: Error looking up object for device //dc5/OSD$/

Цитата Сообщение от Marinero Посмотреть сообщение
С чем связано желание монтировать в /mnt, а не поддиректорию пользователя?
Поначалу так и пытался сделать, но после того, как столкнулся с проблемой незнания как подмонтировать для пользователя не десятки папок, а одну, лично его группы, решил тренироваться в папке /nmt. Когда решится эта проблема, буду монтировать в домашней папке пользователя.
0
Эксперт по компьютерным сетямЭксперт NIX
12230 / 7097 / 727
Регистрация: 09.09.2009
Сообщений: 27,701
19.07.2018, 10:54 6
Цитата Сообщение от Torbrand Посмотреть сообщение
следующая команда отрабатывает отлично. mount -t cifs //dc5/OSD$/ /mnt/Сетевые\ диски/Диск\ W -o sec=ntlm,username=alexandr,password=12345,rw,iocharset=utf8, file_mode=0777,dir_mode=0777,noperm
в fstab ее (естественно, в правильном формате), указав требуемые данные для авторизации
0
0 / 0 / 0
Регистрация: 17.07.2018
Сообщений: 5
19.07.2018, 12:52  [ТС] 7
Цитата Сообщение от Dmitry Посмотреть сообщение
в fstab ее (естественно, в правильном формате), указав требуемые данные для авторизации
В первом своем посте я писал, что пробовал через fstab, да вот только он не дает возможности подключать сетевые ресурсы в зависимости от группы пользователя. Но, все равно, спасибо.
0
Модератор
Эксперт NIX
2785 / 2033 / 680
Регистрация: 02.03.2015
Сообщений: 6,514
19.07.2018, 15:32 8
Цитата Сообщение от Torbrand Посмотреть сообщение
Поначалу так и пытался сделать, но после того, как столкнулся с проблемой незнания как подмонтировать для пользователя не десятки папок, а одну, лично его группы, решил тренироваться в папке /nmt. Когда решится эта проблема, буду монтировать в домашней папке пользователя.
Один из вариантов:
Для каждого пользователя в /etc/fstab создается запись на монтирование нужной ему сетевой папки в заранее созданную папку в его домашней директории (например /home/имя_пользователя/диск_W).
В параметрах монтирования дополнительно указываем опции
Код
noauto,nofail,x-systemd.automount,x-systemd.requires=network-online.target,x-systemd.device-timeout=10
В этом случае монтирование будет происходить не при старте системы, а непосредственно при первом обращении к диску.
Эти опции автоматом создают задачи системд, которые можно было бы написать напрямую, но тут я не очень - боюсь ошибиться. Хотя можете погуглить - есть весьма подробные инструкции с примерами.
PS Я не писал бы
Цитата Сообщение от Dmitry Посмотреть сообщение
username=alexandr,password=12345
, а использовал бы опцию/файл с credentials
PPS Не стоит забывать про опцию монтирования user(s)
1
166 / 80 / 21
Регистрация: 30.08.2017
Сообщений: 682
20.07.2018, 06:08 9
могу ошибаться, но лучше всего не городить огород в fstab, а использовать pam_mount. Тогда всё будет работать именно для нужного пользователя.
0
Модератор
Эксперт NIX
2785 / 2033 / 680
Регистрация: 02.03.2015
Сообщений: 6,514
20.07.2018, 12:21 10
Цитата Сообщение от _sg2 Посмотреть сообщение
использовать pam_mount
ИМХО pam_mount - это правила, а сам процесс чем выполнить?
0
0 / 0 / 0
Регистрация: 17.07.2018
Сообщений: 5
20.07.2018, 14:43  [ТС] 11
Marinero, Спасибо за подсказку, буду разбираться. Правда с понедельника на две недели ухожу в отпуск. Теперь после отпуска буду экспериментировать. Дома ведь нет сервера с AD.
Цитата Сообщение от Marinero Посмотреть сообщение
Для каждого пользователя в /etc/fstab создается запись на монтирование нужной ему сетевой папки в заранее созданную папку в его домашней директории (например /home/имя_пользователя/диск_W).
Правда у нас 650 пользователей, которые периодически меняются. Подозреваю, что этот вариант не очень подходит.
Я пытаюсь реализовать способ автозапуска скрипта при логине. в /etc/sudoers задал группы пользователей (их всего 16 штук) получающих право монтировать и размонтировать без пароля. В скрипте смотрю по id залогинившегося пользователя $USER группу и по группе монтирую ресурс. Правда там нужно указывать строчку username=user,password=password Можно, конечно "вычислить" username из $USER, но как узнать его пароль, учитывая, что это пользователь домена. Подскажите, пожалуйста.

Цитата Сообщение от _sg2 Посмотреть сообщение
могу ошибаться, но лучше всего не городить огород в fstab, а использовать pam_mount. Тогда всё будет работать именно для нужного пользователя.
Очень хочется попробовать. Но в моем Rosa Cobalt не нашел как использовать pam_mount. Что нужно установить в yum -y install xxxxxxxx?
0
Модератор
Эксперт NIX
2785 / 2033 / 680
Регистрация: 02.03.2015
Сообщений: 6,514
20.07.2018, 15:32 12
Цитата Сообщение от Torbrand Посмотреть сообщение
у нас 650 пользователей, которые периодически меняются
Я бы примонтировал все 16 дисков в /mnt (по запросу опять же), с доступом по группам (опция gid= в fstab), закрыл /mnt для просмотра (если это критично), а для пользователя в skeleton-е прописал бы создание ссылки из его домашней папки на уже примонтированное устройство исходя из его группы.
Это как бы я делал, потому как мне так было бы проще. Однако подозреваю что есть и множество других способов.
1
166 / 80 / 21
Регистрация: 30.08.2017
Сообщений: 682
20.07.2018, 22:04 13
https://kb.etersoft.ru/Pam_mount
первая попавшаяся и сразу неплохая статья. как бы по ней я и не настраивал автомонтирование шар из AD. Цель ведь - юзер вошёл и у него подключены только ЕГО каталоги выполняется же?
Маринеро, ваш способ тоже ничо так, юниквэй так сказать
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2018, 22:04

Определение сетевых ресурсов сети
Ребятa мoжет ктo пoдскaжет кaк oпределить сетевых ресурсы лoкaлнoй сети? нa Vb6 знaю a нa Vb.Net...

Сканирование сетевых ресурсов на обновление файлов
Добрый. Спасибо тем, кто обратил внимание на тему и уделил время для внятного ответа:) Перед...

Создать сканер сетевых ресурсов сети
Создать сканер сетевых ресурсов сети. Просканировать диапазон IP 10.7.26.1-30 В результате работы...

Проверка существование списка сетевых ресурсов в потоках
Уважаемые господа, помогите мне решить одну задачку. Мне необходимо проверять большой массив ссылок...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.