一、问题场景:
一台ftp服务器A,外部网络访问该服务器时需要使用ftp协议,当网络内部访问该服务器时使用共享协议;
A服务器操作系统为CentOS7.5,在该服务器上面部署了proftpdFTP服务向外部用户提供安全访问,同时A服务器中部署了samba服务,向内部用户提供共享服务。
proftpd的安装配置和前一节的配置一样,samba的配置和第一节的有密码访问相同。
问题:用户通过FTP创建的文件权限为755,也就是创建用户有读写权限,和该用户同组用户有只读权限,不同组用户有只读权限,samba通过指定用户访问后,和FTP登录用户不在同一个组内,因此samba用户访问能够读取数据,当时却不能将数据删除,或者剪切,这样就造成了FTP用户创建的文件,服务器内部网络不能有全部的权限。
二、解决办法:
解决问题思路:提升FTP用户创建文件或者文件夹的权限,将权限提升为777,这样samba用户能够直接访问和修改FTP用户创建的文件夹和文件,现在问题就在于怎样修改proftpd软件创建文件夹的默认权限为777,在查找了proftpd的官方文档后,终于找到了线索;
修改proftpd的配置文件,修改如下部分
Umask 000 #这里0表示具有全部权限,这个结果为修改后的结果
修改完成后,重新启动服务,这里想请大神帮帮忙,我这个是源码安装,想将这个服务加入到systemctl的管理中,但是我尝试了好多的办法都没有成功,只能是写了下面的脚本进行启动,有大神知道怎样将源码安装的服务添加到systemctl的管理中,还烦请在留言方法,万分感谢!下面贴出我写的脚本内容,
startproftpd脚本:
#!/bin/bash
/usr/local/proftpd/sbin/proftpd -c /usr/local/proftpd/etc/proftpd.conf
stopproftpd脚本如下:
#!/bin/bash
stopprocess=proftpd
pid=$(ps -fe | grep "$stopprocess" |grep -v grep | awk '{print $2}')
if [ "$pid" != "" ];then
for i in $pid;do
kill -9 $i
done
fi;
好啦,问题基本解决完成,有没有弄懂或者有更好建议的朋友留言哦!