首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不适用于rbash用户的awk命令

不适用于rbash用户的awk命令
EN

Ask Ubuntu用户
提问于 2022-11-03 12:08:22
回答 1查看 100关注 0票数 0

我创建了一个rbash用户(受限用户) vega,并为以下命令创建了软链接: awk、ls、free、top等。我试图运行一个脚本,用于资源利用和一些命令使用awk。

如果我通过admin运行以下命令,就能够得到结果:

代码语言:javascript
运行
复制
admin@VD1-21-2-1:/home/vega$ free -m |grep Mem |awk '{print $3/$2 * 100.0}'
16.4827
admin@VD1-21-2-1:/home/vega$ top -b -n 1 -d1 |grep "Cpu(s)"| awk -F' ' '{print $2}'|awk -F' ' '{print $1}'
0.3

当我通过我创建的受限用户执行它们时,我会得到以下错误:

代码语言:javascript
运行
复制
vega@VD1-21-2-1:~$ free -m |grep Mem |awk '{print $3/$2 * 100.0}'
-su: /usr/bin/awk: Permission denied

vega@VD1-21-2-1:~$ top -b -n 1 -d1 |grep "Cpu(s)"| awk -F' ' '{print $2}'|awk -F' ' '{print $1}'
-su: /usr/bin/awk: Permission denied
-su: /usr/bin/awk: Permission denied

我在下面的软链接中使用了以下命令:

代码语言:javascript
运行
复制
sudo ln -s /bin/ls /home/vega/bin 
sudo ln -s /bin/top /home/vega/bin 
sudo ln -s /bin/free /home/vega/bin 
sudo ln -s /bin/awk /home/vega/bin 
sudo ln -s /bin/ssh /home/vega/bin

如何解决此权限被拒绝的错误,并且命令应该给出正确的输出。

回答@terdon:嗨,我试过你的步骤,下面是:

代码语言:javascript
运行
复制
vega@VD1-21-2-1:~$ echo $PATH /home/vega/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
without sudo it is not working: 

admin@VD1-21-2-1:/home/vega$ ln -s /bin/ls /home/vega/bin ln: failed to create symbolic link '/home/vega/bin/ls': Permission denied 

还通过root进行了尝试:

代码语言:javascript
运行
复制
root@VD1-21-2-1:~# ln -s /bin/ls /home/vega/bin ln: failed to create symbolic link '/home/vega/bin/ls': File exists 

简单地说,我想要一个受限的用户访问我所有的命令,没有任何问题?

EN

回答 1

Ask Ubuntu用户

发布于 2022-11-04 08:21:45

awk不在/bin中,它在/usr/bin中。所以你需要的命令是

代码语言:javascript
运行
复制
sudo ln -fs /usr/bin/awk /home/vega/bin

-f标志将强制替换链接,考虑到您已经拥有无效的软链接,您可能需要替换该链接。

您可以使用以下方法检查任何可执行文件的位置:

代码语言:javascript
运行
复制
which awk

这会告诉你它的位置。

请注意ssh也在/usr/bin中。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1438877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档