首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改uname命令搜索uname的位置?

如何更改uname命令搜索uname的位置?
EN

Stack Overflow用户
提问于 2021-12-22 02:10:39
回答 3查看 119关注 0票数 1

我需要帮助加载软件,有一个内置的platform_check脚本。我的计划是创建一个名为uname的脚本,它在执行时将打印一个可接受的平台。脚本按我的需要工作,但我不知道如何让uname命令搜索我的自定义uname脚本,而不是/bin/uname默认值。我尝试使用PATH,类似于PATH=~/./PATH_to_uname:$PATH,这是行不通的。我没有根访问权限,所以我不能只在默认位置编辑/创建uname。

当我执行这样的脚本时: exec /目录_ to _ uname /uname和/ -r _ to _uname/uname,我只需要欺骗shell以查找我的自定义uname。

EN

回答 3

Stack Overflow用户

发布于 2021-12-22 02:22:43

您可以尝试使用别名来trick外壳。例如,(使用bash)编辑~/..bashrc并添加alias uname='path/to/uname uname'。执行source ~/.bashrc,命令uname将从别名中获得该命令。如果在执行alias uname='ls -lha'时将其更改为uname并加载(uname命令),它将列出文件/dir。

票数 1
EN

Stack Overflow用户

发布于 2021-12-22 02:27:41

假设您有一个调用uname的平台检查脚本,那么我们将其命名为test.sh:

代码语言:javascript
复制
#!/bin/bash
uname

初始运行如预期一样显示uname:

代码语言:javascript
复制
user@computer:~$ ./test.sh 
Linux

将uname作为bash函数导出到echo您想要用于欺骗的内容:

代码语言:javascript
复制
user@computer:~$ function uname {
> echo "hello"
> }
user@computer:~$ export -f uname
user@computer:~$ ./test.sh 
hello
票数 1
EN

Stack Overflow用户

发布于 2021-12-22 13:04:29

为了知道在命令期间访问/使用哪些文件,可以使用strace命令:

代码语言:javascript
复制
strace -y uname

您将得到大量使用的文件和进程,您可能会看到是否有任何文件和进程可以根据您的需要进行调整。

然而,这是相当危险的(谁知道副作用是什么呢?)因此,我建议您为uname命令创建和使用uname命令。

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

https://stackoverflow.com/questions/70443517

复制
相关文章

相似问题

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