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/
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脚本
Tips
- 脚本执行到添加 samba账户 时需要手动输入账号密码,
- 若是想创建其他的 samba 账户,将脚本中的变量修改成自己想要的账户就行 sambaUser=自己想要的账户名称
- 脚本没有写死了重启,全部完成之后需要手动重启
- 其它的不废话,脚本注释都有。直接上脚本。
sambaUser=shared
sambaPath=/etc/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
}
authInstallSamba()
{
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
useradd ${sambaUser}
smbpasswd -a ${sambaUser}
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
chown 777 /home/${sambaUser}/
systemctl restart smb nmb
systemctl enable smb nmb
}
authInstallSamba
echo "需要手动重启,才能生效selinux"
结语
创作不易,希望有帮助的小伙伴点个赞,加个关注,后面会分享一些C++的知识。
有一些错误或者不懂可以评论区留言,一起讨论下
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)