gpt4 book ai didi

python - 如何使用 sshfs 和 Python 子进程挂载和卸载文件夹?

转载 作者:太空宇宙 更新时间:2023-11-04 05:17:33 26 4
gpt4 key购买 nike

我希望能够从 Python 子进程模块挂载然后卸载调用 sshfs 的目录。这是我用来完成此操作的代码。

import subprocess 
mkdir_command = 'mkdir {}'.format(local_data_directory)
unmount_command = 'umount {}'.format(local_data_directory)
mount_command = 'sshfs -o allow_other -o IdentityFile={} {}@{}:{} {}'.format(
key_file, host_username, host_ip, host_data_directory, local_data_directory)
subprocess.call(mkdir_command, shell=True)
subprocess.call(mount_command, shell=True)
subprocess.call(unmount_command, shell=True)

mkdir 和 mount 命令成功,但是当我尝试卸载目录时出现错误 umount failed: Operation not permitted。我猜这是因为子进程用户对 local_data_directory 的父文件夹没有写权限。当我检查 local_data_directory 的权限时,它说所有者是用户 #1004。这是 Python 子进程的默认用户吗?我想我可以只为该用户提供对所有父目录的写访问权限,但我不想为我的整个主文件夹提供子进程写权限。有没有办法解决这个问题而不这样做?

最佳答案

原来解决方案是使用 fusermount 而不是 mount

import subprocess 
mkdir_command = 'mkdir {}'.format(local_data_directory)
unmount_command = 'fuserumount {}'.format(local_data_directory)
mount_command = 'sshfs -o allow_other -o IdentityFile={} {}@{}:{} {}'.format(
key_file, host_username, host_ip, host_data_directory, local_data_directory)
subprocess.call(mkdir_command, shell=True)
subprocess.call(mount_command, shell=True)
subprocess.call(unmount_command, shell=True)

关于python - 如何使用 sshfs 和 Python 子进程挂载和卸载文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41316632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com