sudo cd提示命令无法找到或无任何提示却不执行的情况

本文深入解析了sudo命令的工作原理及其与cd命令交互时的常见问题。详细解释了为什么sudo不能直接执行cd命令,以及如何通过sudo-s或sudo-i以root用户身份运行shell来解决这一问题。同时,文章还探讨了当root用户名被修改后,如何正确使用sudo切换到新的root用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sudo命令执行过程解析:

用sudo执行某一命令时,是在原进程(parent process)的基础上fork出来一个子进程(child process),这个子进程是以root权限执行的。然后在子进程中,执行你在sudo后面跟的命令。
在子进程中是无法调用涉及到父进程的状态的一些命令的,所以非系统内置命令会被拒绝。这就是为什么会出现command not found的提示。

cd命令解析:

cd属于bash(shell)内置命令,并不属于系统命令
[root@shvpuppet01 inventory]# whatis cd
cd [builtins]        (1)  - bash built-in commands, see bash(1)

问题一:sudo cd时,提示command not found

原因:sudo不能执行非系统命令
解决方法:
    a.sudo -s:以目标用户身份运行shell
    b.sudo -i:以目标用户身份运行登录shell

问题二:sudo cd时,无任何提示却不执行

原因:还是问题一的原因
解决方法:
    a.对要进入的目录加x权限,不要加-R参数,修改后即可进入
    b.按照问题一的解决方法处理

问题三:root的用户名修改之后,如何使用sudo切换到root

原因:
    sudo的使用语法:sudo -u username COMMAND
    当username为root时,-u root可以省略;
    当username不为root时,-u username一定要加上的;
解决方法:
    当root用户名更改时,只需要加上`-u root的新名字`即可

转载于:https://blog.51cto.com/liuzhengwei521/2320365

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值