运行.sh脚本时权限被拒绝


70
./geany_run_script.sh: 5: ./geany_run_script.sh: ./Area_circumference: Permission denied

program exited with code: 126。当我尝试执行代码时,总是会出现此问题。有什么解决方案?


1
Permission denied仅当您没有足够的权限访问该文件时,才会发生错误。
Avinash Raj 2014年

我如何更改权限
wkhwilo 2014年

我在哪里做,请给我一个镜头例子
wkhwilo

当我这样做时,它告诉我这个chmod:无法访问`geany_run_script.sh':没有这样的文件或目录。我应该从终端运行它还是什么?
wkhwilo 2014年

Answers:


117

这是说明更改文件权限(和所有权)的链接

如果要跳过这些(当然是现在),则可以在用户主目录中创建目录/文件夹,然后在该目录中处理C程序(或其他程序)。


您可以打开终端(按Ctrl+ Alt+ T)并cd转到目标目录:

cd /path/to/target

授予文件“ the_file_name”执行权限(如果文件系统允许您具有RW权限):

chmod +x the_file_name

我如何更改任何示例的权限
wkhwilo 2014年

问题是我该怎么办?我是最近从Windows切换到Ubuntu的新用户。
wkhwilo 2014年

..您的工作目录是什么。您的源代码文件在哪里?..您对Windows CLI有一些经验吗?
2014年

@ wkhwilo-012,看看是否有帮助,请随时提出更多要求。.– 2014
精确

@ wkhwilo-012,请复制您的可执行文件Area_circumference并粘贴(将粘贴文件路径)以更新您的问题正文...
2014年

20

您只需要授予执行权限。请遵循以下步骤:

    chmod +x filename.sh
    ./filename.sh

当我们制作新的脚本文件时,默认情况下它具有读写权限。但是,如果要执行它们,则应通过上面的显示授予执行权限。


2

通过按CTRL+ ALT+ T或在图形环境(如TerminalxTerm)上使用适当的快捷方式打开终端应用程序。
在屏幕上出现的统一窗口中,您会看到一个闪烁的字符,它是terminal cursor:只需单击窗口并输入文字(通常是命令),然后按ENTER确认输入即可。
在光标之前,总是会从root directory(“ /”)列出您在文件系统上的当前位置,并将您的家(您的个人文件所在的位置)称为“〜”。
要更改目录/文件夹,请使用cd EXISTENTFOLDER(用文件夹名替换EXISTENTFOLDER);如果您感到迷路,只需输入cd一下即可返回您的主目录!
现在让我们解决您的问题

  1. 使用cd命令查找包含源代码的目录。使用TAB来帮助你。如果执行ls -lh,将看到可能遵循的路径和要执行的文件的列表。

  2. 找到被阻止的文件后,执行chmod +x FILENAME(将FILENAME替换为源代码文件的名称)。

  3. 如果您有多个被阻止的文件,请执行chmod +x *以解锁当前目录中的所有文件。切勿chmod + x危险或不安全的文件

  4. 执行./FILENAME YOUREVENTUALARGUMENTS以执行您的可执行文件。

  5. 请记住,如果你的编译程序尝试读取/外你的home目录写你需要执行它root通过使用sudo ./FILENAME YOUREVENTUALARGUMENTS

如果您想获得执行命令的手册man COMMAND(将COMMAND替换为确切的命令名称,Linux区分大小写)。

有些外壳程序具有Open terminal here简化您的生活的命令,请在将来进行搜索,并记住,如果使用得当,命令外壳程序可能是您最好的朋友。:-D

就是这样 如果您需要更多帮助,请在此处评论。
如果我正在帮助您,请按左侧的向上箭头;如果您解决,请将此答案标记为最佳答案。

在Linux和Ubuntu上有很好的经验。


非常感谢。现在我可以在主目录下工作了。您之前要求我进行的操作无法进行。它说我没有允许,但还是要谢谢你的建议。
wkhwilo 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.