======都是以前写的档,好多都丢了,今无意中找来几个全放出来,放出以便后参考======
CentOS4.4平台下搭建Samba服务器笔记V1.0
------Weihu.Yan 2008.5.26----
1.
系统简介:
最简安装!(development tool及兼容工具包)
检查是否有以下几个包:
[root@extmail tmp]# rpm -qa | grep samba ##看到只安装了以下两个包,所以还得安##
samba-common- 3.0.10 -1.4E.9
samba-client- 3.0.10 -1.4E.9
[root@extmail tmp]# rpm -ivh /root/samba- 3.0.10 -1.4E.9.i386.rpm
警告:/root/samba- 3.0.10 -1.4E.9.i386.rpm: V3 DSA 簽章:NOKEY, key ID 443e1821
準備中... ########################################### [100%]
1:samba ########################################### [100%]
[root@extmail tmp]# rpm -ivh /root/rsync- 2.6.3 -1.i386.rpm ###此包为了方便备分之用##
警告:/root/rsync- 2.6.3 -1.i386.rpm: V3 DSA 簽章:NOKEY, key ID 443e1821
準備中... ########################################### [100%]
已經安裝 rsync- 2.6.3 -1 套件
2.
开始配置smb.conf文件:
[root@extmail tmp]# vi /etc/samba/smb.conf
[global]
workgroup = SAMBAGROUP ####工作组名######
hosts allow = 10.
security = user
samba有四种安全等级:
share:
用户不需要账户及密码即可登录samba服务器
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码)
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码)
encrypt passwords = yes #######取消提注释#####
smb passwd file = /etc/samba/smbpasswd #######取消提注释#####
3.
创建共享,在smb.conf文件结尾添加:
[samba]
comment = This is my samba server
path = /samba
writable = yes
browseable = yes
read only = yes
create mode = 0664
directory mode = 0777
检查配置文件的正确性
[root@extmail tmp]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[samba]"
Loaded services file OK.
4.
修改防火墙开放文件共享端口:
[root@extmail tmp]# vi /etc/sysconfig/iptables ####实际测试,好像只开445即可###
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
[root@extmail tmp]# service iptables restart
清除防火墙规则: [ 确定 ]
把 chains 设置为 ACCEPT 策略:filter [ 确定 ]
正在卸载 Iiptables 模块: [ 确定 ]
应用 iptables 防火墙规则: [ 确定 ]
[root@extmail tmp]#
5.
新建一个系统账户:
[root@extmail ~]# adduser leeki -s /sbin/nologin
[root@extmail ~]# passwd leeki
Changing password for user leeki.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
6.
然后创建samba账户
[root@extmail ~]# smbpasswd -a leeki ###### -a是必须加的, 为了生成密码文件smbpasswd,该密码是windows登陆Linux的samba用户密码######
New SMB password:
Retype new SMB password:
Added user leeki.
[root@extmail ~]# more /etc/samba/smbpasswd ####查看生成的用户名与密码#######
7.
重启一下smb服务,开始测试吧!
[root@extmail /]# service smb restart
关闭 SMB 服务: [ 确定 ]
关闭 NMB 服务: [ 确定 ]
启动 SMB 服务: [ 确定 ]
启动 NMB 服务: [ 确定 ]
8.
相关参数介绍:
常用参数:
comment : 目录说明
path : 目录路径
public 开放共享 默认为no , 如果=yes 表示无需身份验证
browseable: 显示共享名称。
valid users: 允许列表中的用户访问
read only: 默认为yes,共享目录只读 。
writable: writable =no 与read only = yes 一样的效果
write list: 如果前面只读,只有在此里面的用户才有写的权利
creat mask: 指定在共享目录里面建立文件的权限, 权限最高只能为 766
directory mask: 指定建立目录的权限
force user: 指定存取的用户张号
force group : 指定用户存取组
comment : 目录说明
path : 目录路径
public 开放共享 默认为no , 如果=yes 表示无需身份验证
browseable: 显示共享名称。
valid users: 允许列表中的用户访问
read only: 默认为yes,共享目录只读 。
writable: writable =no 与read only = yes 一样的效果
write list: 如果前面只读,只有在此里面的用户才有写的权利
creat mask: 指定在共享目录里面建立文件的权限, 权限最高只能为 766
directory mask: 指定建立目录的权限
force user: 指定存取的用户张号
force group : 指定用户存取组
9.
测试吧!
a.
建立一个PUBLIC,可读可写:
[root@extmail ~]# mkdir -p /public
[public]
Comment = public server
path = /public
public = yes
writable = yes
browseable = yes
b.
建立一个PRI,只有samba才可写:
[pri]
comment = pri file
path = /pri
public = no
write list = samba #####表示只有samba用户才可以写,并且确定/pri文件夹samba有写的权利才可以,这一点比较重要,samba对系统账户及smb账户分的很细#####
browseable = yes
c.
还是类似b,修改如下:
[pri]
comment = pri file
path = /pri
public = no
valid users = samba ######加上这一行,表示,只有用samba用户登录的,才能看打开/pri的共享文件夹,用其它用户登录的只能看到,无法访问#####
write list = samba ###如果/pri文件夹,samba无权限,虽此处有写的权限,但仍无法创建文件夹#####
browseable = yes
d.
来个复杂点的:
有个四个部分文件夹:tech、sale、public
有如下用户:tech01,tech02,techman
Sale01,sale02,saleman
Boss
有如下用户组:manager,tech,sale三个组:
Tech组含:tech01,tech02,techman
Sale组含:sale01,sale02,saleman
Manager组含:boss,saleman,techman
要求做到:manager组中的人员能够看到所有文件夹,但只能对本部分的文件夹有写权限,除了BOSS外,可以对任何文件夹进行写删操作!public任何人都可以写删操作!
[root@extmail ~]# groupadd tech
[root@extmail ~]# groupadd sale
[root@extmail ~]# groupadd fina
[root@extmail ~]# adduser tech01 -s /sbin/nologin
[root@extmail ~]# adduser tech02 -s /sbin/nologin
[root@extmail ~]# adduser techman -s /sbin/nologin
[root@extmail ~]# adduser sale01 -s /sbin/nologin
[root@extmail ~]# adduser sale02 -s /sbin/nologin
[root@extmail ~]# useradd saleman -s /sbin/nologin
[root@extmail ~]# useradd boss -s /sbin/nologin
[root@extmail ~]# groupadd manager
[root@extmail /]# chgrp manager /tech/
[root@extmail /]# chgrp manager /sale/
[root@extmail /]# chmod 771 tech/
[root@extmail /]# chmod 771 sale/
关于组这块添加如下面例子:
Vi /etc/group
tech:x:502: tech01,tech02,techman,boss ####表示,这些用户,在此组中#####
smb.conf里面配置如下:
[public]
path = /public
public = yes
writable = yes
browesable = yes
guest ok = yes
[tech]
patch = /tech
valid users = @tech,@manager,@sale
write list = @tech,boss
[sale]
path = /sale
valid users = @tech,@manager,@sale
write list = @sale,boss