Bash: 尝试打开文件时出现权限被拒绝的错误

7
我最近决定尝试学习一些bash脚本,作为一个有趣的练习,我决定编写一个脚本,每当运行该脚本时,就会为我打开一个日常笔记文件。
它一直正常工作,直到我退出系统并重新登录后,我收到了一个错误信息:
/usr/local/bin/notes: 第45行:/home/MY_USERNAME/notes/2010-10-01:权限被拒绝 代码 我可能错了,但这显然不像是需要额外权限的事情,对吗?
编辑器设置为nano
文件权限为-rw-rw-r--
脚本权限为-rwxr-xr-x

1
你的$EDITOR设置是什么?文件的权限如何?另外,最好在问题本身中包含代码(在代码块中),这样问题存档更好,一旦pastebin消失就不会变得毫无意义。 - zigdon
所有的东西都需要权限。没有“额外”的权限。您必须执行ls -lls -ld以查看文件的权限。 - S.Lott
你应该更新以包含完整的问题代码。pastbin id不再有效。 - Chris
3个回答

9

使用以下命令检查文件的权限:

ls -l /path/to/your/file

你应该会看到类似以下的内容:
-rw-r--r--

r代表可读,w代表可写,x代表可执行。

第一组是针对你的用户,第二组是针对你的用户组,第三组是针对其他任何人。

所以在我的例子中,我展示的文件对我来说是可读/可写的,对我的用户组和其他用户来说只有可读权限。

使用chmod命令更改权限。

chmod 744 file

这将使文件对您来说具有读/写/执行权限,而对于用户/世界仅具有读取权限。


7

我猜测在

$EDITOR $DAILY_FILENAME 

$EDITOR为空,因此它正在尝试执行不可执行的$DAILY_FILENAME。 可能在测试时手动设置了EDITOR,但没有将其添加到您的.bashrc(或其他)文件中。

使用-x选项来证明它。


是的,我想我没有永久设置编辑器变量,我只是在那个会话中设置了它。谢谢。 - Mike

0
如果我要猜的话,我会建议你检查一下$EDITOR环境变量是否未定义。看起来你的脚本试图执行笔记文件 - 由于这个文件不可执行,所以导致了这个没有帮助的错误消息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接