使用 sudo 以超级用户身份运行自定义命令?

莎拉·萨博

我已经阅读了一些帖子,例如是否有放置自定义 Linux 脚本的标准位置?,我应该把我的 bash 脚本放在哪里,但我仍然收到一个错误,我的脚本没有在 bash 中找到。

我已经把我的脚本(命名Wandering_Echo)在/usr/local/Custom_Programs和符号链接成/bin/usr/local/bin/usr/local/sbin,但是当我尝试运行sudo Wandering_Echo,我得到这个错误:

sarah@LesserArk:/usr/local/Custom_Programs$ sudo Wandering_Echo ?
sudo: Wandering_Echo: command not found

不确定我做错了什么,因为它在超级用户 bin 目录中。

Wandering_Echo 使用 BTRFS 执行一些低级文件系统操作,因此它需要 root 才能运行。编辑 0: Wandering_Echo 确实以普通用户身份运行,而不是以终端的超级用户身份运行。

编辑 1:

sarah@LesserArk:/usr/local/Custom_Programs$ ls -l /usr/local/bin/Wandering_Echo /usr/local/Custom_Programs/Wandering_Echo 
lrwxrwxrwx 1 root root 14 Aug 14 15:22 /usr/local/bin/Wandering_Echo -> Wandering_Echo
-rw-r--r-- 1 root root 96 Aug 14 13:09 /usr/local/Custom_Programs/Wandering_Echo

&

sarah@LesserArk:~$ sudo bash -c 'echo $PATH'
[sudo] password for sarah: 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
弗洛里安·迪施

有两个问题:

1.

lrwxrwxrwx 1 root root 14 Aug 14 15:22 /usr/local/bin/Wandering_Echo -> Wandering_Echo

如果您访问符号链接,则其目标值将作为相对于符号链接的父文件夹的路径(如果以 开头,则作为绝对路径/)。所以这个符号链接不是指向/usr/local/Custom_Programs/Wandering_Echo而是指向自身,这不是那么有用。删除它并使用

sudo ln -s /usr/local/Custom_Programs/Wandering_Echo /usr/local/bin/Wandering_Echo

正确创建它。也检查其他符号链接。

2.

-rw-r--r-- 1 root root 96 Aug 14 13:09 /usr/local/Custom_Programs/Wandering_Echo

正如您在评论中已经写的那样,此处缺少执行标志。

sudo chmod u+x /usr/local/Custom_Programs/Wandering_Echo

使其仅对 root 可执行。替换u+xa+x,以使其可执行于所有用户。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取使用sudo运行的命令的pid

在bash shell中使用sudo运行命令

无法使用sudo以其他用户身份执行命令

从图形Python程序使用sudo运行命令

Ansible:以其他用户身份运行命令,但不能使用sudo

如何使用sudo运行任务

以非超级用户身份运行自定义脚本扩展

用户不在sudo列表中,但仍可以使用sudo

如何使用标准用户的sudo?

使用sudo命令替换图形化sudo提示

我的应用程序以sudo身份运行,如何使用用户的凭据将其设为git pull?

使用sudo运行bash脚本,以普通用户身份使用某些命令

使用sudo用户使用ssh执行远程命令时出错

使用sudo运行自定义脚本-找不到命令

使用sudo运行命令的别名

sudo组中的用户不能使用sudo命令

以root身份运行select shell命令而不给用户sudo权限?

如何使超级用户权限比使用sudo持续更长的时间?

使用sudo执行命令并使用sudo执行Bash脚本

使用Vim运行自定义命令

使用sudo运行命令时连接到SSH身份验证代理

使用sudo或直接以超级用户身份运行命令之间的不同行为-PATH相同

如何找出是否使用bash脚本以root / sudo身份运行脚本/命令

尝试使用 Sudo 用户复制

使用 sudo 执行命令与以 root 用户身份执行命令有什么区别?

不使用 sudo 运行 -E

如何使用超级用户权限或 root 权限在 Visual Studio Code 中启动 python?(即使用 sudo 命令)

如何使用 sudo 命令运行 cron 作业

如何确定是否使用 bash 脚本以 root/sudo 身份运行脚本/命令