前言
太痛恨ubuntu的权限问题了,这里给出三方软件导出(FinalShell、Xftp)或使用scp导出ubuntu文件或目录时遇到的Permission denied问题解决方案。
解决方案
该问题即是权限问题,目标文件或目录的权限不够,无法导出。
因此,需要授权操作。
方案一:递归修改权限
如果你希望目录下的所有文件和子目录都具有读取权限(对于文件)和读取、执行权限(对于目录),则需要递归修改权限,单文件授权即可:
# 目录:递归地给目录及其所有子目录和文件添加读取和执行权限(目录)、读取权限(文件)
chmod -R u+rX,go+rX /your/directory/path
# 单文件:为文件所有者、所属组和其他用户添加读取权限
chmod u+r,g+r,o+r /path/to/your/file
# chmod 644 /path/to/your/file
-R
:表示递归操作,即对指定目录下的所有子目录和文件都执行相同的权限修改操作。u+rX
:为文件和目录的所有者(user)添加读取权限(r
),对于目录添加执行权限(X
,这里的X
表示仅当对象为目录或者已有执行权限时才添加执行权限)。go+rX
:为所属组(group)和其他用户(others)添加读取权限和执行权限(对于目录)。/your/directory/path
:需要替换为你实际要操作的目录路径。
方案二:修改所有者和所属组
如果你当前使用的用户不是文件和目录的所有者,可能需要先修改所有者和所属组。假设你要将目录及其内容的所有者和所属组都改为当前用户,可以使用以下命令:
# 目录:递归地修改目录及其所有子目录和文件的所有者和所属组
chown -R $(whoami):$(whoami) /your/directory/path
# 单文件
chown $(whoami):$(whoami) /path/to/your/file
-R
:递归操作。$(whoami)
:获取当前用户的用户名。
另,给一个scp的导出指令:
scp -r username@IP:/your/directory/path/* ./