Linux Samba文件共享服务配置

时间:2024-05-18 22:34:27
一、软件准备
  RHEL4系统中默认安装了samba服务器和客户机的所有软件包。通过以下命令来确认是否已存在软件包。
  # rpm -qa|grep samba
  samba-client-3.0.10-1.4E
  samba-3.0.10-1.4E
  samba-common-3.0.10-1.4E
  若没有,则到RHEL4的第2张安装光盘中去找,或者到网上去下载。
 
二、Samba服务的安装和配置
1、 Samba安装
  安装命令为:
  # rpm –ivh 软件包名称
  例如:# rpm –ivh samba-3.0.10-1.4E.rpm
  RHEL4系统中默认已经安装了与Samba服务相关的软件包。
 
2、 Samba服务器的配置
a.   在smb.conf文件中进行共享资源的配置
  去掉注释,查看smb.conf配置文件中的有效配置,让我们来认识一下smb.conf配置文件。
  # grep -v "^#" /etc/samba/smb.conf |grep -v "^;"
  以上命令能有效的过滤掉配置文件中的注释文字。
 
[global]
workgroup = MYGROUP
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
cups options = raw
log file = /var/log/samba/%m.log
max log size = 50
security = user
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no
[homes]
comment = Home Directories
browseable = yes
writable = yes
 
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
  从以上内容可以看出smb.conf配置文件默认包括以下3部分内容:
  [global]部分是Samba服务器的全局设置,配置项的内容对整个Samba服务器有效。
  [homes]部分设置了用户共享目录的属性,该部分中不包括的设置项则使用配置文件中的全局设置。
  [printers]部分设置了Samba服务器中的打印机共享资源的属性,Samba服务器除了可以提供文件共享以外,还能够提供打印机的共享。
  用户可以根据自己的应用需求在smb.conf配置文件中添加共享资源的设置,共享资源的名称需要放置在方括号([])中。没有特别的需求,就保持smb.conf配置文件中的[global]项配置为默认。
  再来看看[global]全局配置中,常用配置项的含义表:
配置项 说明
workgroup 设置Samba服务器所在的工作组的名称,默认设置为
server string 设置Samba服务器的说明文字,用于描述Samba主机
log file 设置Samba服务器的日志文件,默认设置为”/var/log/samba/%m.log“,表示所有设置文件都保存在”/var/log/samba/“目录中,使用Samba服务器的每个客户机的日志分别为保存与客户机同名的”%m.log“文件中,”%m“表示客户端主机的名称。
Max log size 设置日志文件的最大容量,默认为50.表示KB,该设置项的数值单位是KB
security 设置Samba服务器的默认安全级别为user,表示需要经过Samba服务器的用户认证后才能够访问服务器中的资源
 
  对于security全局设置项的配置比较关键,该配置项去定了Samba服务器对客户机采取何种用户认证方式。Security设置项的值可以有以下4种:
  share:表示用户不需要帐户及密码即可登入Samba服务器。
  user:表示由提供服务的Samba服务器负责检查用户及密码,是Samba默认的安全等级。
  server:表示检查账户及密码的工作指定由另一台Windows服务器或Samba服务器来负责。
  domain:表示指定Windows域控制器来验证用户的账户及密码。
b.   Samba用户账号及用户目录设置
 
  (1)smb.conf文件中对用户目录的默认设置:
       comment = Home Directories
       browseable = yes
       writable = yes
  [homes]共享目录默认的配置项含义如下:
  comment:用于设置共享目录的说明信息。
  browseable:设置为no时表示所有Samba用户的宿主目录都不能被看到,只有登录用户才能看到自己的宿主目录,这样设置可以加强Samba服务器的安全性。
  writable:设置为yes时,表示用户可以对该共享目录写入,设置用户对自己的宿主目录具有写权限是比较合理的。
  经过以上设置后,Samba服务器中的每个用户都会在服务器中拥有一个自己的共享目录(宿主目录)。
 
 
  (2) 建立Samba用户账号
  Samba服务器不使用Linux系统的用户账号进行用户认证,而是维护自己的用户账号文件。Samba服务器的用户账号文件保存在“/etc/samba”目录中,文件名是smbpasswd,初始状态smbpasswd文件不存在,在第一次使用smbpasswd命令创建Samba用户时自动建立。
  在建立Samba用户账户之前先要建立同名的Linux系统用户账号。
