Автор Тема: [РЕШЕНО] Файл-сервер на Samba в школе  (Прочитано 7268 раз)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
В школе настраиваю файл-сервер на KDesktop 6.0.1 Beta.

Впервые пробую самбу, читал много чего, но понимаю, что где-то недоглядел. Опишу ситуацию подробно.

Задача: сделать 4 расшаренных каталога с разграничением прав доступа (один - с доступом для всех) . 4 пользователя: admin32, direktor, mo, teacher. Надо, чтобы пользователь teacher мог заходить с паролем в каталог /teach1 (но не имел доступа к другим, кроме шары), mo - в /mo1 и /teacher, и direktor с admin32 - во все каталоги.

В сети роутер раздаёт ip по dhcp. 20 компов с виндой (WinXP и Win7) и 20 - на линуксах (Mint 11 и PSPO 5.0.4 XFCE).

Сервер Pentuim E5400 (3 GHz)/ 4 Gb / 500 Gb/ встроенная сетевая карта

Цитировать
Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1            2048     8022015     4009984   82  Linux своп / Solaris
/dev/sda2   *     8022016    31459327    11718656   83  Linux
/dev/sda3        31461374   976771071   472654849    5  Расширенный
/dev/sda5        31461376   820520959   394529792   83  Linux   ****/var***
/dev/sda6       820523008   976771071    78124032   83  Linux  ***/home***

Читал, что на сервере расшаренные папки лучше делать не в /home, а в /var, поэтому так и сделал, создав расшариваемые каталоги в  /var/lib/samba/usershares



