我刚刚尝试使用终端中的“转换”命令将几张不同的图像转换为 PDF 文件,但是当我这样做时,它返回:
convert.im6: Unable to open image 'xxx.pdf': Permission denied @ error/blob.c/OpenBlob/2638
其中 'xxx.pdf' 代表我输出的 PDF 文件名。当然,如果我以 root 身份执行此操作 —— 也就是说sudo convert
—— 操作会顺利完成。所以我的问题是,因为我知道你们中的一些人可能会说我是个白痴,没有考虑过做这sudo
件事:为什么这个convert
命令只对 root 可用,而不是普通用户可用?我有什么办法可以改变这种情况吗?
答案1
您的建议不正确。转换适用于所有用户。
如果你正在转换进入PDF 并且您看到Unable to open image 'xxx.pdf'
,程序已尝试打开xxx.pdf
以进行写入,但被内核拒绝,因为当前用户无法写入该文件。有几个原因:
当前
$USER
无法写入当前目录。尝试touch testfile
,如果失败,请使用 查看目录权限stat .
。要修复,请转到您要写入的目录能写入,更改目录的权限以允许 $USER 写入或更改您的用户(例如将其添加到正确的组)以允许其写入。除此之外,还有各种 ACL 选项,但最有可能的是,您只是处于根控制的目录中,在这种情况下,只需转到其他地方即可。
已存在一个名为 的文件
xxx.pdf
,该文件归其他人所有,且$USER
没有写入权限。您可以sudo chown $USER: xxx.pdf
(这:
不是拼写错误)将其删除并从您的 中生成新版本$USER
。
这两种情况可能同时成立。