Linux 小知识翻译 - 「路径设置」
这次聊聊路径的使用,这里的路径是「命令搜索路径」的简称。
在Linux上执行命令的时候,本来是需要命令的所在位置的绝对路径的,就像「/usr/bin/passwd」这样。
但是,对于经常使用的命令,如果每次都要输入绝对路径的话就非常麻烦了。
在Linux的Shell中,执行某个命令时,用户不用输入命令的完整路径,直接输入命令后,系统会在特定的目录中查找这个命令,找到后执行。
这时,设置Shell在哪些目录中搜索命令的步骤就被称为「路径设置」,正确的应该是「命令搜索路径的设置」
为了设置路径,需要修改环境变量「PATH」,每个希望搜索的目录之间用「:」区分开。
设置方法就是用 [[16. 「环境变量」]] 介绍的「export」命令,比如,想把「/usr/sample」这个路径加入到命令搜索路径中去的话,
$ export PATH=$PATH:/usr/sample
在Linux中,当前目录并不在命令搜索路径中,因此,比如想执行当前目录下的「hogehoge.cmd」命令,必须要通过「./hogehoge.cmd」来执行。
虽然有些麻烦,但是把当前目录加入到命令搜索路径中的话,会带来一些安全问题,所以不建议把当前目录加入到「PATH」中。
首先,安全的大原则就是「不要把多余的目录加到命令搜索目录中」。而且,过多的目录加到命令搜索目录中的话,那么如果有2个目录中都有「ps」这个文件,用户输入「ps」的时候,究竟哪个「ps」会被执行呢?
这就会导致混乱。(实际上,会按PATH中定义的目录的顺序来搜索命令的,这2个目录谁在前面,就执行哪个目录中的「ps」。虽然如此,这种情况还是会给用户带来困扰)
刚刚说的如果把当前目录加入到 PATH 中会导致什么后果呢?
极端的情况下,几乎所有的目录都有可能变成当前目录(因为用户有可能进入任何一个目录)。这就导致几乎所有的目录都有可能称为命令搜索路径。
这样的情况下,不仅仅会带来混乱,如果某个目录下被放置了恶意程序,由于这个目录有可能在命令搜索路径中(当用户进入这个目录时),所以用户无意中执行这个恶意程序的机会会很高。
通常,一般用户能够进出哪些目录是被限制的,系统会保证这些目录不在 PATH 中,一旦用户可以进出的这些目录被加入到 PATH 中,那么恶意程序执行时所带来的风险也会大大增加。
命令搜索路径不能为了使用方便而任意指定,首先要确保目录的安全性,然后再考虑是否追加到命令搜索路径中。
Linux 小知识翻译 - 「路径设置」的更多相关文章
- Linux 小知识翻译 - 「环境变量」
这次,谈谈关于「环境变量」的话题. 所谓变量,就是在程序中设置的,相当于在内存中准备的「一个用来存放数据的小箱子」. 即,程序通过变量来保存值,通过变量保存的内容来进行各式各样的计算处理. 「环境变量 ...
- Linux 小知识翻译 - 「端口限制」
上次说了端口号相关的内容,这次聊聊「端口限制」的事. 经常看到关于安全的书籍上会说「不要开放多余的端口」,那么,如何限制端口才好呢? 实际,端口限制的方法大体上分的话有2种. 其一,「通过应用程序来处 ...
- Linux 小知识翻译 - 「邮件服务器」
这次聊聊「邮件服务器」. 邮件服务器上通常会运行2个服务端软件,「SMTP服务器」和「POP服务器或者IMAP服务器」. 这2个东西,也许使用邮件客户端的人立马就明白了.因为设置邮件客户端的时候,需要 ...
- Linux 小知识翻译 - 「Shell 脚本」
这次说说「Shell 脚本」. 根据上回的介绍,Shell就是「作为联系Linux和用户的接口而存在的软件」.在Linux环境中,通过Shell来操作系统很普遍. 这里,考虑到有时候可能想要「多次的进 ...
- Linux 小知识翻译 - 「桌面环境」
这次聊聊桌面环境. 上次聊了 X Window System 相关的内容,虽然令人意外,但X Window System 和桌面环境不是一回事.请大家稍微考虑一下. X Window System 是 ...
- Linux 小知识翻译 - 「架构 续」(arch)
上次,从「计算机的内部构造」的角度解释了架构这个术语.这次,介绍下架构中经常提到的「i386架构」及之后的「i486」,「i586」. 安装Linux的时候,很多人即使不了解但也会经常听到i386架构 ...
- Linux 小知识翻译 - 「动态DNS」(DDNS)
这次聊聊「动态DNS」. DNS上周已经介绍过了,就是提供主机名和IP地址对应关系的结构.「动态DNS」是对主机名和IP地址的对应关系提供动态管理的结构. 以前的DNS没有考虑IP地址变化的情况.但是 ...
- Linux 小知识翻译 - 「DNS服务器」
这次聊聊「DNS服务器」. DNS(Domain Name System)服务器,也被称为域名服务器. 因为使用互联网的时候,必须要指定DNS服务器,所以你一定听过DNS这个名字吧. 那么,这个DNS ...
- Linux 小知识翻译 - 「虚拟化技术」
这次聊聊「虚拟化技术」. 虚拟化技术,有时简称为「虚拟化」,最近经常听人说它.但是却不太清楚它的意思.到底虚拟了什么东西?本来是用来干什么的? 有名的虚拟化软件要数 VMware 和 VirtualB ...
随机推荐
- .NET 线程池编程技术
摘要 深度探索 Microsoft .NET提供的线程池, 揭示什么情况下你需要用线程池以及 .NET框架下的线程池是如何实现的,并告诉你如何去使用线程池. 内容 介绍 .NET中的线程池 线程池中执 ...
- 高可用Hadoop平台-HBase集群搭建
1.概述 今天补充一篇HBase集群的搭建,这个是高可用系列遗漏的一篇博客,今天抽时间补上,今天给大家介绍的主要内容目录如下所示: 基础软件的准备 HBase介绍 HBase集群搭建 单点问题验证 截 ...
- Delphi常用快捷键
delphi是我学编程时的入门语言,用过一年多的时光,个人对它还是挺喜欢的.现在用的少了,一些快捷键和语法也有些遗忘了,这里对delphi的快捷键做个总结,留个纪念.嘿嘿,不知道还有多少人还用着这门语 ...
- Java关键字(一)——instanceof
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: boolean result = obj instanceof Class 其中 obj 为一 ...
- Docker系列之Docker镜像(读书笔记)
一.基本概念 Docker包括三个基本概念镜像.容器.仓库. Docker镜像:就是一个只读的模板.例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或其他应用程序.用 ...
- [转]Angular2 使用管道Pipe以及自定义管道格式数据
本文转自:https://www.pocketdigi.com/20170209/1563.html 管道(Pipe)可以根据开发者的意愿将数据格式化,还可以多个管道串联. 纯管道(Pure Pipe ...
- Ajax提交用FormData()上传文件
1.form声明如下 2.ajax设置如下 var formData = new FormData(document.getElementById("form")); $.ajax ...
- 【代码笔记】Web-ionic-列表
一,效果图. 二,index.html代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- js 中三元运算符的运用
外层为false,逐级向内层判断 $scope.nums=700; $scope.result=($scope.nums>300)?($scope.nums>400)?($scope.nu ...
- ThreadLocal终极源码剖析-一篇足矣!
本文较深入的分析了ThreadLocal和InheritableThreadLocal,从4个方向去分析:源码注释.源码剖析.功能测试.应用场景. 一.ThreadLocal 我们使用ThreadLo ...