详解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服务,发现问题解决了。
注:这次问题虽小,也比较快解决了,告诫自己!在捣鼓一些应用服务的前,要先充分了解和熟悉这些应用服务的资料配置等,切莫贪快,否则,出现了问题,自己都不知道从何排查。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
此处为完整stacktrace StackTrace:org.apache.jasper.servlet.jspServletWrapper.handleJSPException(jspServletWrapper.java:568)org.apache.jasper.servlet.jspServlet.service(jspServletWrapper.service(jspServletWr
问题内容: 我想知道如何创建一个jar文件,该文件保留其内容的文件权限。 我将源文件和可执行文件打包在一个jar文件中,该文件将在使用前提取。人们应该能够通过运行批处理/ shell脚本文件立即运行示例和演示。然后,他们应该能够修改源代码并重新编译所有内容。 我正在努力使使用它的人过上轻松的生活,其中包括Java和编程的新手,他们可能正在Linux / Unix上工作。 我可以访问运行Window
本文向大家介绍详解Docker创建php开发环境遇到的权限问题解决方案,包括了详解Docker创建php开发环境遇到的权限问题解决方案的使用技巧和注意事项,需要的朋友参考一下 最近我将公司的开发,和测试环境都运行到docker 上面,因为开发,测试基本都是装代码拉到本址,然后,再装目录,挂载到镜像目录中如:我用的是docker-compose 上面的 jackluo/php-fpm:5.6.3 这
本文向大家介绍Node.js的文件权限及读写flag详解,包括了Node.js的文件权限及读写flag详解的使用技巧和注意事项,需要的朋友参考一下 一、文件权限的数字类型 用数字来代表各个权限,各权限的分数对照表如下: r: 4 w: 2 x: 1 文件的基本权限有9个,分别是owner、group、others三种身份各有自己的read、write、execute权
问题内容: 我正在使用Amazon EC2托管通过git部署到服务器的网站。之前,我在同一类型的EC2 Ubuntu Linux Server实例上使用了本教程,并且运行良好。但是,当我尝试推送到服务器时,收到以下错误跟踪: 教程:http://toroid.org/ams/git- website-howto 跟踪: 目前,我的存储库中只有一个文件,即。 错误跟踪显示拒绝创建文件的权限。请您告诉
试图通过Google Drive的API V3向一个文件添加权限,我遇到了下面的错误。我希望允许来自我的站点MTA.IO的请求能够读取该文件。这个错误似乎来自于我在请求正文中传递的域。例如,example.com工作正常,权限被授予。我是否需要将我的域列入白名单以便授予它对该文件的权限? 作品: 我正在使用API站点上的try it特性。
本文向大家介绍关于linux权限s权限和t权限详解,包括了关于linux权限s权限和t权限详解的使用技巧和注意事项,需要的朋友参考一下 常用权限 linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人 这些身份对于文档常用的有下面权限: r:读权限,用户可以读取文档的内容,如用cat,more查看 w:写权限,用户可以编辑文档 x:该目录具有可以被系统执行的权限 其他权限 除了读
问题内容: 当我尝试使用apache commons ftpClient和以下代码上传简单的文本文件时: 在FTP服务器的根目录中创建了一个文件,但该文件为空。怎么了?我已经尝试在上传PDF文件时将ftp模式更改为BINARY。但文件的大小也为0。 我也只想上传一堆txt文件,所以默认的ascii模式应该可以,对吧? 问题答案: 好的,看来这是我的防火墙的探针。当我停用防火墙时,文件将毫无问题地写