sudo命令执行过程解析:
用sudo执行某一命令时,是在原进程(parent process)的基础上fork出来一个子进程(child process),这个子进程是以root权限执行的。然后在子进程中,执行你在sudo后面跟的命令。
在子进程中是无法调用涉及到父进程的状态的一些命令的,所以非系统内置命令会被拒绝。这就是为什么会出现command not found的提示。
cd命令解析:
cd属于bash(shell)内置命令,并不属于系统命令
[[email protected] 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.按照问题一的解决方法处理
原文地址:http://blog.51cto.com/liuzhengwei521/2320365
时间: 2024-10-27 06:01:01