Код: (# cat /etc/samba/smb.conf) [Выделить]


#======================= Global Settings =====================================

[global]
# ----------------------- User Shares Options -------------------------
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
; usershare owner only = no

# ----------------------- Netwrok Related Options -------------------------

workgroup = 32
server string = Samba Server 32

; netbios name = MYSERVER

; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.

# --------------------------- Logging Options -----------------------------


# logs split per machine
log file = /var/log/samba/log.%m
# max 50KB per log file, then rotate
max log size = 50

# ----------------------- Standalone Server Options ------------------------

security = user
; passdb backend = tdbsam



# ----------------------- Domain Members Options ------------------------


; realm = MY_REALM

; password server = <NT-Server-Name>

# ----------------------- Domain Controller Options ------------------------


domain master = no
domain logons = no

# the login script name depends on the machine name
; logon script = %m.bat
# the login script name depends on the unix user used
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
# disables profiles support by specifing an empty path
; logon path =         

; add user script = /usr/sbin/useradd "%u" -n -g users
; add group script = /usr/sbin/groupadd "%g"
; add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u"
; delete user script = /usr/sbin/userdel "%u"
; delete user from group script = /usr/sbin/userdel "%u" "%g"
; delete group script = /usr/sbin/groupdel "%g"


# ----------------------- Browser Control Options ----------------------------

; local master = no
os level = 65
; preferred master = yes

#----------------------------- Name Resolution -------------------------------

; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes

; dns proxy = yes

# --------------------------- Printing Options -----------------------------

; load printers = yes
cups options = raw

; printcap name = /etc/printcap
#obtain list of printers automatically on SystemV
; printcap name = lpstat
; printing = cups

# --------------------------- Filesystem Options ---------------------------

; map archive = no
; map hidden = no
; map read only = no
; map system = no
; encrypt passwords = yes
guest ok = yes
; guest account = nobody
; store dos attributes = yes


#============================ Share Definitions ==============================

[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
; guest ok = no
; writable = no
printable = yes

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no


# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes


# A publicly accessible directory, but read only, except for people in
# the "staff" group
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff

[shara]
comment = Общая
path = /shara
public = yes
writable = yes
read only = no
browseable = yes
guest ok = yes

[dir1]
comment = Администрация
path = /dir1
read only = no
browseable = yes
valid users = admin32, direktor

[mo1]
comment = МО
path = /mo1
read only = no
browseable = yes
valid users = admin32, direktor, mo

[teach1]
comment = Учителя
path = /teach1
read only = no
browseable = yes
valid users = admin32, direktor, mo, teacher

На сервере завёл 4 учётки соответственно с именами admin32, direktor, mo, teacher.
Однако первоначально самбу настраивал с помощью утилиты system-config-samba. Там же добавлял пользователей самбы и каталоги. Имена и пароли пользователей системы и самбы совпадают


Но вот что записано в smbusers

Цитировать
[root@server32 samba]# cat /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest

Т.е. я не вижу добавленных пользователей :(

В сети вижу каталоги /dir1, /mo1, /teach1 и /shara, но при попытке входа ввожу имя пользователя и правильный пароль и получаю сообщение: "Файл или папка smb://direktor@server32/dir1 не существует".
После чего в списке расшаренных ресурсов вижу домашний каталог пользователя, под которым пытался войти, в данном случае: /direktor.
В данном варианте настройки даже не могу зайти в /shara (такая же ошибка.

Чуть ранее менял настройки (точно не вспомню, что именно, возможно, ставил security = share (не уверен), и в /shara заходил, но не мог создавать файлы/каталоги.

Цитировать
[root@server32 samba]# ls -l /var/lib/samba/usershares
итого 16
drwxr-xr-x 2 root root 4096 Мар  8 16:16 dir1
drwxr-xr-x 2 root root 4096 Мар  8 16:16 mo1
drwxrwxrwx 2 root root 4096 Мар  8 16:13 shara
drwxr-xr-x 3 root root 4096 Мар  9 13:54 teach1
Пробовал менять владельца каталогов на соответствующих пользователей, но не помогло.

Итак, для себя вижу несколько не понятых мной моментов:
1) Пустота в файле /etc/samba/smbusers.
2) Читал, но не понял, что делать с /etc/samba/smbpasswd ?
3) Какие параметры выставлять расшариваемым каталогам через chown ?

Очень прошу помощи, время поджимает, самостоятельно не смог разобраться!
« Последнее редактирование: 15.03.2012 00:28:19 от Компутерный Паша »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #1 : 13.03.2012 17:27:17 »
В smb.conf поправьте
path = /teach1(во всех остальных тоже поправьте)
Нужно полные пути до папки, например:
/var/lib/samba/usershares/teach1

После всех настроек на сервере
service smb restartЕсли есть ошибки сбрасывайте сюда.

security = share
У вас сейчас правильно user. share нужен для "гостевого" доступа.

samba-пользователей создавайте так
smbpasswd -a teach1(остальные по аналогии)
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #2 : 13.03.2012 17:31:14 »
А вообще тут прочтите http://forum.altlinux.org/index.php/topic,7625.0.html
Все понятно написано.
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #3 : 13.03.2012 21:47:33 »
В smb.conf поправьте
path = /teach1(во всех остальных тоже поправьте)
Нужно полные пути до папки, например:
/var/lib/samba/usershares/teach1
Вроде бы строка usershare path = /var/lib/samba/usershares должна делать как надо? В инструкции читал об этом... Ну да ладно, указал полные пути.

Цитировать
samba-пользователей создавайте так
smbpasswd -a teach1(остальные по аналогии)
Так и сделал. Вернее, сначала через утилиту system-config-samba удалил всё, что сделал ранее, а потом ручками внёс изменения.
В итоге имею:
Цитировать
cat smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest

И при попытке зайти на сервер не вижу вообще ни одной расшаренной папки :(
Текст smb.conf прилагаю ниже. Меня смущает раздел [homes]:
#======================= Global Settings =====================================

[global]
# ----------------------- User Shares Options -------------------------
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
; usershare owner only = no

workgroup = 32
server string = Samba Server 32


# logs split per machine
log file = /var/log/samba/log.%m
# max 50KB per log file, then rotate
max log size = 50

# ----------------------- Standalone Server Options ------------------------

security = user
; passdb backend = tdbsam


; domain master = no
; domain logons = no
; local master = no
os level = 65
; preferred master = yes
# --------------------------- Filesystem Options ---------------------------
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; encrypt passwords = yes
guest ok = yes
; guest account = nobody
; store dos attributes = yes


#============================ Share Definitions ==============================

; [homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

; [printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = No
printable = yes

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no


# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes



[shara]
comment = Общая
path = /var/lib/samba/usershares/shara
public = yes
writable = yes
read only = no
browseable = yes
guest ok = yes

[dir1]
comment = Администрация
path = /var/lib/samba/usershares/dir1
read only = no
browseable = yes
valid users = admin32, direktor

[mo1]
comment = МО
path = /var/lib/samba/usershares/mo1
read only = no
browseable = yes
valid users = admin32, direktor, mo

[teach1]
comment = Учителя
path = /var/lib/samba/usershares/teach1
read only = no
browseable = yes
valid users = admin32, direktor, mo, teacher

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #4 : 13.03.2012 22:26:06 »
А что это говорит:
smbclient -L //ваш_сервер/dir1 -Uadmin32smbclient //ваш_сервер/dir1 -Uadmin32
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #5 : 13.03.2012 22:32:00 »
Цитировать
[root@server32 ~]# smbclient -L //Server32/dir1 -Uadmin32
Enter admin32's password:
Domain=[32] OS=[Unix] Server=[Samba 3.5.10-alt3.M60P.1]

        Sharename       Type      Comment
        ---------       ----      -------
        shara           Printer   Общая
        dir1            Printer   Администрация
        mo1             Printer   МО
        teach1          Printer   Учителя
        IPC$            IPC       IPC Service (Samba Server 32)
Domain=[32] OS=[Unix] Server=[Samba 3.5.10-alt3.M60P.1]

        Server               Comment
        ---------            -------
        SERVER32             Samba Server 32

        Workgroup            Master
        ---------            -------
        32                   SERVER32

Хм-м... а что значит, что у каталогов Type   Printer ?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #6 : 13.03.2012 22:37:47 »
Создайте группу, например:
#groupadd firmastaff Добавьте всех своих пользователей в эту группу.
Измените права на каталоги в соотвествии с новой группой.

> Хм-м... а что значит, что у каталогов Type   Printer ?
Типа принтер... Должно быть disk.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #7 : 13.03.2012 22:41:43 »
И права сделайте также как здесь, только своих пользователей естественно
# ls -l / | grep firmafiles
drwxrwx--x   5 director firmastaff  4096 Jul  3 11:24 firmafiles
#cd firmafiles
ls -l
drwxrwx--x 2 buhgalter firmastaff  4096 Jul  3 11:24 buhgalter
drwxrwx--x 2 finansist firmastaff  4096 Jul  3 11:24 finansist
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #8 : 14.03.2012 07:13:56 »
;   [printers]
;   comment = All Printers
;   path = /var/spool/samba
;   browseable = no
;   guest ok = no
;   writable = No
;   printable = yes # точку с запятой поставьте вначале

Измените.

Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #9 : 14.03.2012 18:59:33 »
Заработало лишь только тогда, когда расшаренный каталог сделал в /home/testshare. Т.е, в /var не работало, в /home заработало.

Дал в него доступ нужным пользователям, могу заходить и создавать документы.

[global]
workgroup = 32
server string = Samba Server 32
log file = /var/log/samba/log.%m
max log size = 50
os level = 65
usershare allow guests = Yes
usershare max shares = 100
guest ok = Yes

[shara]
comment = Общая
path = /home/testshare/shara/
read only = No

[dir1]
comment = Администрация
path = /home/testshare/dir1/
valid users = admin32, direktor
read only = No

[mo1]
comment = МО
path = /home/testshare/mo1/
valid users = admin32, direktor, mo
read only = No

[teach1]
comment = Учителя
path = /home/testshare/teach1/
valid users = admin32, direktor, mo, teacher
read only = No

Проблема в правах доступа к каталогам и файлам. Если в каталог имеют доступ несколько пользователей и один создал каталог/файл, то другие не могут его редактировать.

Как сделать, чтобы все пользователи могли иметь доступ на чтение/запись к любым каталогам и файлам в доступном им расшаренном ресурсе?
В примерах в соседней ветке мелькали строки для smb.conf :
create mask = 0777
directory mask = 0777

А также создавался пользователь sambauser и добавлялись
Цитировать
#принуждаем быть владельцем общего ресурса пользователя sambauser
force user=sambauser
#принуждаем быть владельцем общего ресурса группу users
force group=users

У меня есть группа school32, в которую (по совету выше) загнал всех своих пользователей. Это подходит в моём случае?



Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #10 : 14.03.2012 19:09:16 »
> У меня есть группа school32, в которую (по совету выше) загнал всех своих пользователей. Это подходит в моём случае?

Нет. У вас используется уже valid users. Предполагаю, что использование их совместно невозможно... Хотя у кого то может будет другое мнение.

Приведите права на все папки:
ls -l ...
> Как сделать, чтобы все пользователи могли иметь доступ на чтение/запись к любым каталогам и файлам в доступном им расшаренном ресурсе?

Посадить их в одну группу и дать права на папки на чтение/запись для этой группы.
« Последнее редактирование: 14.03.2012 19:11:58 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #11 : 14.03.2012 19:10:32 »
Цитировать
drwxr-xr-x 3 direktor school32 4096 Мар 13 23:33 dir1
drwxr-xr-x 3 mo       school32 4096 Мар 14 20:46 mo1
drwxrwxrwx 2 teacher  school32 4096 Мар  8 16:13 shara
drwxr-xr-x 3 teacher  school32 4096 Мар  9 13:54 teach1

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #12 : 14.03.2012 19:15:19 »
Смените вот так:
chmod 771 /teach1
(для других, кроме shara также)
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #13 : 14.03.2012 19:22:11 »
И вывод:
cat /etc/group | grep school32
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #14 : 14.03.2012 19:26:34 »
Отлично, спасибо!
Только пришлось делать chmod -R ....

Цитировать
# cat /etc/group | grep school32
school32:x:504:teacher,admin32,mo,direktor