详解ftp创建文件权限问题

发布时间 - 2026-01-11 01:57:04    点击率:

详解ftp创建文件权限问题

一、问题

有一个这样的需求,admin为一个Linux为其FTP应用创建的一个有权限限制的用户,通过admin用户可以进行登录FTP服务,登录FTP服务后,创建文件夹,该文件夹的用户和用户组都是admin,属性为755,即只有admin用户才有写的权限,但是,FTP后台是通过b用户登录linux系统执行程序上传文件到FTP服务器,由于FTP服务器的文件夹都是由admin用户创建的,且属性为755,b用户根本没有写的权限,导致程序上传文件失败。

二、分析

那么解决问题的方法应该很容易,既然admin用户创建的目录默认属性为755,那么只要将默认属性改为775,并将b用户添加到admin所属用户组里面去,问题就解决了。

三、解决

1、因为系统默认的登录用户是b,为了方便测试,需要登录到admin用户,然后创建文件夹看看默认属性是否改变。通过b用户su到admin用户的时候报出了  This account is currently not available.  错误。才想到,当时创建admin用户的时候是用户的shell是禁止登录的,这里为了方便测试,通过如下命令开启shell登录:

  $ sudo usermod -s /bin/bash admin

2、然后修改系统环境变量/etc/profile文件,设置umask为002 (目录默认属性 777-002=775,文件默认属性 666-002= 664),source 文件生效后,切换到admin用户创建文件夹试试:发现目录的默认属性成功改了,变为755了

   drwxrwxr-x 2 admin admin 4.0K Dec 6 22:54 a

3、然后用admin登录FTP,新建一个文件夹看看,发现其权限还是755

4、由于对FTP并不熟悉,开始并没有想到FTP那里去,而是在捣鼓各种Linux用户组和用户权限的设置,尝试都没有用。最后静下来慢慢思考,突然想到,用admin账户登录FTP创建的文件属性一直是755,这里登录的只是FTP应用,没有登录到shell,所以才会不受Linux环境变量中umask的影响,而修改umask后的admin登录shell后创建的文件属性是775,这里登录到了shell,是根据umask的值没有问题。既然发现了问题,那么想到FTP应该也会有类似Linux  umask的设置才对,于是找到了FTP的配置文件,果然发现了如下的参数:

5、修改FTP的Umask的值为002,重启FTP服务,发现问题解决了。

注:这次问题虽小,也比较快解决了,告诫自己!在捣鼓一些应用服务的前,要先充分了解和熟悉这些应用服务的资料配置等,切莫贪快,否则,出现了问题,自己都不知道从何排查。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# ftp创建文件权限问题  # ftp  # 文件创建  # php使用curl实现ftp文件下载功能  # java实现ftp文件上传下载功能  # 使用Linux shell脚本实现FTP定时执行批量下载指定文件  # FtpHelper实现ftp服务器文件读写操作(C#)  # java实现sftp客户端上传文件以及文件夹的功能代码  # Java实现FTP文件与文件夹的上传和下载  # linux中关于ftp查看不到文件列表的问题详解  # 解决了  # 上传文件  # 都是  # 发现了  # 是在  # 会有  # 都不  # 出了  # 是由  # 都没  # 才会  # 很容易  # 希望能  # 不受  # 才有  # 并将  # 为其  # 解决问题  # 要将  # 要先 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  JavaScript如何实现倒计时_时间函数如何精确控制  C#如何调用原生C++ COM对象详解  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Android Socket接口实现即时通讯实例代码  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  如何为不同团队 ID 动态生成多个“认领值班”按钮  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel如何实现多对多模型关联?(Eloquent教程)  香港服务器如何优化才能显著提升网站加载速度?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel怎么使用artisan命令缓存配置和视图  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  如何快速登录WAP自助建站平台?  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  node.js报错:Cannot find module 'ejs'的解决办法  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel Session怎么存储_Laravel Session驱动配置详解  高防服务器:AI智能防御DDoS攻击与数据安全保障  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  Laravel如何升级到最新版本?(升级指南和步骤)  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  高端建站如何打造兼具美学与转化的品牌官网?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  装修招标网站设计制作流程,装修招标流程?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  高性价比服务器租赁——企业级配置与24小时运维服务  打造顶配客厅影院,这份100寸电视推荐名单请查收