sudo: cd: command not found

事件起因



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

sudo: cd: command not found
  • 1
  • 1

原因


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 用户

转载:http://blog.csdn.net/gatieme/article/details/49106865

时间: 2024-12-02 07:00:50

sudo: cd: command not found的相关文章

linux系统下sudo命令使用方法详解

介绍 sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等.这样不仅减少了root用户的登录和管理的时间,同样也提高了安全性.sudo不是对shell的一个代替,它是面向每个命令的. sudo命令 sudo -K -L -V -h -k -l -vsudo [-HPSb] [-a auth_type] [-c class-] [-p prompt] [-u username#uid] {-e file [...]

Linux系统中的sudo命令使用讲解

  "Sudo" 是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的"权利",让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像restart,reboot,passwd之类的命令,或者编辑一些系统配置文件这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性. sudo是个统管一切的命令.它的字面意思是代表"超级用户才能做!"(super user do!)对Li

linux sudo 命令

"Sudo"是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的"权利",让他们执行一些只有超级用户或其他 特许用户才能完成的任务,比如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab,/etc /samba/smb.conf等.这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性. 一. sudo的特点   sudo扮演的角色注定了它要在安全方面格外谨慎,否

Linux有问必答:如何为sudo命令定义PATH环境变量

Linux有问必答:如何为sudo命令定义PATH环境变量 问题:我安装了一个程序到/usr/local/bin目录下,这个程序需要root权限才能执行,当我用sudo去执行它时,收到"sudo: XXXXX: command not found"的错误提示,不知道为什么/usr/local/bin没有被包含到PATH环境变量下面来,我该如何解决这个问题? 当你使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的.最小化的环境中执行,也就是说,诸如PATH这样的环境变量,

c++的问题-C++实现命令行功能:`ls`,`cd`,`cat`, `add`, `remove`

问题描述 C++实现命令行功能:`ls`,`cd`,`cat`, `add`, `remove` #题目 要求 Browse and modify a JSON data structure with ls,cd,cat, add, remove #实现功能 Let's say we have this address entry data structure in JSON { "entries": { "lilei" : { "age": 2

HowTo Install Redmine in Ubuntu - Redmine

原文:http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_in_Ubuntu Ubuntu 10.04 (and 10.04.1) using Passenger The installation assumes that the web server and database are already in place, so you probably want to install the LAMP stack

[问题解决型]Linux利用tar备份系统

由于装openstack,很多依赖的东西,而设计环境变量等,一旦搞错,重装系统,搞得很麻烦,想办法备份一下系统.进行还原.方法如下: tar -zcvpf /home/full-backup.tar.gz / --exclude=/mnt/ --exclude=/proc/ --exclude=/sys/ 这个命令是把根目录下的所有内容备 tar -zcvpf /home/full-backup.tar.gz / --exclude=/mnt/ --exclude=/proc/ --exclud

Linux命令行工具使用小贴士及技巧(一)

相关内容 如果你刚开始在 Linux 系统中使用命令行工具,那么你应该知道它是 Linux 操作系统中功能最强大和有用的工具之一.学习的难易程度跟你想研究的深度有关.但是,无论你的技术能力水平怎么样,这篇文章中的一些小贴士和技巧都会对你有所帮助. 在本系列的文章中,我们将会讨论一些非常有用的命令行工具使用小技巧,希望你的命令行使用体验更加愉快. 但是在开始下一步之前,我得强调一点,这篇文章中的测试实例都是在 Ubuntu 14.04LTS 系统下测试通过的.我们使用命令行 Shell 版本是 b

Linux 命令行工具使用小贴士及技巧(一)

相关内容 如果你刚开始在 Linux 系统中使用命令行工具,那么你应该知道它是 Linux 操作系统中功能最强大和有用的工具之一.学习的难易程度跟你想研究的深度有关.但是,无论你的技术能力水平怎么样,这篇文章中的一些小贴士和技巧都会对你有所帮助. 在本系列的文章中,我们将会讨论一些非常有用的命令行工具使用小技巧,希望你的命令行使用体验更加愉快. 但是在开始下一步之前,我得强调一点,这篇文章中的测试实例都是在 Ubuntu 14.04LTS 系统下测试通过的.我们使用命令行 Shell 版本是 b