Файловый
сервер без SAMBA. Работа по SSH
Вначале рассмотрим политически-организационную часть такого сервера.
Работа с Samba, и вообще по протоколу SMB в Windows-сети стала уже стандартом. Да и задумывалась она, скорее всего, так же.
Но сегодня уже нет смысла привязываться только к этому протоколу. Он несет в себе слишком много ограничений.
Если рассматривать офис, в котором установлены только стационарные компьютеры и работа из дома или вообще из-за пределов офиса не планируется никогда - то в таком случае действительно стоит ограничиться работой по SMB и не морочить себе голову.
Совсем другое дело, когда пользователь работает за ноутбуком. Тут уже строить систему нужно так, что бы у работника были минимальные (а лучше, что бы их не было вообще) отличия в трудовом процессе, при работе через интернет.
Работа большинства современных серверных приложений (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.
Однако пользователи периодически копируют из разных источников файлы, у которых уже установлены некие, отличающиеся от необходимых, права.
Для решения этой проблемы
используем 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
Не забываем сделать этот скрипт исполняемым:
#chmod +x /root/share.sh
Вот и все. Все работы на сервере
закончены.
Настройка
клиентских компьютеров под Linux.
Установим sshfs и autofs. Выполним
команду:$sudo aptitude
install sshfs autofs
Теперь настройка.
Для начала сделаем возможным
подключение по ssh к удаленному серверу
по ключу, а не по паролю:Заходим на свою машину с правами root:$sudo su
Вводим свой пароль.
Генерируем RSA ключи:#ssh-keygen -t rsa
Отвечаем на вопросы:
1. Enter file in which to save the key (/root/.ssh/id_rsa): - соглашаемся на значение по умолчанию.
2. Enter passphrase (empty for no passphrase): - Оставляем значение пустым. Паролем пользоваться не будем.
3. Enter same passphrase again: - Снова оставляем значение пустым.
Скрипт создал 2 ключа: приватный и публичный.Your identification has been saved in /root/.ssh/id_rsa. - секретный приватный ключ для декодирования.Your public key has been saved in /root/.ssh/id_rsa.pub. - публичный ключ для кодирования.
Сейчас нужно скопировать на сервер наш публичный ключ:
#ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
Всё. Теперь попробуем залогиниться:#ssh user@server
Теперь беремся за настройку, собственно, autofs.
Открываем на редактирование файл /etc/auto.master и добавляем туда:/home/user/server /etc/auto.sshfs --timeout=30,--ghost
где /home/user/server - это папка, за которой будет следить наш autofs.
Теперь создадим файл /etc/auto.sshfs и запишем в него:home -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536,reconnect,uid=1000,gid=1000 sshfs\#user@server\:/home/user
Разлогиниваемся из-под root:#exit
Создаем папку, куда будет монтироваться каталог на удаленном сервере:$mkdir /home/user/server
И перестартовываем сервис autofs:$sudo service autofs restart
Теперь у нас все настроено. При заходе в папку /home/user/server у нас автоматически примонтируется сервер, что можно сразу же проверить.
Настройка
клиентских компьютеров под Windows.
Здесь
все просто. Скачиваем и устанавливаем
программу Docan.
С ее
помощью удаленный каталог на сервере
монтируется как локальный диск.
Комментариев нет:
Отправить комментарий