cifi文件系统-samba

一、简介

1.SMB文件共享

2.samba服务的组成部分

1)软件包

samba-common      #samba的支持文件

samba-client             #客户端应用程序

samba                        #服务端应用程序

2)服务端口

通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容

3)主配置文件

/etc/samba/smb.conf

二、部署

1.修改名称、黑白名单

服务端(172.25.254.1):

yum install samba samba-common samba-client -y

systemctl start smb

firewall-cmd --permanent --add-service=samba

firewall-cmd --reload

vim /etc/samba/smb.conf

 89         workgroup = VAON   #可修改名称

 96;         hosts allow = 172.25.254.2 #白名单。;表示注释

 97         hosts deny = 172.25.254.10 #黑名单,禁止多个ip方式:直接在第一个ip后面加空格再跟上第二个、第三个ip

客户端1(172.25.244.2):

yum install samba-client -y

列出服务器共享出的samba信息:

[root@desktop ~]# smbclient -L //172.25.254.1
Enter root's password:                           #没设定密码,直接回车,匿名登陆

Anonymous login successful

Domain=[ VAON] OS=[Unix] Server=[Samba 4.1.1]           #VAON就是刚才设定的名字
    Sharename       Type      Comment
    ---------       ----      -------
    IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[ VAON] OS=[Unix] Server=[Samba 4.1.1]
    Server               Comment
    ---------            -------
    Workgroup            Master
    ---------            -------
客户端2(172.25.254.10):

yum install samba-client -y

[root@station mnt]# smbclient -L //172.25.254.1
Enter vaon's password:
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
#由于被加入了黑名单,无法访问
2.添加samba用户

服务端:

添加samba用户,这个用户必须系统中存在:

[root@server ~]# smbpasswd -a student
New SMB password:             #这里设置的密码是客户端登陆samba的密码,跟student的系统密码无关

Retype new SMB password:

Added user student.

查看所有samba用户:

pdbedit -L

删除samba中的student用户:

pdbedit -x student

修改波尔值,允许进入家目录:

[root@server ~]# setsebool -P samba_enable_home_dirs on
客户端:

访问方式一:

[root@desktop ~]# smbclient //172.25.254.1/student -U student
Enter student's password:                      #输入刚才在服务端设置的密码
Domain=[VAON] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Sat Dec  9 22:51:42 2017
  ..                                  D        0  Sat Dec  9 22:51:42 2017
  .bash_logout                        H       18  Wed Jan 29 20:45:18 2014
  .bash_profile                       H      193  Wed Jan 29 20:45:18 2014
  .bashrc                             H      231  Wed Jan 29 20:45:18 2014
        62272 blocks of size 131072. 54947 blocks available
smb: \>
访问方式二:

将服务端的资源挂载到/mnt下:

[root@desktop ~]# mount //172.25.254.1/student /mnt/ -o username=student,password=student

cd /mnt/

touch file

#现在即使卸载/mnt,服务端的student家目录下还会有file,而且file还是属于student用户的,因为刚才是相当于客户端在使用服务端的硬盘资源。

3.

服务端:

建立共享目录:

[root@server ~]# mkdir /linux

[root@server ~]# yum install policycoreutils-python-2.2.5-11.el7.x86_64 -y

修改安全上下文:

[root@server ~]# semanage fcontext -a -t samba_share_t '/linux(/.*)?'

刷新安全上下文:

[root@server ~]# restorecon -RvvF /linux/

给共享目录777的权限(也可以针对用户添加acl权限):

chmod 777 /linux/

[root@server ~]# vim /etc/samba/smb.conf

[redhat]                                   #共享名称

323         comment = DATA directory  #说明

324         path = /linux                           #共享目录位置

325;         writable = yes                       #允许所有人写
326         write list = +student             # 只允许 studnt 组的用户可以写 , 不加 + 表示用户

327         browseable = no                 #不显示共享的名称,增强安全性。使用smbclient -L //172.25.254.1也看不到共享信息

