В общем решил сделать файловый сервер на Ubuntu 10.10. Остановился на nfs и samba, так как в сети находятся компьютеры под управлением как Linux, так и Windows. Для этого создал в домашней директории сервера папку
# mkdir /home/user/Files
которую и сделал общей.
Настройки nfs
# apt-get install nfs-kernel-server nfs-common portmap
nano /etc/exports
В /etc/exports добавляю строку
/home/user/Files 192.168.1.1/255.255.255.0(rw,no_root_squash,async,subtree_check)
Перезагружаем nfs сервер
/etc/init.d/nfs-kernel-server restart
На клиентах под управлением ОС Linux делаем
# apt-get install portmap nfs-common
# nano /etc/fstab
И дописываем в /etc/fstab строку
192.168.1.1:/home/user/Files /home/user/Files nfs proto=udp,rsize=32768,wsize=32768,intr,noatime 0 0
Теперь необходимо расшарить эту же папку для компьютеров под управлением Windows. Тут используем samba. Мой конфигурационный файл
[global]
netbios name = fileserver
server string = Ubuntu Linux
workgroup = MSHOME
security = user
interfaces = 192.168.1.1/24 eth1
bind interfaces only = yes
log file = /var/log/samba/samba.log
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
local master = no
domain master = no
preferred master = no
os level = 0
usershare owner only = false
guest ok = yes
available = yes
browseable = yes
public = yes
writable = no
path = /home/user/Files
[Files]
comment = All Users
path = /home/user/Files
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
create mask = 0700
Создаем пользователя samba и добавляем его в группу users
# useradd samba -m -G users
# passwd samba
Пароль ставим любой, так как данная учетная запись нам не понадобится больше. Далее создаем пароль samba-пользователя
# smbpasswd -a samba
Данный пароль понадобится нам для доступа в файловому серверу.
Перезапускаем сервис samba
# service smbd restart
Настраиваем Windows-клиенты, где указываем путь до сервера как
192.168.1.1/Files
Затем вводим логин и пароль. Файлообменная сеть настроена.
Но тут возникла проблема. При создании или копировании документа на сервер с Windows-клиента все проходило прекрасно, но Linux-клиенты не могли данный кокумент даже просмотреть, хотя и подключены с правами суперпользователя. Приходилось вручную менять права. Временно решил проблему так. Создал скрипт /bin/prava
#!/bin/bash
cd /home/user
chmod 777 -R Files
Сделал его исполняемым
# cd /bin
# chmod a+x prava
И прописал в cron запуск скрипта каждую минуту. Для этого выполнил
# crontab -e -u root
и дописал в конце файла следующую строку.
0-59 * * * * /bin/prava
Сохраняем файл и перезапускаем cron
# /etc/init.d/cron restart
Настроил nfs по приведенной здесь инструкции. Всё работает, кроме того, что файлы нельзя изменять. Создавать, читать и удалять можно.
В /etc/exports добавлена строка
/home/user/Files 192.168.1.1/255.255.255.0(rw,no_root_squash,async,subtree_check)
Здесь видим право rw.
Nfs-сервер на Ubuntu 10.04 LTS (является прокси-сервером), nfs-клиенты на Alt Linux Junior 5.0.1.
Вроде, заработало.
В /etc/exports изменил немного:
/home/user/Files 192.168.1.1/255.255.255.0(rw,all_squash,anonuid=1000,anongid=1000,async,subtree_check).