我们在运行Jupyter笔记本的服务器上有多个用户。我们有一个目录“ A”,其中包含几个子目录“ B”,“ C”,“ D”等。并非每个用户都可以访问每个子目录,例如用户“ Foo”只能访问目录“ B”和“ D”,用户“ Bar”只能访问子目录“ C”。 Jupyter通过简单地不向没有访问权限的特定用户显示目录来处理这种情况,而无需进行任何其他设置。但是,在上周将Jupyter更新到最新版本(4.4.0)之后,Jupyter没有在“ A”中显示目录树,而是产生了Traceback错误:
服务器错误:回溯(最近一次调用最近):文件“ /usr/local/lib/python3.5/dist-packages/tornado/web.py”,行1592,在_execute result = yield result File“ / usr / local / lib / python3.5 / dist-packages / tornado / gen.py“,行1133,运行值= future.result()文件” /usr/lib/python3.5/asyncio/futures.py“ ,第274行,结果引发self._exception文件,“ / usr / local / lib / python3.5 / dist-packages / tornado / gen.py”,第326行,在包装器中产生= next(result)文件“ / usr /本地/lib/python3.5/dist-packages/notebook/services/contents/handlers.py“,第112行,位于“获取路径=路径,类型=类型,格式=格式,内容=内容,文件“ / usr / local /lib/python3.5/dist-packages/notebook/services/contents/filemanager.py“,第431行,位于get model = self._dir_model(path,content = content)文件” / usr / local / lib / python3。 5 / dist-packages / notebook / services / contents / filemanager.py“,如果self.should_list(name)而不是is_file_hidden(os_path,stat_res = st),则_dir_model中的行337:文件” / usr / local / lib / python3 .5 / dist-packages /不ebook / utils.py“,第145行,位于is_file_hidden_posix stat_res = os.stat(abs_path)PermissionError:[Errno 13] 权限被拒绝:'/ data / notebook / users / Foo / A / C'
到目前为止,唯一的准解决方案是向用户授予对每个子目录的访问权限,然后它才起作用(Jupyter显示了目录树),但这不是可行的解决方案,因为它存在安全隐患。
我的问题是:导致此错误的原因是什么以及如何解决该错误,以便用户可以再次查看目录树而无需授予他们对某些子目录的其他访问权限?