centos 7 安装 samba
最近想在linux系统下开发C 程序,想用window编辑器写代码,所以在centos 安装在系统下samba ,让window系统挂载centos 夹下系统共享的文件,以便对window就像访问当地磁盘一样,能通过window的编辑器对cenos 7 修改和保存系统下的代码文件。所以整理了centos 7 系统下安装samba最后,附上自动安装的过程samba系统的shell脚本。
分为四部分
- cenots系统安装samba需要注意的点
- centos 安装的步骤
- centos 7 自动安装shell脚本
- 结语
cenots系统安装samba需要注意的点
- centos 需要关闭 selinux,不然window计算机无法正常访问centos 共享文件夹
- samba 如果没有配置相应的权限,比如配置为不可读权限,可以为访问用户配置可读和可写权限,window计算机将无法正常访问
- centos 本质是linux系统,不是root 用户访问文件夹将由权限管理;因此,共享文件夹还需要给予足够的权限,否则将无法window即使计算机不能正常访问,也会报告不够的权限samba配置权限最大化
- 以上都是关于文件权限的问题,window电脑想要访问centos共享文件夹是跨计算机跨设备的访问,需要考虑centos的防火墙的配置以及本地window电脑防火墙配置
- …
centos 安装的步骤
提示:在这里,我们直接通过t通过 yum 安装
- 安装 samba 相关软件包 建议先卸载 smaba 然后安装相关软件samba 相关软件。否则,可能会有一些。 samba 命令不能使用的问题
yum remove -y samba* yum install -y samba*
- 关闭 selinux,我们通过修改配置文件永久关闭 selinux 没有 sed 工具的可以yum 自行安装或通过vi 、vim 修改手动配置文件
sed -i "s/SELINUX=enforcing/SELINUX=disable/g" /etc/selinux/config #或者 vim /etc/selinux/config 将文件中的 "SELINUX=enforcing/" 替换成 “SELINUX=disable”
修改完成后重启centos 使关闭 selinux 生效
shutdown -r now
- 修改 samba 配置 通过修改smaba配置配置文件
vim /etc/samba/smb.conf
打开文件后 在配置文件中添加以下内容: 这里需要注意的是 这里的所有" shared "是你想加的 samba 除了账户名称 “ path = /home/shared/ ”这里的 shared 共享文件夹的名称。 这意味着将军 /home/shared 作为共享文件夹,文件夹可以访问 “shared” 可读、可写的用户权限。
[shared] # 共享文件目录描述 comment = Shared Directories # 共享文件目录 path = /home/shared/ # 是否允许guest访问 public = no # 指定用户管理 admin users = shared # 可访问用户组、用户 valid users = @shared # 是否浏览权限 browseable = yes # 权限是否可写 writable = yes # 设置文件权限 create mask = 0777 directory mask = 0777 force directory mode = 0777 force create mode = 0777
这里附上一张修改后的文件图片,方便没有接触过的朋友理解
- 添加shamba 账户 这里通过命令添加,需要注意的是创建samba在用户之前,必须确保有同名Linux用户,否则samba用户会创造失败 smbpasswd 为samba如果提示命令无法正常执行或执行, yum remove -y samba* 掉再 重新 yum install -y samba*
useradd shared smbpasswd -a shared 手动输入两次密码确认
- centos 防火墙开放 samba 需要使用的端口
systemctl start firewalld.service 一行对应一个命令,不要傻傻地复制过去 firewall-cmd --zone=public --add-port=139/tcp --permanent firewall-cmd --zone=public --add-port=
445/tcp --permanent firewall-cmd --zone
=public --add-port
=
137/udp --permanent firewall-cmd --zone
=public --add-port
=
138/udp --permanent firewall-cmd --reload ystemctl restart firewalld.service
- 添加 samba 共享账户下的 共享目录权限
chown 777 /home/shared/
- 重启 samba 服务
systemctl restart smb nmb
- 添加开机自启动 如果不加入开机自启动,有可能重启之后得手动开启 samba 服务,不忍会出现wndiw无法访问
systemctl enable smb nmb
-
到这里的话,centos 的所有步骤都完成了,接下来就是 window 下访问 centos samba 共享的文件夹。 window 电脑 通过 “Win” + “R” 调出程序款,输入\IP地址\共享文件夹的名称
-
成功访问到了,结束啦!
centos 7 自动安装shell脚本
- 脚本执行到添加 samba账户 时需要手动输入账号密码,
- 若是想创建其他的 samba 账户,将脚本中的变量修改成自己想要的账户就行 sambaUser=自己想要的账户名称
- 脚本没有写死了重启,全部完成之后需要手动重启
- 其它的不废话,脚本注释都有。直接上脚本。
#!/bin/bash
#author:LED_H
#Time:2020.07.10
sambaUser=shared
sambaPath=/etc/samba
#修改samba 配置文件
modifySambaConf()
{
echo -e "[${sambaUser}]" >> ${sambaPath}/smb.conf
echo -e "\t# 共享文件目录描述" >> ${sambaPath}/smb.conf
echo -e "\tcomment = Shared Directories" >> ${sambaPath}/smb.conf
echo -e "\t# 共享文件目录" >> ${sambaPath}/smb.conf
echo -e "\tpath = /home/${sambaUser}/" >> ${sambaPath}/smb.conf
echo -e "\t# 是否允许guest访问" >> ${sambaPath}/smb.conf
echo -e "\tpublic = no" >> ${sambaPath}/smb.conf
echo -e "\t# 指定管理用户" >> ${sambaPath}/smb.conf
echo -e "\tadmin users = ${sambaUser}" >> ${sambaPath}/smb.conf
echo -e "\t# 可访问的用户组、用户" >> ${sambaPath}/smb.conf
echo -e "\tvalid users = @${sambaUser}" >> ${sambaPath}/smb.conf
echo -e "\t# 是否浏览权限" >> ${sambaPath}/smb.conf
echo -e "\tbrowseable = yes" >> ${sambaPath}/smb.conf
echo -e "\t# 是否可写权限" >> ${sambaPath}/smb.conf
echo -e "\twritable = yes" >> ${sambaPath}/smb.conf
echo -e "\t# 文件权限设置" >> ${sambaPath}/smb.conf
echo -e "\tcreate mask = 0777" >> ${sambaPath}/smb.conf
echo -e "\tdirectory mask = 0777" >> ${sambaPath}/smb.conf
echo -e "\tforce directory mode = 0777" >> ${sambaPath}/smb.conf
echo -e "\tforce create mode = 0777" >> ${sambaPath}/smb.conf
}
#安装 ssamba
authInstallSamba()
{
#永久关闭 selinux
sed -i "s/SELINUX=enforcing/SELINUX=disable/g" /etc/selinux/config
#等后面全部弄完之后需要重启才能生效
#
yum remove -y samba*
yum install -y samba*
#备份原配置文件
cp ${sambaPath}/smb.conf ${sambaPath}/smb.conf.bak
#修改配置文件
modifySambaConf
#创建samba用户之前,必须先确保有一个同名的Linux用户,否则samba用户会创建失败
useradd ${sambaUser}
#添加shamba 账户
smbpasswd -a ${sambaUser}
#这里需要手动改输入samba账户的密码
#开启防火墙
systemctl start firewalld.service
#防火墙端口开放
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --zone=public --add-port=137/udp --permanent
firewall-cmd --zone=public --add-port=138/udp --permanent
#防火墙重新加载
firewall-cmd --reload
#重启防火墙(可以不重启)
ystemctl restart firewalld.service
#添加 samba 共享账户下的 共享目录权限
chown 777 /home/${sambaUser}/
#重启
systemctl restart smb nmb
#加入开机自启动
systemctl enable smb nmb
#重启生效
#shutdown -r now
}
#这里开始
authInstallSamba
echo "需要手动重启,才能生效selinux"
结语
有一些错误或者不懂可以评论区留言,一起讨论下