328         valid user = @student        # 表示 student 的组才可以登陆,不加 @ 表示用户

329         admin user = westos         #表示westos用户在目录下建立出的文件是root身份

systemctl restart smb

客户端:

[root@desktop ~]# smbclient //172.25.254.1/redhat -U student      #这里使用的是共享名称,并不是真实共享目录名称
Enter student's password:
或者用:

mount //172.25.254.1/redhat /mnt/ -o username=student,password=student

进入/mnt可以创建文件,在服务端的/linux目录下可以看到新建文件的用户所有人为student
4.匿名用户设定
服务端:

vim /etc/samba/smb.conf

125         map to guest = bad user     #对匿名用户做一个说明

322         [redhat]
323         comment = DATA directory
324         path = /linux325         writable = yes
326 ;       write list = +student             #注释
327         browseable = no
328 ;       valid user = @student        #注释
329         admin user = westos
330         guest ok = yes                      #表示开启匿名用户登陆         

systemctl restart smb.service

客户端:

[root@desktop ~]# smbclient //172.25.254.1/redhat
Enter root's password:                     #匿名登陆,没有密码,直接回车
或者使用挂载:

匿名用户建立的文件都是nobody,并且对username没有要求

[root@desktop ~]# mount -o username= guest,password="" //172.25.254.1/redhat /mnt   #这里的名字可以随意写,匿名登陆,所以密码为空
[root@desktop ~]# touch /mnt/file2
[root@desktop ~]# ll /mnt/file2
-rw-r--r--. 1 nobody nobody 0 Dec 10 00:54 /mnt/file2

注:这里遇到一个问题,挂载时提示失败:

缺少mount.cifs,安装yum install -y cifs-utils-6.2-6.el7.x86_64之后可以正常挂载。在做匿名用户挂载之前,使用普通用户名密码方式挂载未出现此报错。

匿名用户自动挂载:

[root@desktop ~]# vim /etc/fstab

//172.25.254.1/redhat /mnt cifs defaults,username=guest,password="" 0 0

5.多用户挂载

服务端:

useradd westos

smbpasswd -a westos

查看samba用户:

[root@server ~]# pdbedit -L
student:1000:
westos:1001:

客户端:

yum install cifs-utils -y

将samba一个用户(westos)的用户名密码写入一个文件

vim /root/smbfile

username=westos

password=westos

修改权限,只有root可以查看:

chmod 600 /root/smbfile

使用这个文件里记录的samba用户挂载:

[root@desktop ~]# mount -o credentials=/root/smbfile,sec=ntlmssp,multiuser //172.25.254.1/redhat /mnt
切换到kiosk用户,查看/mnt目录会被拒绝访问:

[root@desktop ~]# su - kiosk
[kiosk@desktop ~]$ ls /mnt
ls: cannot access /mnt: Permission denied
但是只需要给kiosk用户做一个认证就可以访问了:

[kiosk@desktop ~]$ cifscreds add -u student 172.25.254.1
Password:                          #输入student用户密码
#这里使用了samba的其中一个帐号(student)作认证
[kiosk@desktop ~]$ touch /mnt/file4
[kiosk@desktop ~]$ ls /mnt/
file1  file2  file3  file4  linuxfile
三、win7进行测试
重启完smb服务之后,Windows就可以访问用户共享了。使用crtl+r键,输入\\共享IP地址\共享用户,然后输入samba用户名密码,就可以访问用户自己目录下的全部文件了。

也可以匿名登陆:crtl+r--->\\172.25.254.1进入samba服务共享目录(/linux)做写操作,不用帐号密码。

