如何在没有 sudo 或 root 的情况下运行 /usr/local/bin 中的程序?

如何在没有 sudo 或 root 的情况下运行 /usr/local/bin 中的程序?

我在使用 Ubuntu 14.04 LTS。

我安装了 buildozer,结果显示为/usr/local/bin。如果不使用 sudo 或 root,我无法运行它,这可能会导致以后出现问题。现在尝试运行buildozer init会返回,buildozer: command not found除非我使用 root。如何在不使用 root 的情况下使 中的程序/usr/local/bin/可见?

如果不可能的话,我可以将 buildozer 移动到PATH变量中的另一个文件夹并仍能使其正常工作吗?

/usr/local/bin已经在我的PATH变量中了。

移动buildozerbuildozer-remote运行/usr/bin/buildozer init得出:

Traceback (most recent call last):
  File "/usr/bin/buildozer", line 9, in <module>
    load_entry_point('buildozer==0.29', 'console_scripts', 'buildozer')()
  File "/usr/local/lib/python2.7/dist-packages/buildozer/scripts/client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "/usr/local/lib/python2.7/dist-packages/buildozer/__init__.py", line 971, in run_command
    getattr(self, cmd)(*args)
  File "/usr/local/lib/python2.7/dist-packages/buildozer/__init__.py", line 1015, in cmd_init
    copyfile(join(dirname(__file__), 'default.spec'), 'buildozer.spec')
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: 'buildozer.spec'

编辑:我将目录更改为实际执行 Python 工作的位置,并且运行良好。非常感谢!!:)

答案1

用来ls -l给出一个长列表。结果应该如下所示:

drwxr--r-- 10 root root 4096 Jul 25 22:17 usr

这里的字段分别显示文件的访问权限、文件的硬链接数、所有者的用户名、拥有文件的组的名称、文件的大小(以字节为单位)、文件最后修改的日期和时间以及文件的名称。

您感兴趣的是该文件的访问权限以及该文件的用户和组所有者。如果显示“root root”,则您必须具有 root 权限(使用 sudo 命令)才能写入或执行该文件。

您可以使用chmod chownchgrp命令来修改文件的权限。不过,我不建议您让非 root 用户写入或执行 /usr/bin 目录中的文件。这可能会导致系统安全性受损。

感谢@Martin Thornton 修改了错误。

相关内容