1、服务端部署, 在 system1 上执行:
1.1 安装软件包并确保服务开机启动
[root@system1 ~]# yum install samba samba‐client ‐y
[root@system1 ~]# systemctl enable smb.service nmb.service
1.2 设定防火墙
[root@system1 ~]# firewall‐cmd ‐‐permanent ‐‐add‐service=samba
[root@system1 ~]# firewall‐cmd ‐‐reload
1.3编辑配置文件
[root@system1 ~]# vim /etc/samba/smb.conf
(按大写字母G 键来到文件底部,然后按字母o 键在新的一行添加以下配置)
[devops] 客户端访问的共享名
path = /devops 指定共享目录的路径
hosts allow = 172.24.8. 定义可访问这个共享主机
browseable = yes 是否允许所有用户浏览此共享,默认为yes,no为隐藏
writable = no < ‐‐‐‐‐ writ e able 是等价的,设置是否开放共享目录可写的权限,默认不开启
write list = akira 指定用可写用户列表,多用户时,用短号分隔
# read only = no 和writable=no等价
# display charset = UTF-8 编码设置
# unix charset = UTF-8
# create mode = 0777
# force create mode = 0 777
create mode:这个配置定义新创建文件的属性。Samba在新建文件时,会把dos文件的权限映射成对应的unix权限,在映射后所得的权限,会与这个参数所定义的值进行与操作。然后再和下面的force create mode进行或操作,这样就得到最终linux下的文件权限。force create mode相当于此参数所设置的权限位一定会出现在文件属性中;将权限设置成0777时,不同用户创建的文件均可被其他用户读写操作。
# directory mode = 0777
# force directory mode = 0 777
directory mode :这个配置与create mode参数类似,只是它是应用在新创建的目录上。Samba在新建目录时,会把dos-->linux映射后的文件属性,与此参数所定义的值相与,再和force directory mode相或,然后按这个值去设置目录属性;将权限设置成0777时,不同用户创建的文件均可被其他用户读写操作。
# create mask = 0644 在网络上新建文件的初始权限,只有writeable=yes时预设值才有效。
# directory mask = 0755 在网络上新建目录的初始权限,只有writeable=yes时预设值才有效。
# valid users = fred 指定允许访问共享的用户列表,如果为空,表示谁都可访问,多用户时用用短号分隔
# comment = Printer Drivers 共享描述
# public = yes/no public用来指定该共享是否允许guest账户访问。
# guest ok = yes/no 意义同"public"。
1.4 建立用户
[root@system1 ~]# useradd -s /sbin/nologin silene
[root@system1 ~]# useradd -s /sbin/nologin akira
[root@system1 ~]# smbpasswd ‐ a silene
New SMB password: redhat
Retype new SMB password: redhat
Added user silene.
[root@system1 ~]# smbpasswd ‐ a akira
New SMB password: redhat
Retype new SMB password: redhat
Added user akira.
[root@system1 ~]# pdbedit --L *列出smb用戶
注:printf "passwd\npasswd\n" | smbpasswd -a -s akira 一次性配置密码
1.5设定目录并设定selinux
[root@system1 ~]# mkdir /devops
[root@system1 ~]# semanage fcontext ‐ a ‐ t 'samba_share_t' '/devops(/.*)?'
[root@system1 ~]# restorecon ‐Rv /devops
[root@system1 ~]# setfacl ‐ R m u:akira:rwx /devops/
注:-R 递归修改目录及目录所有权限
1.6 重启服务
[root@system1 ~]# systemctl restart smb nmb
2、客户验证,在system2 上执行
2.1安装软件
[root@system2 ~]# yum install cifs ‐ utils ‐y
2.2建立挂载点
[root@system2 ~]# mkdir /mnt/dev
2.3查看共享
[root@system2 ~]# smbclient ‐ L //172.24.8.11/ ‐ U silene
Enter silene's password:
...
Sharename Type Comment
‐‐‐‐‐‐‐‐‐ ‐‐‐‐ ‐‐‐‐‐‐‐
Common Disk
Devops Disk
2.4编辑fstab 增加持久挂载
[root@system2 ~]# vim /etc/fstab
.....在文件最后一行增加以下配置....
//172.24.8.11/devops / mnt/dev cifs defaults,multiuser,username=silene,password=redhat,sec=ntlmssp 0 0
以读写模式临时挂:
mount -t cifs -o username=smbuser,password='hangshu',iocharset=utf8,dir_mode=0777,file_mode=0777 / /172.24.8.11/devops / / mnt/dev
2.5测试
[root@system2 ~]# mount ‐ a
[root@system2 ~]# df ‐h
......
//172.24.8.11/devops 9.8G 3.2G 6.7G 32% /mnt/dev
[root@system2 ~]# su ‐ silene
‐ bash ‐ 4.2$ cd /mnt/dev
‐ bash ‐ 4.2$ cifscreds add 172.24.8.11
Password:
‐ bash ‐ 4.2$ touch testfile
touch: cannot touch 'testfile': Permission denied <‐‐‐‐ 可以读但不能写
‐ bash ‐ 4.2$ exit
[root@system2 ~]# su ‐ akira
‐ bash ‐ 4.2$ cd /mnt/dev
‐ bash ‐ 4.2$ cifscreds add 172.24.8.11
Password:
‐ bash ‐ 4.2$ ls
‐ bash ‐ 4.2$ touch testfile < ‐‐‐ 可以创建文件
‐ bash ‐ 4.2$ ls
testfile
‐ bash ‐ 4.2$ exit