事件起因


今天在aws ubutun上忽然发现的一个问题,执行sudo cd 时出现

sudo: cd: command not found

原因


shell

shell是一个命令解析器

所谓shell是一个交互式的应用程序。

shell执行外部命令的 时候,是通过fork/exec叉一个子进程,然后执行这个程序。

sudo


sudo 是一种程序,用于提升用户的权限,在linux中输入sudo就是调用sudo这个程序提升权限 
sudo的意思是,以别人的权限叉起一个进程,并运行程序。

cd


cd是shell的内部命令。 
也就是说,是直接由shell运行的,不叉子进程。 
你在当前进程里当然不能提升进程的权限(其实也可以,不过得编程的时候写到代码里,然后再编译,而我们的 shell没有这个功能,否则岂不是太危险了?黑客.sh

解决办法


但是有一些目录我们普通用户是没有权限进入该目录的,比如/root 

对目录来说x 可执行权限就是用户拥有进入该目录、复制其中文件的权限

那么我们该怎么办呢, 
一个有限的办法就是为该目录增加当前用户的可执行权限,但是对我们来说这样并不是很安全 
那么还有没有解决办法呢,当然有,Linux下没有什么问题是解决不了的,那就是获取root权限或者文件夹所属用户的权限 
使用su 命令即可获取用户的权限,但是root权限怎么获取呢,sudo已经不行了

那就是sudo su 或者sudo -sH 默认缺省为获取root 用户 

最新文章

  1. 相似度分析,循环读入文件(加入了HanLP,算法第四版的库)
  2. [DBW]大图轮播,可通过两种方法实现
  3. mysql 异步执行 query //@todo
  4. java订电影票系统
  5. 安装 chardet ,出现ImportError: No module named setuptools
  6. 【转】ios app 应用内购买配置完全指南
  7. 免费安卓IOS测试API接口,后续会陆续增加接口
  8. AIX加入能telnet远程连接方法的帐户
  9. Servlet之Response对象
  10. 安装nodeJs静态服务器(NodeJs Express MVC 框架)
  11. Spring Boot使用AOP实现REST接口简易灵活的安全认证
  12. SQL Server 深入解析索引存储(聚集索引)
  13. python学习第6天
  14. JVM 堆参数调优 (四)
  15. Innodb中自增长值的列
  16. error: navicat 连接debian系列系统mysql 10038问题解决方案
  17. docker 下 mysql 集群的搭建
  18. 为iOS项目添加Daily Build
  19. oracle之 12.1.0.1.0 C 在 linux 7 上安装报错处理
  20. Spring Cloud Zuul实现IP访问控制

热门文章

  1. 关于Selenium WebDriver的geckodriver
  2. Android-Could not download kotlin-reflect.jar
  3. 04、SQL 查询当天,本月,本周的记录
  4. [转] Customizing OpenStack RBAC policies
  5. 使用MXNet的NDArray来处理数据
  6. Java与Python比较心得01
  7. ubuntu在终端下复制粘贴的2种方法
  8. Spark基础-scala学习(七、类型参数)
  9. Oracle报错#“ORA-01791: 不是 SELECTed 表达式”解决方法
  10. Hystrix 停止开发。。。Spring Cloud 何去何从?