记一次在CentOS遇到的文件操作(删除/修改)权限问题

前言(废话,可不看):

最近在centos上部署一个nodejs后端服务,有些业务是需要进行文件操作(fs)的。然后遇到了一系列问题,一直以来都是用搜索引擎解决了就完了,但昨天遇到了一个权限问题在网上很少能搜到直接答案。然后自己耍了点小聪明解决了,觉得有必要记录下来,也许能帮到其他的小伙伴。也许有大佬有更成熟方案,希望大家可以互相分享吖~(第一次写blog( ̄▽ ̄)")。


相关环境(稍微看看吧):

  • 腾讯云轻量应用服务器CentOS
  • Nodejs+fs
  • 宝塔面板
  • fs.unlik等

问题描述(要看的):

后端的业务常常会需要文件操作,但是在CentOS(我猜应该Linux内核的都差不多吧)环境下文件/目录权限的设置是比较严格的。我遇到的问题是在使用 nodejs的fs模块创建一个 新的文件/目录时赋予文件的 权限等级较低,因而导致后续再对文件进行修改、删除等操作时如果不是以root身份进行操作就会报no permit或者权限不足的提示。作为一个后端项目需要经常变更文件更不可能每次都手动chmod


解决方案(敲黑板):

第一种思路:

直接在命令行切换到root用户,并运行整个node项目(建议用nodemon运行,用过都说好~),这样就不存在文件操作权限不足的问题。

第二种思路:

在node项目里面执改变文件权限的CentOS命令,在node项目里局部或者直接全局安装一个child_process模块,然后在进行文件创建等操作时候执行代码 execSync('chmod -R 777 文件/目录路径'),然后再用root用户跑起整个node项目,双重保险~。

最后附上第二种思路的代码

	const { execSync } = require('child_process');
    execSync(`chmod -R 777 ${staticSourcePath:即文件/目录路径}`)

至于关于CentOs的命令参数的意义各位看官自行查阅资料吧,因为这种时可以直接查到的就不在这里不作赘述,本文目的时帮助解决燃眉之急,更优方案或者技术探讨方面欢迎评论区交流一哈囖

#技术#
全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务