Файловый сервер без SAMBA. Работа по SSH

Рейтинг:   / 0
ПлохоОтлично 

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

Идеологическая часть

Вначале рассмотрим политически-организационную часть такого сервера.
Работа с Samba, и вообще по протоколу SMB в Windows-сети стала уже стандартом. Да и задумывалась она, скорее всего, так же.
Но сегодня уже нет смысла привязываться только к этому протоколу. Он несет в себе слишком много ограничений.

Работа большинства современных серверных приложений (1С, GroupWare и т.д.) абсолютно спокойно делается с помощью веб-интерфейса. С почтой тоже обычно проблем не бывает. Доступ в интернет при удаленной работе системного администратора вообще не волнует. Остается последняя проблема - доступ к файлам на файловом сервере.
В качестве альтернативы протоколу SMB, рассмотрим преимущества работы с файловым хранилищем по SSH: 1. Только авторизованный доступ. 2. Изначально жесткое разделение прав пользователей на доступ. 3. Отсутствие разницы в работе пользователя вне зависимости от его местонахождения. 4. Возможность авторизации пользователя как по паролю (возможна интеграция с Microsoft AD), так и по ключу. 5. Отсутствие необходимости в закупке, настройке и поддержке сервера VPN. 6. Отсутствие необходимости в закупке серверной лицензии Microsoft Windows. Из недостатков можно найти только один - это все таки непривычное для большинства системных администраторов решение.
Техническая часть Вначале займемся настройкой сервера. Для начала создадим папку, в которой и будут размещаться папки общего доступа. Пусть она находится в /home/share #mkdir /home/share
Теперь создадим в ней две подпапки - /public и /sales #cd /home/share #mkdir public #mkdir sales Соответственно нужно будет создать и две группы пользователей на сервере - public и sales #addgroup public #addgroup sales Сейчас создадим двух тестовых пользователей - user1 и user2: #adduser user1 #adduser user2 Теперь сделаем так, что бы пользователь user1 имел доступ только в public, а user2 - и в public, и в sales. Для этого введем их в соответствующие группы: #addgroup user1 public #addgroup user2 public #addgroup user2 sales Настройка пользователей на сервере закончена. Теперь нужно правильно установить права на сами папки. #chown root:public /home/share/public #chown root:sales /home/share/sales #chmod 770 /home/share/public #chmod 770 /home/share/sales Для того, что бы был нормальный доступ к файлам в папках, на эти папки нужно еще установить бит SedGID. #chmod g+ws,o= /home/share/public #chmod g+ws,o= /home/share/sales Остался последний момент. Нужно контролировать, что бы у всех файлов внутри этих каталогов были права 660, а у вложенных каталогов - 770. Если бы у нас заведомо файлы только создавались, небыло бы никаких проблем. Можно было бы обойтись использованием umask. Однако пользователи периодически копируют из разных источников файлы, у которых уже установлены некие, отличающиеся от необходимых, права. Для решения этой проблемы используем gamin и fileschanged: #aptitude install gamin fileschanged
Создаем скрипт, который будет устанавливать права: #nano /root/share.sh
И записываем в него: #!/bin/bash if [ -d "$2" ]; then chmod 770 "$2" elif [ -f "$2" ]; then chmod 660 "$2" fi Теперь при помощи fileschanged нужно этот скрипт выполнить. #fileschanged -cCfr -x /root/share.sh /home/share & Все хорошо, но сервера время от времени имеют свойство перезагружаться. Можно, конечно, каждый раз руками запускать эту строку. Но это некрасиво. По этому нужно просто запускать эту строку автоматически. Для этого добавим в файл /etc/rc.local строку: /usr/bin/fileschanged -cCfr -x /root/share.sh /home/share & Вот и все. Все работы на сервере закончены. Настройка и подключение клиентских компьютеров рассмотрена в другой статье - Подключение удаленных каталогов по SSHFS с помощью AutoFS

 

Дополнение к статье

Как показала практика, использовать gamin слишком непродуктивно.Уж слишком много ресурсов отъедает эта программа. На Celeron 2.6 она отъедала 25% проца. Пришлось искать альтернативу.И она таки была найдена! Теперь на сервере крутится inotifywait. Для начала нужно установить пакет inotify-tools #aptitude install inotify-tools Теперь в /etc/rc.local добавим строку: /usr/bin/inotifywait -mr --format '%w%f' -e close_write -e moved_to -e create /home/share | while read file; do /root/share.sh "$file"; done
Переменную $file в кавычки брать обязательно! Если этого не сделать, и в пути встретятся имена файлов или каталогов с пробелами - ничего не сработает. Ну, естественно,и скрипт /root/share.sh нужно изменить. Теперь он будет выглядеть так: #!/bin/bash if [ -d "$1" ]; then chmod 770 "$1" elif [ -f "$1" ]; then chmod 660 "$1" fi Вот теперь действительно все. Нагрузка на процессор сервера значительно снизилась. inotifywait потребляет порядка 0.5%-1%. Это вполне допустимо, как по мне.

You have no rights to post comments

Яндекс.Метрика