You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行Bash命令写入文件时遭遇Permission denied错误求助

执行Bash命令写入文件时遭遇Permission denied错误求助

Hey there, let's sort out this permission problem step by step!

问题原因

/usr/bin是系统核心目录,默认只有root用户或者拥有sudo权限的用户才能在里面写入文件。你用普通用户身份直接执行写入命令,自然会因为权限不足被拒绝。

解决方案

1. 用sudo提升权限执行写入命令

在你的命令前加上sudo,以root权限运行就能顺利把脚本写入/usr/bin了:

sudo printf '#!/bin/bash\nxvfb-run -a --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf -q $*' > /usr/bin/newwkhtmltopdf.sh

执行时会要求你输入当前用户的密码(只要你的账号在sudo用户组里,Ubuntu默认管理员账号都满足)。

2. 给脚本添加可执行权限

写完脚本后别忘了给它加上执行权限,不然没法直接运行:

sudo chmod +x /usr/bin/newwkhtmltopdf.sh

额外建议(更安全的替代方案)

如果不是必须要把脚本放在系统目录里,其实更推荐放在用户专属的~/bin目录下,这样不用sudo权限,也不会改动系统文件:

  1. 先创建~/bin目录(如果还没有的话):
    mkdir -p ~/bin
    
  2. 把脚本写入这个目录:
    printf '#!/bin/bash\nxvfb-run -a --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf -q $*' > ~/bin/newwkhtmltopdf.sh
    
  3. 添加执行权限:
    chmod +x ~/bin/newwkhtmltopdf.sh
    

Ubuntu默认会把~/bin加入环境变量PATH,之后你在终端任何位置直接输入脚本名称就能运行它。

备注:内容来源于stack exchange,提问作者Koji_422

火山引擎 最新活动