samba
一. 理论知识:
1. samba替代nfs的原因。
2. windows主机之间使用SMB/CIFS协议进行文件和打印的共享。(微软的服务)
端口号:445和139 (tcp)
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 -ivh samba*
2. 源码包的安装(samba-3.0.22.tar.gz)
# tar zxvf samba-3.0.22.tar.gz (解压源码包)
# cd samba-3.0.22 (进入解压目录)
#./configure --prefix=/usr/local/samba --sysconfdir=/etc/samba && make && make install (执行编译三步骤)
【--prefix 是指定samba安装目录。 --sysconfdir是samba配置文件安装目录】
三. /etc/samba/smb.conf主配置文件的主要参数
(samba配置文件中注释行以“#” 和 ";"开头,不区分大小写。还有以"/" 和 "*" 开头的也是注释行)【去掉注释行,该配置生效】
1. # grep -v "#" /etc/samba/smb.conf | grep -v ";" (除去以"#" 和";"号开头的行。 -v 是筛选的意识)
[global]
workgroup=MYGROUP
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 等同于 public = no
writable = no
printable = yes
[global] 是全局的设置,它对samba的功能具有很大的影响,主要用来设置整个系统规则;
workgroup 是工作的名称
server string 是对samba服务器的注释
netbios name = 192.168.1.1 自己的主机名,可以是ip或主机名。默认是Linux的主机名,最好写上。
【dos charset = GB2312 , unix charset = GB2312. 加上这两句就可以正确显示中文了。 】
host allow 允许登录的主机名单,用ip地址给出,多个ip地址用空格分开。
printcap name 指定 printcap 文件地址,通常为/etc/printcap,包含了Linux打印机的配置信息。
load printers 允许使用共享打印机是,设为yes
log file = /usr/local/samba/var/log.%m 日志文件位置
max log size = 0 日志文件大小,单位是KB ,是0 就不受限制。
guest account 来宾账号,表示哪一个Linux用户作为所要的客户连接,定义samba缺省的用户账号,这个账号必须在/etc/password文件中。
security 指定安全级别,大多数时都是使用user级别,即:samba使用本地Linux口令文件验证。
【一共有四个级别:share user server domain
1.share:没有安全级别,任何用户都可以不要用户名和口令访问服务器上的资源。
2.user:这是默认的设置,要求用户在访问共享资源之前必须提供用户名和口令,进行验证。
3.server:和user安全级别类似,但用户名和口令是递交到另外一个服务器上去验证。如果提交失败,就退到user安全级别。
4.domain:这个安全级别要求网络上存在一台windows的主域控制器,samba把用户名和口令提交到它那里去验证】
注意: /etc/samba/lmhosts 文件是提供ip和netbios名称间的解析
/etc/samba/smbpasswd 文件是samba密码文件
/etc/smbusers 文件是samba用户文件
encrypt passwords = no 采用的是明文密码验证,如果是加密的就改为yes
后面三种安全级别要求用户在本Linux机器上也要有系统账号,否则不能访问。
四. samba用户的建立
1. 用户必须是系统用户,可用 useradd 命令添加系统用户。
2. 添加samba用户用 sambapasswd -a 用户名 然后提示你输入密码。(是添加某个用户)
-d 用户名 (是禁用某个用户)
-e 用户名 (是启用某个用户)
-x 用户名 (是删除某个用户)
五. 使用swat管理samba服务器
1. 安装swat软件包 # rpm -ivh samba-swat-3.0.10.1.rpm
2. # chkconfig swat on
# service xinetd restart
3. http://samba服务器ip:901 (客户机通过http方式就可以访问samba服务器了。)
六. # testparm 命令是samba配置文件测试工具,可以对smb.conf配置文件的语法进行检测,并显示配置的清单。(在服务器上用)
七. # smbstatus 命令是显示服务器的连接信息 (在服务器上用)
八. # smbclient -L samba服务器的ip (显示samba服务器上的共享目录)【当要求输入密码是,直接回车即可】
# smbclient //samba服务器的ip/aa -U qq (以用户qq去访问samba服务器上的共享目录aa)【当要求输入密码时,输入用户qq的密码】
九. 目录的挂载
smbmount 用于挂载Linux共享目录。格式如下:
# smbmount //服务器ip/public /mnt (将服务器上的public目录挂载到本地的/mnt目录下)
或用下面的挂载命令:
# mount -t smbfs -o username=aa //服务器ip/public /mnt (-t 是指定文件类型,-o 是指定用户)
十. 常见共享目录配置的含义:comment (对共享目录进行注释,说明)
path (共享目录在服务器中对应的实际路径)
browseable (该目录是否可以被看见)
writable (是否可写,与read only 的作用相反)
read only (只读)
create mask = 0755 (创建文件时权限是755)
only guest = yes (仅以匿名用户登录)
valid users = liu (只有以liu登录时,才可以执行相应的权限,其他用户不行。与其相反的是 invaild users=)
第二部分:实验
一. 建立资源,是登录到该服务器的用户均有使用该空间的权限(包括读和写)
1. 编辑samba配置文件:# vim /etc/samba/smb.conf 在最后添加如下内容:
2. [resource]
comment = local resource (对resource 的描述)
path = /var/samba/resource (resource的本地路径)
read only = no 或用 writable = yes (可读写)
public = yes (允许所有访问)
3. # mkdir -p /var/samba/resource (建立共享文件夹)
4. # chmod 707 /var/sammb/resource (由于要所有人都可读可写,所以要设置相应的权限)
将共享文件放入resource目录,有两种方法:
A. 用cp命令拷贝 # cp 源文件 /var/samba/resource
B. 用ln -s指针 命令 # ln -s 源文件 /var/samba/resource
二. 建立资源,只能让用户liu全权访问
1. 编辑samba配置文件 # vim /etc/samba/smb.conf 在后面添加如下内容:
2. [liu]
comment = liu
path = /var/samba/liu
vaild users = liu (只允许liu)【相反的命令 invaild users = 】
public = no (当用了public = no 时,就应有 vaild users = 用户名)
writable = yes (可写)
3. #mkdir -p /var/samba/liu (建立共享文将夹)
4. 由于只能让liu使用,所以要设置相应的权限 :
# chown liu:liu /var/samba/liu
# chmod 700 /var/samba/liu
【此时该文件夹属于liu用户,并且只能由liu用户访问】
三. 建立资源,只能让 root zhang wang 访问。
1. # vim /etc/samba/smb.conf (编辑配置文件)
2. [zhang wang]
comment = zhang wang
path = /var/samba/zw
vaild users = zhang wang root
public = no
writable = yes
create mask = 0707 (创建文件的权限)
3. # mkdir -p /var/samba/zw (建立共享目录)
4. # chmod 707 /var/samba/zw (设置权限)
四. 建立资源,然指定的组group1中的用户访问。
1. # vim /etc/samba/smb.conf (编辑配置文件)
2. [group1]
comment = group1
path = /var/samba/group1
public = yes
writable = yes
write list = group1 (设置访问用户列表) 【还有 read list 】
3. # mkdir -p /var/samba/group1 (建立共享文件夹)
4. # chown - R group1:group1 /var/samba/group1 (更该文件所属的主和组)
# chmod 770 /var/samba/group1 (设置相应的权限)