smb(samba)服务
Posted skyzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了smb(samba)服务相关的知识,希望对你有一定的参考价值。
smb(samba)服务: 用于Linux和windows之间文件传输,打印机共享;可以实现匿名用户、本地用户的文件共享 smb进程:负责控制发布共享目录与权限 tcp 139 445 nmb进程:用于名称解析netbios udp 137 138 基于netbios协议获取计算机的名称,并解析成相应的ip,实现通讯 # rpm -aq|grep ^samba samba-winbind-clients-3.6.9-164.el6.x86_64 客户端工具 samba-client-3.6.9-164.el6.x86_64 客户端工具 samba4-libs-4.0.0-58.el6.rc4.x86_64 库文件 samba-common-3.6.9-164.el6.x86_64 工具包 samba-winbind-3.6.9-164.el6.x86_64 客户端 samba 服务端软件【需要安装】 1、 2、 3、软件三步曲 # yum -y install samba # rpm -q samba # rpm -ql samba /etc/logrotate.d/samba 日志轮转文件 /etc/pam.d/samba 认证文件 /etc/rc.d/init.d/nmb 启动脚本 /etc/rc.d/init.d/smb 启动脚本 /etc/samba/smbusers 定义别名 /usr/sbin/nmbd 二进制命令 /usr/sbin/smbd 二进制命令 # rpm -ql samba-common /etc/samba 相关主目录 /etc/samba/smb.conf 主配置文件 /usr/bin/pdbedit 查看数据库文件的命令 /usr/bin/smbpasswd 创建smb用户 /usr/bin/testparm 语法测试 # rpm -ql samba-client /usr/bin/smbclient 客户端工具 4、了解配置文件 # cat /etc/samba/smb.conf |grep -v ^#|grep -v ‘^;‘|grep -v ^$ [global] 全局标签 workgroup = MYGROUP 工作组 server string = Samba Server Version %v 版本描述 log file = /var/log/samba/log.%m 日志文件保存路径 max log size = 50 日志文件大小 security = user 用户密码;share 匿名用户 ;server... passdb backend = tdbsam 数据库文件格式 load printers = yes 加载打印机 cups options = raw 打印机选项 [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 等于 read only = yes printable = yes 5、根据需求通过修改配置文件来完成服务的搭建 需求1:通过本地用户访问samba服务 默认情况下将本地用户的家目录共享出去了,所以不需要更改配置文件 # smbclient //10.1.1.1/stu1 -U user1 --->以用户user1身份进入stu1家目录(首先要有相应的权限) 6、启动服务|开机自启动 # /etc/init.d/smb start # /etc/init.d/nmb start # chkconfig smb on # chkconfig nmb on 7、测试验证 Linux: # smbclient --help # smbclient -L 10.1.1.1 查看远程主机共享的标签,默认输入root密码,如果不输则是匿名用户查看 # smbclient //10.1.1.1/user1 匿名用户访问共享的目录 # smbclient -L 10.1.1.1 -U user1 使用user1用户和smb数据库的密码查看共享的标签 # smbclient //10.1.1.1/user1 -U user1 使用用户q去直接访问远程主机的共享目录 注意: 默认情况下,本地用户可以通过用户名和密码去直接访问server端所共享出来的家目录;但是事先需要将该用户加入到smb数据库里 # smbpasswd --help # smbpasswd -a user1 -a add user :将用户加入samba数据库 -d disable user -e enable user -x delete user window端:cmd \10.1.1.1 需求2:匿名用户共享/samba/share目录 步骤: 1、创建一个共享目录 # mkdir /samba/share -p 2、发布共享目录 [anon_share] comment = anon user share path = /samba/share public = yes writeable = yes 注意: 1、security = share 那么本地用户是不能够访问的;即便是配置文件里有共享给本地用户的目录; 2、security = user 那么本地用户和匿名用户都可以访问;具体能不能访问某个共享目录要看该目录有没有给相应的访问权限 需求3: 公司:uplooking 1、财务部门 /samba/upl_cw cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限。 2、市场部门 /samba/upl_sc 市场部门员工可读可写,公司员工可以查询资料,boss02对其有管理权限。 3、HR部门 /samba/upl_rs rs01HR总监可读写,HR部门员工可以对财务部查询,vip用户可以查询 4、休息区 /samba/upl_pub 自己管理自己的文件 思路: 1、创建相应的共享目录 2、创建相应的用户组 3、根据需求将相应的目录共享出去 4、需要将用户加入到samba数据中 5、重启服务 6、测试验证 步骤: 1、创建相应的共享目录并且更改相应权限 # mkdir /samba/upl_{cw,sc,rs,pub} -p # chown root.uplooking upl_cw/ # chown root.uplooking upl_rs/ # chown root.uplooking upl_sc/ # chmod 1777 upl_pub/ 2、创建相应的用户组 # groupadd uplooking # groupadd cw # groupadd rs # groupadd sc # useradd -g cw -G uplooking cw01 # useradd -g cw -G uplooking cw02 # useradd -g rs -G uplooking rs01 # useradd -g rs -G uplooking rs02 # useradd -g sc -G uplooking sc01 # useradd -g sc -G uplooking sc02 # useradd -g uplooking boss01 # useradd -g uplooking boss02 # useradd vip 3、根据需求将相应的目录共享出去 writable/可写 readonly/只读 write list=user1,@admin 可写列表 read list=user1,@admin 可读列表 valid users = @admin,user1 可用用户 invalid users = @admin,user1 不可用用户 valid和invalid不能同时出现 hosts allow = 150.203. EXCEPT 150.203.6.66 hosts deny = 10.1.1.2 172.16.250.1 [cw] comment = cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限。 path = /samba/upl_cw valid users = @cw,@rs,boss01 write list = cw01,boss01 [rs] comment = rs01HR总监可读写,HR部门员工可以对财务部查询,vip用户可以查询 path = /samba/upl_rs valid users = @rs,vip write list = rs01 [sc] comment = 市场部门员工可读可写,公司员工可以查询资料,boss02对其有管理权限 path = /samba/upl_sc valid users = @uplooking,vip write list = boss02,@sc,vip [pub] comment = 自己管理自己的文件 path = /samba/upl_pub public = yes writable = yes hosts allow = 10.1.1.0/255.255.255.0 4、将用户加入到smb数据库里 # smbpasswd -a cw01 # smbpasswd -a rs01 # smbpasswd -a boss01 # smbpasswd -a boss02 # smbpasswd -a cw02 # smbpasswd -a sc01 # smbpasswd -a vip # /usr/bin/pdbedit -L 5 测试验证以上是关于smb(samba)服务的主要内容,如果未能解决你的问题,请参考以下文章