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 ...
随机推荐
- 从零开始学 Web 之 JavaScript(三)函数
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...
- 可重入锁 & 不可重入锁
可重入锁指同一个线程可以再次获得之前已经获得的锁,避免产生死锁. Java中的可重入锁:synchronized 和 java.util.concurrent.locks.ReentrantLock. ...
- pythonic(fork)
转载 https://wuzhiwei.net/be_pythonic/
- 关于springmvc json交互产生的406错误
产生错误的背景:springmvc使用<mvc:annotation-driven>进行配置,那么只要引入响应的json解析包就可以了.在pom中已经引入了如下: <dependen ...
- 简明awk教程(Simple awk tutorial)
整理翻译.原文地址:http://www.hcs.harvard.edu/~dholland/computers/awk.html 简明awk教程 为什么选awk? awk小巧.快速.简单.awk语言 ...
- 安装searchd
把安装包解压到 D:coreseek 创建表 create table product( id int key auto_increment, title ), content text ); ins ...
- httpd配置文件httpd.conf规则说明和一些基本指令
apache httpd系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 本文主要介绍的是httpd的配置文件,包括一些最基本的指令.配置规 ...
- SQL partition by的用法
今天群里看到一个问题,在这里概述下:查询出不同分类下的最新记录.一看这不是很简单的么,要分类那就用Group By; 要最新记录就用Order By呗.然后在自己的表中试着做出来: 首先呢我把表中的数 ...
- 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。
WebService中发布之后出现这个错误, 解决方法: web.config文件中的 <system.web> 节点下加入:<webServices> <prot ...
- 深入理解RDD原理
首先我们来了解一些Spark的优势:1.每一个作业独立调度,可以把所有的作业做一个图进行调度,各个作业之间相互依赖,在调度过程中一起调度,速度快.2.所有过程都基于内存,所以通常也将Spark称作是基 ...