Как да споделяме файлове между WindowsXP и Ubuntu (с Gnome) в локална мрежа
1. Нужна информация: A) име на компютъра с WindowsXP и име на работната група. Намираме ги с десен бутон върху иконката My Computer/Propreties; Б) име и парола на потребителския акаунт в WindowsXP, който ще споделя файлове и ще има позволение да разглежда споделени файлове (Контролен Панел/Потребителски акаунти); В) IP-адресите на двата компютъра в локалната мрежа (моите два копмютъра са зад рутър и имат статични IP, съответно 172.16.1.205 - Windows и 172.16.1.219 - Ubuntu). Намираме ги така (дали някой ще опише и други начини?): в Уиндоус - Контролен Панел/Мрежови връзки - десен върху връзката, през която ще споделяме > Състояние>Поддръжка; в Убунту - в терминала пишем ifconfig -a.
2. Предварително позволяваме споделяне на желаните от нас файлове - и за двете системи става с десен бутон върху файла/папката, който искаме да споделим> sharing.
3. Инсталиране и конфигуриране на Samba на компютъра с Убунту (ползвах how-to от тук http://ubuntuforums.org/showthread.php?t=202605)
В терминала:
sudo apt-get install samba - инсталира самба
Конфигурация:
Спираме самба:
sudo /etc/init.d/samba stop
За всеки случай запазваме първоначално създадения от самба конфигурационен файл, като го преименуваме:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.template
Правим си нов конф. файл:
sudo touch /etc/samba/smb.conf
Отваряме го, за да го променим с нашите данни:
sudo gedit /etc/samba/smb.conf
Файлът е празен и в него поставяме следното:
[global]
; General server settings
netbios name = YOUR_HOSTNAME
server string =
workgroup = YOUR_WORKGROUP
announce version = 5.0
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
passdb backend = tdbsam
security = user
null passwords = true
username map = /etc/samba/smbusers
name resolve order = hosts wins bcast
wins support = yes
printing = CUPS
printcap name = CUPS
syslog = 1
syslog only = yes
; NOTE: If you need access to the user home directories uncomment the
; lines below and adjust the settings to your hearts content.
;[homes]
;valid users = %S
;create mode = 0600
;directory mode = 0755
;browseable = no
;read only = no
;veto files = /*.{*}/.*/mail/bin/
; NOTE: Only needed if you run samba as a primary domain controller.
; Not needed as this config doesn't cover that matter.
;[netlogon]
;path = /var/lib/samba/netlogon
;admin users = Administrator
;valid users = %U
;read only = no
; NOTE: Again - only needed if you're running a primary domain controller.
;[Profiles]
;path = /var/lib/samba/profiles
;valid users = %U
;create mode = 0600
;directory mode = 0700
;writeable = yes
;browseable = no
; NOTE: Inside this place you may build a printer driver repository for
; Windows - I'll cover this topic in another HOWTO.
[print$]
path = /var/lib/samba/printers
browseable = yes
guest ok = yes
read only = yes
write list = root
create mask = 0664
directory mask = 0775
[printers]
path = /tmp
printable = yes
guest ok = yes
browseable = no
; Uncomment if you need to share your CD-/DVD-ROM Drive
;[DVD-ROM Drive]
;path = /media/cdrom
;browseable = yes
;read only = yes
;guest ok = yes
[MyFiles]
path = /media/samba/
browseable = yes
read only = no
guest ok = no
create mask = 0644
directory mask = 0755
force user = YOUR_USERNAME
force group = YOUR_USERGROUP
В горния текст заменяме:
I. netbios name = YOUR_HOSTNAME
вместо YOUR_HOSTNAME пишем името на акаунта ни в Убунту, който сме създали при инсталацията на ОС (това име, с което се логваме при стартиране на системата). Моето потребителско име е mariana, така че аз съм написала
netbios name = mariana
II. workgroup = YOUR_WORKGROUP
вместо YOUR_WORKGROUP пишем името на работната група, в която е компютърът с Уиндоус (виж т.1 А).
III. При положение, че компютрите са със статични IP, оставяме
wins support = yes
непроменено. Иначе - wins support = no.
IV. [MyFiles]
path = /media/samba/ - показва файловете, които споделяме от Убунту. /media/samba показва, че сме маунтнали цял дял от твърдия диск като споделен.
Тъй като искам да споделя цялата си домашна папка, съм написала следното:
[MyFiles]
path = /home/mariana/
и понеже не искам файловете ми да се променят от другия компютър, съм задала(под горното точно):
read only = yes
Може и да създадем папка, в която да съхраняваме споделените файлове, но намирам това за неудобно (но пък е по-сигурно).
И накрая променяме
force user = YOUR_USERNAME
force group = YOUR_USERGROUP
като на и на ДВЕТЕ МЕСТА - на мястото и на YOUR_USERNAME, и на YOUR_USERGROUP, си пишем потребителското име в Убунту (това, с което влизаме в системата).
V. Тъй като на компютъра с Убунту имам безжична и жична карта за връзка, в края на секцията [global] (в началото на файла, след socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192) поставям
interfaces = lo, eth0, wlan0
bind interfaces only = true
Ако компютърът има само една мрежова карта, не е необходимо да добавяме горните редове.
4. Стартиране на Самба и настройване на потребителските акаунти
Стартираме Самба с
sudo /etc/init.d/samba start
Добавяме самба-потребители, като първият добавен акаунт е на инсталиралият смаба, т.е. добавяме сами себе си:
sudo smbpasswd -L -a your_username
вместо your_username пишем потребителското си име (това, с което влизаме в системата). При искането за парола въвеждаме паролата, с която влизаме в системата.
За да активираме току-що създадения акаунт:
sudo smbpasswd -L -e your_username
като пак вместо your_username пишем потребителското си име.
Добавяме и потребителят от компютъра с Уиндоус:
sudo useradd -s /bin/true name_of_windows_user
като заместваме name_of_windows_user с името на потребителя от компютъра с Уиндоус (виж 1. Б). Така в Убунту имаме нов потребител (който няма достъп до терминала обаче).
Добавяме и този потребител към самба:
sudo smbpasswd -L -a name_of_windows_user
При питането за паролата му, въвеждаме тази, с която влиза в Уиндоус. Тъй като под Уиндоус рядко си слагаме пароли, много вероятно е потребителят да няма парола. Тогава при питането за парола наискаме enter.
Активираме самба акаунта на name_of_windows_user:
sudo smbpasswd -L -e name_of_windows_user
В случая на уиндоус-потребител без парола, се налага да направим още една малка промяна в конф. файл на самба:
отваряме отново smb.conf (със sudo gedit /etc/samba/smb.conf) и в началото на файла, веднага под [global], въвеждаме
security=share
което премахва всички самба-пароли за достъп до споделените файлове на Убунту.
Накрая трябва да зададем позволение за достъп до споделените файлове
в терминала:
sudo chmod 0777 /media/samba
като трябва да променим /media/samba с пътя до файловете, които искаме да споделяме.
В моя случай:
sudo chmod 0777 /home/mariana
като това така променя достъпа на потребителските групи до домашната ми директория, че всеки може да чете и пише в нея. За да премахна позволението за промяна/писане от всеки в споделената папка, отварям /home като администартор, десен върху папката, чиито позволения ще променям (в моя случай това е папката с потребителското ми име), и Properties>Permissions>Others>Folder Access>Access Files>Apply Permissions to Enclosed Files. По този начин може да зададем различни права за различните потребителски групи.
(Моля някой да покаже как става задаването на позволения на различните групи потребители през терминала, така че да не се налага цялата описана горе гимнастика с мишката. Тук http://en.wikipedia.org/wiki/Chmod има описание, но лично аз нямам рутина при работа с терминала и команди, а не искам да заблуждавам хората, като им давам грешна информация.)
Толкова под Убунту. Следва настройване на Уиндоус машината (правим това само ако в конф. дайл сме задали wins support=yes, т.е. в случай, че имаме статични IP).
Start>Control Panel>Network Connections (Старт>Контролен панел>Мрежови връзки)- намираме си lan връзката, през която ще споделяме, десен върху нея>Properties (Свойства), избираме TCP/IP и клик на Properties, после Advanced>WINS>Add (Разширени>WINS>Добавяне) и пишем IP адреса на компютъра с Убунту, след което отново щракаме върху Add (Добавяне). Малко по-надолу избираме Use NetBIOS over TCP/IP (Разреши NetBIOS over TCP/IP), три пъти щракаме ОК, следва рестарт.
Последно проверяваме дали защитната стена на Уиндоус пуска самба (няма да описвам това, предполагам се знае как става) и указваме на защитната стена на Убунту да позволи връзките на Самба (Firestarter е подходящ GUI за целта, задала съм позволение за връзки само от моя уиндоуски компютър - чрез IP-то му в домашната мрежа).
Ако компютрите не успеят да се "видят" от първия път, рестартираме и двата.
П.С. Нека някой от разбиращите прегледа поста за грешки, моля!