最近有朋友问我,为什么sudo cd 和sudo ll登录命令有如下提示:
sudo: ll: command not found sudo: cd: command not found而运行其他命令,如sudo ls等即可正常运行。简单的来说,可以这样理解,sudo只能执行系统自带命令,而不能执行其他程序所带的命令。如ll、cd等均是shell所带的。sudo 是一种程序,用于提升用户的权限,在linux中输入sodu就是调用这个程序提升权限,shell是一个命令解析器,sudo cd是错误的,因为cd是shell内置的,不是系统里面的,sudo可以运行系统带的命令,但无法用系统中一个软件中的命令。cd是shell的内部命令。所谓shell是一个交互式的应用程序。shell执行外部命令的 时候,是通过fork/exec叉一个子进程,然后执行这个程序。sudo的意思是,以别人的权限叉起一个进程,并运行程序。而cd是内部命令,也就是说,是直接由shell运行的,不叉子进程。你在当前进程里当然不能提升进程的权限(其实也可以,不过得编程的时候写到代码里,然后再编译,而我们的 shell没有这个功能,否则岂不是太危险了?)Linux中date命令的各种实用方法CentOS/RHEL安装setup配置工具相关资讯 Sudo
- Linux下sudo配置和用法 (今 07:51)
- Linux中sudo的用法和sudoers配置详 (08月21日)
- 输错密码?这个 sudo 会“嘲讽”你 (04月16日)
| - CentOS用户权限管理--su与sudo (08月31日)
- CentOS下的sudo相关配置的总结归纳 (06月23日)
- Linux操作系统配置sudo (12/15/2015 21:39:50)
|
本文评论 查看全部评论 (0)