一.理论知识:
1.samba
代替
nfs
的原因。
2. Windows
主机之间使用
SMB/CIFS
协议进行文件和打印的共享。(微软的服务)
端口:
445 139
3. samba
的核心是两个守护进程
smbd
和
nmbd
程序。
Smbd
和
nmbd
使用的全部配置信息全都保存在
smb.conf
文件中。
Smb.conf
向
smbd
和
nmbd
两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。
4.Smbd
进程的作用是提供文件
/
打印共享。
nmbd
进程是提供网络中域或者工作组内的主机进行主机名称的解析
。
二.安装(四个包
1.samba 2.samba-common 3.samba-client 4.system-config-samba
)
1.rpm
安装
rpm �Civh /media/cdrom/Redhat/RPM/samba*
2.
源码包的安装(
samba- 3.0.22 .tar.gz
)
tar xzvf samba- 3.0.22 .tar.gz
cd samba- 3.0.22 /source
./configure --prefix=/usr/local/samba --sysconfdir=/etc/samba/
make
make install
三.
/etc/samba/smb.conf
主配文件的主要参数:
在
smb.conf
文件中,注释行以
“#”
开头,同时每项中英文字母不区分大小写,在一行最后字符尾加
“\”
,可将一行分成多行。用
“
;
”
开头的行,是可改变的配置,将
“
;
”
去掉时,该配置将取作用。
提问:
grep
的含义;常用参数
1
.
grep -v "^#" /etc/samba/smb.conf |grep -v "^;"
(
排除以
#
和
;
开头的行
)
[global]
workgroup = MYGROUP
;hosts allow = 192.168.1 192.168.2
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
cups options = raw
;
hosts allow = 192.168.1. 10.100.100. (
注意格式
)
log file = /var/log/samba/%m.log
max log size = 50
security = user
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
create mask = 0755
创建文件时
权限是
755
only guest = yes
仅以匿名用户登录
[global](
全局参数的设置,它对
samba
的功能具有很大的影响,主要用来设置整个系统规则。
workgroup=
这是你在
windows
中的域。
server string=
这是在
windows
中看到你的
samba
的解释。
netbios name =192.168.1.125(
我
linux
主机IP
),
如果把该句注消
,
默认的是你
LINUX
机器名
,
不过
,
最好还是自己填上
dos charset=GB2312
unix charset=GB2312
加上这二句就可以正确显示中文了。
hosts allow
允许登录的
linux-samba
的主机名单,用
IP
地址给出,多个
IP
地址用空格分开,不在名单中的主机将不能得到
samba
提供的服务,这也是网络安全的一个方面。
printcap name
指定
printcap
文件地址,通常为
/etc/printcap,
包含了
linux
打印机的配置信息。
load printers
允许使用共享打印机时,默认值为
yes
。
log file = /usr/local/samba/var/log.%m
max log size = 0
上面这两行则是
Samba
日志的相关定义。其记录文件的位置是放在
/var/log/samba/%m.log
,安装目录不一样,日志可不一样,后面的一条是定义日志记录文件的大小,单位是
KB
,如果是
0
的话就不限大小。
guest acount
来宾帐户,表示用哪一个
Linux
用户作为所要的客户连接
,
定义
Samba
缺省的用户账号,这个账号必须在
/etc/passwd
中。
security
指定安全模式。大多数用户使用
user
级的安全模式,
samba
用本地
linux
口令文件验证。
security = security_level
定义
Samba
的安全级别,按从低到高分为四级:
share
,
user
,
server
,
domain
。它们对应的验证方式如下:
1. share:
没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
2. user:samba
的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密
码进行验证。
3. server:
和
user
安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台
NT
服务器。如果递交失败,就退到
user
安全级。
4. domain:
这个安全级别要求网络上存在一台
Windows
的主域控制器,
samba
把用户名和密码递交给它去验证。
注意:
/etc/samba/lmhosts
文件提供
ip
和
netbios
名称间的解析
后面三种安全级都要求用户在本
linux
机器上也要系统帐户。否则是不能访问的
smb passwd file=/etc/samba/smbpasswd (
设置
smb
密码文件的位置
)
username map =/etc/smbusers
encrypt passwords =no
采用的时明文密码验证,如果是加密的
,
就改为
yes
四.用户的建立
1.
用户必须是系统用户。用
useradd
添加
2.
密码用
smbpasswd �Ca
后面跟用户名,然后会提示你输入密码
d
禁用某个用户
e
启用
X
删除
五.使用
swat
管理
Samba
服务器
1.
安装
swap
rpm -ivh samba-swat- 3.0.10 -1.4E.i386.rpm
2. chkconfig swat on
3. service xinetd restart
4. http://ip:901
就可以访问了
(
默认情况下
,
只能用本机访问
)
六
.
testparm
命令是配置文件测试工具,可以对
smb.conf
配置文件的语法进行检测,并显示当前配置的清单
七.
Smbstatus
显示服务器的连接信息
八
.
Smbclient �CL 192.168.1.1
显示
192.168.1.1
这个服务器上的共享目录
Smbclient //192.168.1.1/aa -U aa
用用户
aa
访问
192.168.1.1
上面的
aa
目录
九
.目录挂载
.Smbmount
用于挂再
linux
共享
目录。
smbmount //192.168.1.2/public /mnt
mount -t smbfs -o username=st02 //192.168.1.2/public /mnt
十一
本科总结
1.Windows
主机之间使用
SMB/CIFS
协议进行文件和打印的共享
2.Samba
服务器在
Linux /UNIX
系统中实现了
SMB/CIFS
协议
3.Samba
服务器需要运行
smbd
和
nmbd
两个服务程序
4.
配置文件
smb.conf
是
Samba
服务器配置的核心
5.
使用
smbclient
和
smbmount
客户端命令可以连接使用
Samba
服务器中的共享目录
实验
常见共享目录配置项的含义
comment
:对共享目录的注释、说明信息
path
:共享目录在服务器中对应的实际路径
browseable
:该共享目录在“网上邻居”中是否可见
guest ok
:是否允许所有人访问,等效于“
public”
writable
:是否可写,与
read only
的作用相反
read only = yes
writable
实验
:
一
:
建立资源
,
使登陆到该服务器的用户均有权使用该空间
(
包括读
,
写
)
.
编辑
smb.conf
文件
vi smb.conf
[resource]
comment = local resource
path = /var/samba/resource
read only = no
public = yes //
允许
guest
用户访问
.
建立共享文件夹
mkdir -p /var/samba/resource
.
由于任何人都能使用
,
所以得给该文件夹设置访问权限
.
chmod 707 /var/samba/resource
.
如果想在该文件夹中放置预共享文件
,
而又不想花时间从别的文件夹中
cp
过来
,
此时可以使用指针
.
比如想共享
/usr/share/doc
中的文件
,
则可以
:
ln -s /usr/share/doc /var/samba/resource/doc
进入
/var/samba/resource ls
一下
,
是不是出现指针文件了
!
二
:
建立一资源
,
只能让用户
liu
全权访问
.
.
编辑
smb.conf
文件
vi smb.conf
[liu]
comment = liu
path = /var/samba/liu
valid users = liu //
只允许
liu
访问
或者
@
组名
public = no
writable = yes
.
建立共享文件夹
mkdir -p /var/samba/liu
.
由于只能让
liu
使用
,
所以得给该文件夹设置访问权限
.
chown liu.liu /var/samba/liu
chmod 700 /var/samba/liu
此时该文件夹属于
liu
用户
,
并且只能由
liu
用户访问
.
例
:
建立一资源
,
只能让
root,zhang
和
wang
访问
.
.
编辑
smb.conf
文件
vi smb.conf
[zhang wang]
comment = zhang wang
path = /var/samba/liu
valid users = zhang wang
public = no
writable = yes
create mask = 0707 create
.
建立共享文件夹
mkdir -p /var/samba/zhangwang
.
给该文件夹设置访问权限
.
chmod 707 /var/samba/zhangwang
此时该文件夹只能
root,zhang,wang
访问了
.
例
:
建立一资源
,
让指定的组
group2
中的用户访问
.
.
编辑
smb.conf
文件
vi smb.conf
[group]
comment = group2
path = /var/samba/group2
public = yes
writable = yes
write list = @group2 //
设置读写访问用户列表(
read list
)
.
建立共享文件夹
mkdir -p /var/samba/group2
.
给该文件夹设置访问权限
.
chown group2.group2 /var/samba/group2
chmod 770 /var/samba/group2
此时该文件夹只能由
group2
中的用户访问了
.
(3).
以上为创建共享文件夹
,
下面为创建共享打印机
.
.
配置打印机的方面有很多
,
比如使用
redhat-config-printer
命令即可调出配置菜单
.
.
当然
smb.conf
中也要设置啊
:
[global]
printcap name = /etc/printcap //
配置文件路径
[printers]
writable = no
guest ok = yes //guest
可用
browseable = no //
不可浏览
ptrintable = yes
path = /var/spool/samba //
队列位置
printer admin = root //
打印机管理员
其他配置不变或按情配置
接下来再添加
print
驱动设置
:
[print$]
comment = printer drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root
接着创建
drivers
文件夹
:mkdir -p /etc/samba/drivers
最后给用户准备打印机驱动
,
并启动打印共享
:
注意:例
3
,
4
是补充内容,课本上没有!!!
cupsaddsmb -a -U root //-a
为共享所有打印机
-U
为以
root
身份执行
cupsaddsmb
命令
灵活的
samba
权限
read only = yes
write list = aa
这两行的作用:虽然该目录只读,但
aa
仍然能写
read only = no
read list = aa
作用:虽然该目录都可写,但
aa
只读