非root用户导入setup_logger模块遇ModuleNotFoundError的原因咨询
报错原因解析
/root/目录的默认权限限制
Linux系统中,/root/是root用户的专属家目录,默认权限为drwx------(仅root用户拥有读、写、执行权限)。即便你修改了setup_logger.py及其所在子目录的所有权为dummyUser,dummyUser依然没有进入/root/目录的权限,无法访问目录内的任何文件,自然找不到要导入的模块。Python模块搜索路径的差异
root用户执行Python时,其模块搜索路径(可通过import sys; print(sys.path)查看)会包含自身的家目录/root/,因此能直接找到该模块。而dummyUser的模块搜索路径中默认不包含/root/,Python无法在已知路径里定位到setup_logger.py,从而抛出ModuleNotFoundError。目录权限的层级影响
即便你修改了目标文件和子目录的所有权,若上层目录(比如/root/本身)的权限未开放给dummyUser,用户无法遍历到目标文件所在路径,文件权限设置再正确也无法生效。
内容的提问来源于stack exchange,提问作者JayantSeth
相关产品推荐
相关产品推荐