# cd /etc/samba/
# adduser st02
# smbpasswd -a st02
New SMB password:
Retype new SMB password:
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Added user st02.
 
  注意:这里输入密码是不显示的。
  smbpasswd命令除了可以添加Samba用户账户外,使用不同命令选项可以完成不同的账号维护工作。
  -h:显示smbpasswd的命令格式帮助
  -a:添加指定的用户账号
  -d:禁用指定的用户账号
  -e:启用指定的用户账号
  -x:删除指定的用户账号
  使用smbpasswd –d 命令禁用Samba用户账号时,,将在smbpasswd文件的用户记录中进行相应字段的标记。
  使用smbpasswd –e 命令即是启用已经被禁用的Samba用户账号,将在smbpasswd文件中删除用户记录中的禁用标记。
  smbpasswd命令不接任何参数时,将提示修改指定Samba用户的口令,口令的修改会体现在smbpasswd文件的用户记录中。
  使用smbpasswd命令建立Samba用户账号时应注意一下几点:
  -> Samba用户账号使用独立的smbpasswd文件保存用户的账号和加密口令信息。
  -> Samba服务器中的用户账号应该具有与其同名的Linux系统用户账号,因为Samba用户是使用同名的系统账号身份来访问Linux资源(文件和目录)的。
  -> Samba用户的口令和同名系统用户的口令是独立的,可以相同也可以不相同,需要分别进行维护和更改。
  -> 当Samba用户不需要登录Linux系统时,同名的系统用户账号可以不设置口令,因为空密码的系统用户是无法登陆Linux系统的。
  可以看出Samba服务器中的用户账号与Linux系统账号是相对独立但是又有所关联的,在实际的应用中要注意两者之间的以上几点关系。
 
 
c.    添加公共目录设置
  在Samba服务器的默认设置中没有公共目录的设置,需要手动进行添加。
  对于公共目录有如下要求:
  (1) 任何Samba的用户都可以访问公共目录并对目录有读写权限;
  (2) 任何用户在公共目录中都以Linux中nobody系统用户的身份出现,即在公共目录中任何用户建立的文件都属于nobody系统用户。
  在对smb.conf文件进行设置之前需要建立公共目录在Linux系统中对应的目录“/home/public”,并设置该目录的属主和属组为nobody。
  # mkdir /home/public
  # chown nobody.nobody /home/public
  # ls -ld /home/public
  drwxr-xr-x  2 nobody nobody 4096 Jun 10 13:30 /home/public
在smb.conf文件中添加名为[public]的共享资源,并设置如下内容:
[public]
path = /home/public
public = yes
only guest = yes
writable = yes
d.    对smb.conf文件配置的测试
  测试命令为:# testparm
 
e.    Samba服务器的启停命令
  Samba服务器的启动脚本位于目录“/etc/init.d”中,脚本文件的名称是smb。
  # ls -l /etc/init.d/smb
  -rwxr-xr-x  1 root root 2020 Jan  3  2005 /etc/init.d/smb
  启动Samba服务器:
  # service smb start
  Starting SMB services: [  OK  ]
  Starting NMB services: [  OK  ]
  查看Samba服务的服务状态:
  # service smb status
  smbd (pid 3886 3882) is running...
  nmbd (pid 3887) is running...
  停止Samba服务器:
  # service smb stop
  Shutting down SMB services: [  OK  ]
  Shutting down NMB services: [  OK  ]
 
三、实现Windows主机访问Samba服务器:
1、  在“运行”中输入Samba服务器的IP地址,并回车
 
Linux Samba文件共享服务配置...........................................
2、 在弹出的登录界面中输入Samba的账户st02及密码:
Linux Samba文件共享服务配置
3、 访问Samba服务器成功:
Linux Samba文件共享服务配置
 
 
 
四、Linux主机访问Windows共享文件
1、 在Windows主机中创建共享目录
Linux Samba文件共享服务配置
Linux Samba文件共享服务配置
2、 使用sbmclient命令来连接Windows共享目录
  使用来宾账号Guest(密码为空)来登录访问Windows的共享资源
# smbclient //192.168.1.254/share -U Guest
Password:
Domain=[XULAU] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: /> dir
.                               D            0  Wed Jun 10 05:46:45 2009
..                              D            0  Wed Jun 10 05:46:45 2009
360safefixavi.exe                     A   402952  Sun May 31 07:49:21 2009
avseq03.wmv                          A  8062020  Sat Jun  6 03:11:22 2009
EasyInstallMakerV2.2_XiaoSD.exe   A  1341058  Sat May 30 08:46:03 2009
FireFox 3.0.8.exe                     A  7339968  Mon Apr 20 07:18:42 2009
kav8.0.0.506sch.exe                 A 38302992  Thu Dec  4 20:22:00 2008
mysql-5.1.35.tar.gz                  A 35152597  Fri Jun  5 23:51:45 2009
                         53615 blocks of size 1048576. 5523 blocks available
smb: /> exit
3、 使用mount命令挂载Windows共享目录
# mkdir /winshare
# ll /winshare
total 0
# mount -t smbfs -o username=Guest //192.168.1.254/share /winshare
Password:
# ll /winshare
total 88480
-rwxr-xr-x  1 root root   402952 May 31 07:49 360safefixavi.exe
-rwxr-xr-x  1 root root  8062020 Jun  6 03:11 avseq03.wmv
-rwxr-xr-x  1 root root  1341058 May 30 08:46 EasyInstallMakerV2.2_XiaoSD.exe
-rwxr-xr-x  1 root root  7339968 Apr 20 07:18 FireFox 3.0.8.exe
-rwxr-xr-x  1 root root 38302992 Dec  4  2008 kav8.0.0.506sch.exe
 
 
 
例子:
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[public_share]
        comment = This is my share
        path = /home/public_share
        browseable = yes
        writable = yes
        public = yes
        guest ok = yes
[Company_File]
        comment = This is company share
        path = /home/CompanyFile
        browseable = yes
        writeable = yes
        public = yes
        guest ok = yes挂载成功!