If i help You, send me BTC please 1CJGz4UGyL7hTjPeN8j7fu9LRmmWiWSRHi

Общий доступ к файлам по сети в Ubuntu.

Постов 169 из 174

Задача вроде бы и простая, но, тем не менее, некоторые моменты лучше знать.

Наверное, можно и как то проще и правильней, но я сделал так.

Итак, задача такая – есть десяток пользователей anna, andy, olya, nataly.. и т.д. У каждого в качестве операционки Ubuntu 10.04. Нужно организовать файловый сервер на отдельной машине Ubuntu 10.04 с папками для данных каждого пользователя с доступом только для этого пользователя и для админа, и папки для обмена файлами для каждой пары пользователей типа anna-andy, anna-olya, andy-olya.. с доступом только для двух пользователей из названия папки и админа. Организуем описанный примитивный файловый сервер!

Захожу на компьютер файлового сервера под учеткой администратора, создаю каталог, скажем «111» и внутри него создаю нужные каталоги:

Создание каталогов пользователей

Чтобы разрешения Samba на запись работали нужно разрешить запись пользователям в каждом нужном ему каталоге. Я не стал долго заморачиваться – все равно через samba будут видны для каждого пользователя с разрешениями необходимыми только те каталоги, которые я в samba открою, поэтому я в терминале выполнил команду

sudo chmod -R 777 /home/alex/111

дав тем самым всем все права на каталог «111» и все каталоги из него. А в нем у меня все каталоги для файлового сервера и лежат.

Потом зашел в «Система» — «Администрирование» — «Пользователи и группы», создал пользователей. Имена, пароли и ID пользователей должны совпадать на файловом сервере и на компах самих пользователей. О том, что ID должен совпадать, я узнал уже после того, как создал пользователей, поэтому пришлось на компьютерах пользователей его менять для соответствия ID этих пользователей на файловом сервере. Имя и пароль через графическую утилиту задавать понятно как, чтоб задать ID нужно выбрать пользователя, зайти в «Дополнительные параметры» на вкладку «Дополнительно». При этом пользователь, ID которого я меняю должен полностью выйти из системы – если завершение сеанса этого пользователя не помогло – лучше перезагрузиться. У меня почему то не получалось из графического интерфейса поменять ID – он вроде как бы менялся, но при повторном заходе пользователя оказывался старым, поэтому я менял его из терминала. Чтобы посмотреть ID пользователя заходим в файл /etc/passwd и ищем строку с его именем:

vi /etc/passwd
...
andy:x:1008:1009:andy,,,,:/home/andy:/bin/bash
...

В этой сроке первая цифра, в моем случае 1008 и есть ID пользователя andy, если он не совпадает с ID на сервере, то чтоб поменять ID ввожу в терминале компьютера пользователя:

sudo usermod --uid 1005 andy

Всех этих манипуляций можно избежать, если создавать пользователя командой useradd с параметрами  -u (тот самый uid) и — p (пароль), например:

sudo useradd -u 1005 -p userpassword username

Так, каталоги и пользователей я создал, теперь организую общий доступ, для этого мне понадобятся из «Центра приложений Ubuntu» два приложения, которые можно найти, задав для поиска «samba» — это «Samba» и «SMB/CIFS file,print, and login server of Unix»

Установка пакетов Samba

Установив их, набираю в терминале

sudo system-config-samba

или иду в «Система» «Администрирование» «Samba».
Потом «Настройка» «Пользователи Samba» «Добавить пользователя»

Добавление пользователя samba

Выбираю первого пользователя, которому нужен файловый сервер из выпадающего меню «Имя пользователя Unix», ввожу точно такое же имя в графе «Имя пользователя Windows» затем пароль, «ok», «ok». И таким образом добавляю всех пользователей файлового сервера, созданных ранее в «Пользователи и группы». Эти же действия можно выполнить в терминале, к примеру добавление системного пользователя andy в список пользователей samba выглядит так:

smbpasswd -a andy

smbpasswd -e andy

После добавления пользователей нажимаю зеленый плюсик в окне system-config-samba, в открывшемся окне нажимаю кнопку «Обзор», в открывшемся обзоре нахожу необходимый каталог, скажем «Anna-Andy», выбираю его, ставлю галочки «Запись разрешена» и «Виден»,

Добавление общей папки samba

на вкладке «Доступ» ставлю галочки напротив пользователей andy и anna. Повторяю эту операцию для всех каталогов. После этого необходимо перезапустить сервис samba, для чего в терминале выполнить

sudo service smbd restart

Теперь если нажать в главном меню «Переход» «Соединиться с сервером», выбрать в выпадающем меню «Тип сервиса» пункт «Ресурс ОС Windows», ввести в поле «Сервер» его IP адрес, то открывается список каталогов файлового сервера. Далее клацаем по нужному каталогу, вводим имя пользователя и пароль, и если на сервере самба с такими учетными данными ранее я разрешил ходить в этот каталог – он откроется с правами для чтения и записи). Но мне ведь нужно чтобы файлы созданные одним пользователем были доступны для чтения и записи другому пользователю, с которым у первого пользователя этот каталог общий. В графической утилите этот пункт пропущен, поэтому поправим из терминала созданный ранее нами на сервере файл /etc/samba/smb.conf. Чтобы файлы и каталоги, создаваемые пользователем andy в расшаренной папке andy-anna были доступны для чтения и записи пользователю anna, нужно в файле /etc/samba/smb.conf найти пункт [Andy-Anna] и вставить строки create mask = 0777 и directory mask = 0777, получится так:

[Andy-Anna] path = /home/alex/111/Andy-Anna
writeable = yes
create mask = 0777
directory mask = 0777
;       browseable = yes
valid users = alex, andy, anna, root

О том, как сделать автоматическое монтирование расшаренных папок я написал далее.

, , , ,

Mr.Bean18/02/2012 at 15:32Reply

Такая проблема… Выполняю настройку согласно инструкциям, на компьютере, с которого пытаюсь подключиться к ресурсу сервера, появляется запрос имени пользователя, пароля и домена. Пароль принимать отказывается, ID пользователей совпадают… Где я мог накосячить?

alex19/02/2012 at 21:08Reply

Вероятно пароль пользователя на компьютере, с которого заходите, не совпадает с паролем этого же пользователя на сервере.

Menu