samba: 功能: 文件系统共享:类unix系统和windows系统之前文件系统共享 打印机共享; NetBIOS协议; 服务端程序包:samba nmbd:NetBIOS name server smbd:SMB/CIFS services 主配置文件:/etc/samba/smb.conf systemd unit file: nmbd:nmb.service smbd:smb.service 客户端程序包:samba-client smbclient:交互式的命令行客户端; mount -t cifs: 监听端口:137/upd,138/udp,139/tcp,445/tcp samba配置:smb.conf 两类配置段: 全局配置:[global] 每共享的专用配置:[共享资源的共享名称] directive = value 全局配置: workgroup = 当前samba主机所属工作组 netbios name = 当前samba主机的netbios名称 server string = 主机注释 display charset = 当前samba服务器所用字符集 unix charset = 当前linux主机所用的字符集 dos charset = windows端的字符集 interfaces = samba服务监听的IP地址或网络接口 hosts allow = 客户端来源白名单 log file = /var/log/samba/log.%m 日志存放位置 max log size = 50 日志文件大小上限,单位KB standalone server options security = user 设定安全级别,取值以下三者之一 share:匿名共享 user:使用samba服务自我管理的帐号和密码进行认证,用户必须是OS用户, 密码是访问samba的专用密码 domain:使用DC进程认证, passdb backend = tdbsam 密码库文件的格式 共享配置: [共享名称]:此几位某共享服务名 comment:注释信息 path:此共享对应本地文件系统路径 browseable:是否可浏览,是否可被所有用户看到 writable:是否可写 read only:是否为只读 writelist:可写用户或组列表 用户名 @组名 +组名 guest ok :是否允许匿名访问 public:是否是公开的服务 注意:writable和writelist不应该同时使用 可用的宏列表: %m:客户端主机的NetBIOS名称 %M:客户端的Internet主机名,即HOSTNAME %H:当前用户的家目录 %U:当前用户的用户名 %g:当前用户所属的组名 %h:当前SAMBA主机的HOSTNAME %I:客户端主机IP %T:当前的日期时间 交互式访问: #smbclient -L SABMA_SERVER -U USERNAME #smbclient //SAMBA_SERVER/SERVER_NAME -U USERNAME 挂在访问方式: mount -t cifs -o username=USERNAME,password=PASSWD //SAMBA_SERVER/SHARED /MOUNT_DIR 例子: [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes 将系统用户添加为samba用户: [option] USERNAME -a:添加 -x:删除 -d:禁用 -e:启用访问samba共享: unix: smbclient:交互式命令行客户端 mount -t cifs:挂在文件系统 windows: //HOST OR IP/SHARED_DIR 命令:类似smbpasswd,用户管理smb用户 pdbedit [option]: -L:列出所有的smb用户 -v:verbose -a:添加用户 -u USERNAME -x:删除指定用户 -r:修改用户的粗信息 命令: 显示samba server的相关共享的访问状态 -b:显示简要格式信息 -v:显示详细格式信息
安装samba配置要求:
1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组, ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”; 4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问; 5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;
安装步骤如下:
yum info samba.x86_64 #查看samba包的信息 yum -y install samba.x86_64 #安装samba服务 rpm -ql samba #查看samba安装后的文件 groupadd develop #添加develop组 useradd -G develop gentoo #添加gentoo用户并给它指定附加组develop useradd -G develop centos #添加centos用户并给它指定附加组develop useradd ubuntu #添加ubuntu用户 echo "gentoo" | passwd --stdin gentoo #添加密码 echo "centos" | passwd --stdin centos echo "ubuntu" | passwd --stdin ubuntu smbpasswd -a centos #为samba服务添加centos用户,此处需要输入密码我设置为centos smbpasswd -a gentoo #此处需要输入密码我设置为gentoo smbpasswd -a ubuntu #此处需要输入密码我设置为ubuntu mkdir /data #建分享目录 chmod g+w /data #修改分享目录的组写权限 chown :develop /data #修改分享目录的数组 ls -dl /data/ #确认修改是否成功 vim /etc/samba/smb.conf #在配置文件中添加分享配置 全局配置添加如下 [global] workgroup = magedu server string = Samba Server Version %v netbios name = MYSERVER hosts allow = 192.168.0.0/16 分享目录配置如下 [shared] comment = data path = /data public = no valid users = gentoo centos ubuntu @develop write list = @develop read list = ubuntu writable = yes printable = no systemctl stop firewalld.service #关闭防火墙 setenforce 0 #关闭selinux getenforce #查看关闭情况 systemctl start smb.service #启动smb服务 systemctl start nmb.service #启动nmb服务 连接需要安装samba的客户端smbclient和一些依赖的包,不然会报错 [root@localhost ~]# smbclient -L 192.168.1.110 -U gentoo smbclient: relocation error: /lib64/libsamba-credentials.so.0: symbol GSS_KRB5_CRED_NO_CI_FLAGS_X, version gssapi_krb5_2_MIT not defined in file libgssapi_krb5.so.2 with link time reference yum -y install samba-client #安装samba客户端 yum install krb5-devel krb5-libs pam_krb5 krb5-workstation -y #安装客户端依赖的相关包 systemctl stop firewalld.service #关闭防火墙 setenforce 0 #关闭selinux getenforce #查看关闭情况 smbclient -L 192.168.1.110 -U gentoo #检测 smbclient //192.168.1.110/shared -U gentoo #交互式连接server端并指定用户 [root@localhost ~]# smbclient //192.168.1.110/shared -U gentoo Enter gentoo's password: Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4] smb: \> ls . D 0 Fri Dec 16 06:36:41 2016 .. DR 0 Fri Dec 16 06:36:41 2016 52403200 blocks of size 1024. 50839544 blocks available smb: \> smb: \> mkdir gentoo smb: \> ls . D 0 Fri Dec 16 07:02:02 2016 .. DR 0 Fri Dec 16 06:36:41 2016 gentoo D 0 Fri Dec 16 07:02:02 2016 52403200 blocks of size 1024. 50839580 blocks available smb: \> lcd /etc smb: \> put fstab putting file fstab as \fstab (176.1 kb/s) (average 176.1 kb/s) smb: \> ls . D 0 Fri Dec 16 07:02:20 2016 .. DR 0 Fri Dec 16 06:36:41 2016 gentoo D 0 Fri Dec 16 07:02:02 2016 fstab A 541 Fri Dec 16 07:02:20 2016 52403200 blocks of size 1024. 50839888 blocks available smb: \> exit [root@localhost ~]# smbclient //192.168.1.110/shared -U ubuntu Enter ubuntu's password: Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4] smb: \> ls . D 0 Fri Dec 16 07:02:20 2016 .. DR 0 Fri Dec 16 06:36:41 2016 gentoo D 0 Fri Dec 16 07:02:02 2016 fstab A 541 Fri Dec 16 07:02:20 2016 52403200 blocks of size 1024. 50839420 blocks available smb: \> mkdir ubuntu #ubuntu不在组中没有写权限 NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ubuntu mount -t cifs -o username=centos,passwd=centos //192.168.1.110/data /data 先关闭电脑的防火墙 在文件路径中输入 \\192.168.1.110 然后用gentoo登录: 登录后创建文件111.txt到服务器上目录中查看 [root@localhost data]# ls 111.txt fstab gentoo
原创文章,作者:sheng,如若转载,请注明出处:http://www.178linux.com/64034