install -d -m0755 /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/config install -m0644 ./filesystem/etc/config/samba /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/config/samba install -d -m0755 /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/samba install -m0644 ./filesystem/etc/samba/smb.conf.template /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/samba install -m0644 ./filesystem/etc/samba/smbusers /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/samba install -m0644 ./filesystem/etc/samba/lognames.deny /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/samba install -m0644 /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/samba-3.6.25/codepages/lowcase.dat /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/samba install -m0644 /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/samba-3.6.25/codepages/upcase.dat /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/samba install -m0644 /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/samba-3.6.25/codepages/valid.dat /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/samba install -d -m0755 /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/init.d install -m0755 ./filesystem/etc/init.d/samba /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/etc/init.d/samba install -d -m0755 /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/usr/sbin install -m0755 /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/samba-3.6.25/source3/bin/samba_multicall /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/usr/sbin ln -sf samba_multicall /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/usr/sbin/smbd ln -sf samba_multicall /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/usr/sbin/nmbd ln -sf samba_multicall /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/usr/sbin/smbpasswd SHELL= /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/host/bin/flock /home/wuyilun/Desktop/CAMEOS/platform/tmp/.root-copy.flock -c 'cp -fpR /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server/. /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/' rm -rf /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-samba36-server touch /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/stamp/.samba36-server_installed if [ -f /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/samba.default.install.clean ]; then rm -f /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/samba.default.install /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/samba.default.install.clean; fi; echo "samba36-server" >> /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/samba.default.install make[4]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform/iplatform/opensource/samba' make[4]: Entering directory '/home/wuyilun/Desktop/CAMEOS/platform/iplatform/private/sensor-proxy' true touch /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/.prepared_67e9c7611de15f3655f2a55329edd243 rm -f /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/stamp/.sensor-proxy_installed (cd /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/./; if [ -x ./configure ]; then find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/ -name config.guess | xargs -r chmod u+w; find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/ -name config.guess | xargs -r -n1 cp --remove-destination /home/wuyilun/Desktop/CAMEOS/platform/scripts/config.guess; find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/ -name config.sub | xargs -r chmod u+w; find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/ -name config.sub | xargs -r -n1 cp --remove-destination /home/wuyilun/Desktop/CAMEOS/platform/scripts/config.sub; AR="arm-sigmastar-linux-uclibcgnueabihf-ar" AS="ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation" LD=arm-sigmastar-linux-uclibcgnueabihf-ld NM="arm-sigmastar-linux-uclibcgnueabihf-nm" CC="ccache_cc" GCC="ccache_cc" CXX="ccache_cxx" RANLIB="arm-sigmastar-linux-uclibcgnueabihf-ranlib" STRIP=arm-sigmastar-linux-uclibcgnueabihf-strip OBJCOPY=arm-sigmastar-linux-uclibcgnueabihf-objcopy OBJDUMP=arm-sigmastar-linux-uclibcgnueabihf-objdump SIZE=arm-sigmastar-linux-uclibcgnueabihf-size CFLAGS="-O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation " CXXFLAGS="-O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation " CPPFLAGS="-I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include " LDFLAGS=" -L/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/lib -Wl,-rpath-link,/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/lib " ./configure --target=arm-sigmastar-linux-uclibcgnueabihf --host=arm-sigmastar-linux-uclibcgnueabihf --build=x86_64-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info ; fi; ) rm -f /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/.configured_* touch /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/.configured_yyyyyyy git -C /home/wuyilun/Desktop/CAMEOS/platform/iplatform/private/sensor-proxy/src checkout iot_release fatal: cannot change to '/home/wuyilun/Desktop/CAMEOS/platform/iplatform/private/sensor-proxy/src': No such file or directory make[4]: *** [Makefile:51: /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/sensor-proxy-1.0/.built] Error 128 make[4]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform/iplatform/private/sensor-proxy' make[3]: *** [package/Makefile:228: package/feeds/iplatform/sensor-proxy/compile] Error 2 make[3]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform' make[2]: *** [package/Makefile:224: /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/stamp/.package_compile] Error 2 make[2]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform' make[1]: *** [/home/wuyilun/Desktop/CAMEOS/platform/include/toplevel.mk:184: world] Error 2 make[1]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform' make: *** [Makefile:104: iplatform_world] Error 2
10-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值