Linux实践工程师学习笔记:samba
严寒
|
1#
严寒 发表于 2007-01-15 00:43
Linux实践工程师学习笔记:samba
samba软件包使用
Fedora core/Redhat Linux提供的软件包 samba samba服务器软件包 samba-client samba客户端工具 samba-common 通用工具和库 安装rpmdb-fedora/rpmdb-redhat软件包(一般在第三张光盘) 但在FC5已找不到这个软件包 安装了rpmdb可以解决依赖性问题 #rpm –ivh rpmdb-fedora*.rpm #rpm –ivh --aid samba*.rpm 装了rpmdb才有效 1.#rpm –ivh cups-libs*.rpm 第一张光盘 2.#rpm –ivh samba*.rpm 第一张光盘(client,common) 3.#rpm –ivh samba*.rpm 第二张光盘 #rpm –qa |grep samba 查看所有软件包列表 #rpm –ql samba | more 查讯某个软件列表 samba客户端工具 smbtree 作用:显示局域网中的所有共享主机和目录列表(默认使用当前用户登录) 用法:smbtree [-b] [-D] [-U username%password] -D 表示只显示工作组名,不显示主机 -b 使用广播查询列表,不用WINS服务器 -D和-U 不能共用,因为不可能用同一个用户登录域上所有主机 nmblookup 作用:显示一台主机的nethios主机名 nmblookup my-server 查询服务器的IP nmblookup \* 查询所有活动的主机的IP smbclient 作用:显示/登录局域网中的共享文件夹 用法:smbclient –L host smbclient //host/share smbclient –L 192.168.0.22 –U redhat%redhat 以redhat用户登录并显示共享目录 smbclient //192.168.0.22/linux –U redhat%redhat 登入目录,查看目录内容,通过put,get上下载文件 smbtar(先要修改/usr/bin/smbtar命令,把最后一行的参数-N匿名登陆删掉) 远程备份网上邻居中的文件 smbtar –s win2000 –u redhat –p redhat –x chinalab –t itlab.tar 将共享目录挂载到本地目录,然后再访问 mount.cifs //192.168.0.22/linux /mnt –o username=redhat%redhat tar tvf lab.tar 显示备份包里的文件 samba服务器配置 1.修改配置文件/etc/samba/smb.conf workgroup = WORKGROUP security = share [docs] path = /usr/share/doc comment = share documents #说明共享目录 public = yes 2.重启smb服务器 #service smb restart #chkconfig smb on 让smb每次自动启动 3.测试 #smbclient –L localhost chkconfig smb –list 查看服务的启动状态 SMB 提供名称解释服务 NMB 提供数据传输服务 两个总是一起工作的 samba文件服务器 (WINS)在网上邻居看不到主机列表,可以在地址栏直接输入IP如\\192.168.0.1查看共享目录 网上邻居看到的主机列表,主要有三个来源,一是配置文件lmhosts,主机名与IP的对应关系 二是通过浏览服务器 三是通过广播方式获取主机列表 linux访问网上邻居 1.挂载方法 #mount –t smbfs //192.168.0.1/linux /mnt 或 #mount.cifs //192.168.0.1/linux /mnt 2.#smbclient //192.168.0.1/linux –U redhat%123 访问控制 public = yes 允许所有人访问 = no 不允许匿名访问 1.共享目录设置有效用户 [redhat] path = /var/redhat comment = redhat’s files valid users = <username> <@groupname> 2.创建samba用户 #useradd username 新建一个系统用户 #smbpasswd –a username 将用户加入到samba中 3.用户账号映射 [global] username map = /etc/samba/smbusers 4.修改上面指定的smbusers文件,添加虚拟用户名 redhat = tom jack 也可以直接用以下命令: #smbuseradd unixname:mapname 5.需重启smb服务读取映射文件 HOME目录(用于用户访问用户自己的主目录) [global] [homes] comment = Home Directories validusers = %S %S目录属主 browseable = no 默认不允许浏览home目录 writable = yes 允许写 valid users = 有效用户列表 write list = 可写用户列表 create mask = 0660 定义创建文件的默认权限 directory mask = 0770 定义创建目录的默认权限 chown redhat /var/redhat 改变目录属主 ls –lh 显示目录里各个文件的详细信息 ls –ld /usr/redhat 只显示目录本身的详细信息 #testparm 测试配置默认文件smb.conf的正确性 #testparm /etc/samba/smb.conf my-server 192.168.0.1 测试客户机能访问服务器的哪些目录 [redhat] path = /var/redhat comment = redhat’s files public = no valid users = <username> <@groupname> write list = <username> <@groupname> create mask = 0660 directory mask = 0770 注意:客户端所有请求访问身份在服务器端都会映射成登录账号的身份 samba配置文件 /etc/samba/smb.conf [global] workgroup = WORKGROUP 组或域名 server string = samba server 服务器描述 netbios name = redhat 指定samba服务器名 security = share/user/server share不需验证用户,user要验证 ;password server = <server> 需与security=server配合使用 log file = /var/log/samba/log.%m %m指客户机的netbios名,日志按客户机名分类 encrypt passwords = yes 加密密码,windows客户机一般使用加密密码,所以为yes.如果不加密直接用明文密码,可改为no,但windows客户机需修改注册表指定不加密 smb passwd file = /etc/samba/smbpasswd 上面两句要一起使用! include = /etc/samba/smb.conf.%m 包含外部配置文件,如根据不同的客户机名称,定义不同的共享资源 ;interfaces = 192.168.0.0/24 samba应用在哪个接口上,默认是在所有网卡,所有接口上 ;name resolve order = wins lmhosts bcaast 名称解释顺序 ;wins support = yes 自己作为WINS服务器,并提供给客户机查询 ;wins server = w.x..y.z 与WINS配合使用,作为WINS服务器,请求会发送到w.x.y.z /etc/samba/lmhosts文件(保存客户机IP与名称的对应关系) 左边IP 右边名称 127.0.0.1 localhost wins support,wins server 不能同时使用 wins server 说明本身作为客户机,而指定一台wins服务器的IP samba的安全级别 [global] security = <level> 1.share windows用户不需要认证就能访问共享列表 2.user windows客户机需输入用户才能访问共享名列表,服务器上需建立用户账号 3.server 客户端需输入合法用户帮能访问,但认证过程在另一服务器进行,用户账号保存在认证的那台服务器上。 share,user只对windows客户机有效,linux客户机在user级别不用密码也能访问共享名列表。security只保护主机的共享名列表,具体到目录的访问则由目录的规则决定。 #hostname 查看主机名 #nmblookup my-server 查询主机IP(与samba netbios name有关) #man smb.conf 查看相关帮助 vi搜索技巧: /%m 先输入”/”再输入要查找的字符串 /redhat 如查找”redhat”字符串 shift+G 跳到文件尾 默认服务器名与机器DNS的第一部分相同 如Fedora.cyrich.com则这台samba服务器的名称就是Fedora 访问控制 一、全局控制 [global] hosts deny = ALL hosts allow = 192.168.0. 二、局部访问控制 [docs] hosts deny = 192.168.0. hosts allow = 192.168.0.1 [redhat] hosts allow = 192.168.0. host deny = 192.168.0.1 (失效) 允许优先!! hosts 后面的格式语法,可以通过man 5 host.access查看帮助 1.点开头 .edu.cn 2.点结尾 192.168.0. 3.192.168.0.0/255.255.255.0 192.168.0.0/24 4.ALL LOCAL UNKNOWN DNS不能解析的 5./开头 指定一个文件 6.hosts allow = 192.168.0.0 EXCEPT 192.168.0.1 允许192.168.0网段主机访问,但192.168.0.1除外 技巧: #tail /etc/samba/smb.conf 显示文件最后的十行 应用案例 要求: 1.所有员工都能够在公司内流动办公,但不管在哪台电脑上工作,都要把自己的文件数据保存在samba文件服务器上。 2.市场部,技术部都各有自己的目录,同一个部门的人共同拥有一个共享目录,其他部门的人都只能访问在服务器上自己个人的home目录 3.所有用户都不允许使用服务器上的shell 分析: 1.需要samba作为文件服务器,为所有用户创建账号和目录,用户默认都 在服务器上有一个home目录,只有认证通过才能看到。 2.需为市场部和技术部创建不同的组sales和tech,并且分配目录,把所有市场部员工加入sales组,技术部员工加入tech组,通过samba共享sales和tect 3.建立用户账号时,不分配shell 案例实施: 1.为所有用户创建账号和目录,不分配shell,假设市场部有tom,jack,技术部有red,blue,总经理ceo,财务finance 2.建组sales和tech,把所有市场部员工加入sales组,技术部员工加入tect组 3.创建两个目录/home/sales和/home/tech,并修改两个目录的权限,分别属于sales组和tect组 4.通过samba共享/home/sales和/home/tect 5.测试 如有错误,检查 /etc/samba/smbpasswd 确定账户 /etc/samba/smbusers 查看映射文件 tail /var/log/samba/redhat.log 查看/var/log/samba/目录下的日志 具体操作: #vi /etc/samba/smb.conf 安全级别为user #groupadd sales #groupadd tech #useradd –g sales –s /bin/false tom #useradd –g sales –s /bin/false jack #smbpasswd –a tom #smbpasswd –a jack #for user in red blue >do > useradd –g tech –s /bin/false $user > smbpasswd –a $user > done #useradd ceo #useradd finance #smbpasswd –a ceo #smbpasswd –a finance #mkdir /home/sales /home/tech #chgrp sales /home/sales #chgrp tech /home/tech #chmod 770 /home/sales #chmod 770 /home/tech #chmod g+s /home/sales 防止权限发生混乱 #chmod g+s /home/tech #vi /etc/samba/smb.conf [global] path = /home/sales comment = sales public = no valid users = @sales write list = @sales create mask = 0770 directory mask = 0770 [tech] path = /home/tech comment = tech public = no valid users = @tech write list = @tech create mask = 0770 directory mask = 0770 linux测试 1.smbclient –L 192.168.0.22 –U tom%tom 2.mount.cifs //192.168.0.22/ceo –o username ceo%ceo windows客户机映射网络驱动器,再设定“我的文档”位置,就可随时随地将文件保存在samba服务器上。 |