Место вашей рекламы.

Заявка

 

 

Файловый сервер, работа по SSH

В качестве альтернативы протоколу SMB, рассмотрим файловый сервер по протоколу SSH:

Только авторизованный доступ.

Жесткое разделение прав пользователей на доступ.

Отсутствие разницы в работе пользователя вне зависимости от его местонахождения.

Возможность авторизации пользователя как по паролю (возможна интеграция с Microsoft AD), так и по ключу.

Отсутствие необходимости в закупке серверной лицензии 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

Отвечаем на вопросы:

Enter file in which to save the key (/root/.ssh/id_rsa): - соглашаемся на значение по умолчанию.

Enter passphrase (empty for no passphrase): - Оставляем значение пустым. Паролем пользоваться не будем.

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.
С ее помощью удаленный каталог на сервере монтируется как локальный диск.

 

 

my(@)iskop.ru   

© Copyright 2020. All rights reserved.