现在的位置: 首页 > 综合 > 正文

samba服务

2013年03月28日 ⁄ 综合 ⁄ 共 3326字 ⁄ 字号 评论关闭

感谢作者苏振老师

 

samba
协议:netbios(135、139、445)
功能:文件服务器,linux和windows磁盘与打印机共享

共享(安全)级别:共享级共享(win98)、用户级共享(win2k)、服务器级共享(server)、域级共享(domain)

守护进程名:smb(server提供服务)、nmb(client使用服务)

rpms:samba(服务器端程序)、samba-common(配置文件)、samba-client(客户端程序)

 

# rpm -q samba samba-common samba-client<Enter> 或 # rpm -qa | grep samba<Enter>
# rpm -ivh /包路径/包名<Enter>
# rpm -ql samba-common | grep conf<Enter>
注意:samba服务要求主机名唯一

关于smb.conf的注释:"#"号开头注释,说明注释、";"号开头的注释,参数注释

说明:Linux用户级共享,samba帐户必须是本地帐户
   # useradd -s /sbin/nologin adder<Enter>
   # smbadduser adder:adder<Enter>      // 系统帐户:samba帐户,==>指明samba密码
   # smbpasswd adder<Enter> // 给adder改samba密码

 

# vi /etc/samba/smb.conf<Enter> 

[global]

workgroup = mygroup   ;组名或域名

server string = my samba server   ;注释内容

hosts allow =网络或主机   ;允许访问的网络和主机IP

security = security_level   ;共享(安全)级别

[homes]    ;共享名
;   comment = Home Directoies ;注释内容

;   browseable = no  ;控制在浏览器列表中能否看见自己的主目录
;   path = /tmp   ; 本地共享路径,必须存在
;   vlaid users = bob alice ; 合法用户 bob、alice 可访问,默认=%S表示所有用户(本地)
;   vlaid users = @haha  ; 合法组haha可访问(本地)
;   public = yes   ; 都能看到该共享名,否则为隐藏共享
;   writable = yes  ; 共享时写的权限(注意本地权限)
;   write list = @haha  ; haha 组的人有写权限
;   read only = yes  ; 只读权限
;   printable = no  ; 该共享不是打印机共享
;   create mask = 0765  ; 新建文件默认权限
;   create mode = 0664  ; 新建文件默认权限
;   directory mode = 0775 ; 新建文件夹默认权限
;   only guest = yes  ; 只有匿名帐户可访问

实验一、共享级共享
# vi /etc/samba/smb.conf<Enter>
security = share // 默认是user,改为share
[sharename]  // 共享名
comment = zhu shi // 注释
path = /  // 共享本地目录,必须存在
public = yes  // 是否所有人可以访问
writable = yes  // 共享写权限,注意权限:共享权限、本地权限
# service smb start<Enter>
# chkconfig smb on<Enter>

测试
win <win>+<r> => //ip  // 不需要用户名和密码可访问
linux # smbclient -L //ip -N<Enter> // 查看共享
  -L list,列出共享
  -N No password,不用指明密码
 ·# smbclient //ip/共享名 -N<Enter>
 ·# mount -t smbfs //ip/共享名 /mnt/cdrom -o username=anonymous%""<Enter>
 ·# mount -t smbfs //ip/共享名 /mnt/cdrom -o username=anonymous,password=""<Enter>
 ·# smbmount //ip/共享名 /mnt/cdrom -o username=anonymous%""<Enter>
 ·# smbmount //ip/共享名 /mnt/cdrom -o username=anonymous,password=""<Enter>

 

练习1、
1、将本地的/www文件夹共享为web
2、服务器要求和你的win2k在同一个工作组
3、只允许本网段可访问文件服务器
4、用户能通win2k拷贝文件到web中
5、文件服务器描述为"public file server"
6、在网上邻居中,可能看到主机名为"suzhen",自已的姓名

# mkdir /www<Enter> => # chmod a+w /www<Enter>
# vi /etc/samba/smb.conf<Enter>
[global] // 全局区域
   workgroup = workgroup // 2
   hosts allow = 192.168.0. 127. // 3
   security = share
server string = public file server // 5
[web]   // 1
   path = /www  // 1
   writable = yes // 4
   public = yes  // 4
#service smb restart
#chkconfig smb on
方法一 // 6
# hostname suzhen.wnt.com<Enter>
# vi /etc/sysconfig/network<Enter>
   hostname=suzhen.wnt.com
方法二 // 6
# vi /etc/samba/smb.conf<Enter>
[global]
   netbios

测试
win
x:/> ping -a ip<Enter> // 可以看到返回主机名
直接在网上邻居当中能看到。

 

实验二、用户级共享
# useradd alice; useradd bob<Enter>
# smbadduser alice:alice<Enter> // 指明samba密码a
# smbadduser bob:bob<Enter> // 指明samba密码b
# vi /etc/samba/smb.conf<Enter>
security = user  // 默认,需确认
# service smb restart<Enter>
# chkconfig smb on<Enter>

测试
win <win>+<r> => //ip  // 需要用户名和密码才可访问
linux # smbclient -L //ip -U bob%b<Enter>
  -L list,列出共享
  -U user,用户
 ·# smbclient //ip/共享名 -U bob%b<Enter>
 ·# mount -t smbfs //ip/共享名 /mnt/cdrom -o username=bob%b<Enter>
 ·# smbmount //ip/共享名 /mnt/cdrom -o username=bob%b<Enter>

说明:当在win当中用一个身份测试过一次之后,再也不弹出对话框啦。
解决:
方法一、删除会话,有时会不好用。
 x:/> net use<Enter>
 x:/> net use //ip/ipc$ /del<Enter>
方法二、注销一下,永远好用。

 

额外实验:
1、windows 禁用netbios,结果? 无法访问
2、用户级共享和共享级可以配合使用。

 

额外实验:
目的:利用/etc/fstab,自动挂载windows的c$共享。
# netconfig<Enter>
# chkconfig smb on<Enter>
# ping win<Enter>
# mkdir /mnt/c<Enter>
# vi /etc/fstab<Enter>
//192.168.0.251/c$ /mnt/c  smbfs defaults,username=administrator,password="" 1 1
# sync<Enter>
# shutdown -r 0<Enter>

抱歉!评论已关闭.