位置: 编程技术 - 正文

详解Linux系统中的文件名和文件种类以及文件权限(linux系统讲解)

编辑:rootadmin

推荐整理分享详解Linux系统中的文件名和文件种类以及文件权限(linux系统讲解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux 详解,简介linux系统中的10个常用命令及功能,linux 的ll,linux中!,linux系统的,linux中!,linux系统的,linux中!,内容如对您有帮助,希望把文章链接给更多的朋友!

Linux文件种类与副文件名

一直强调一个概念,那就是:任何装置在Linux底下都是文件, 不仅如此,连资料沟通的介面也有专属的文件在负责~所以,你会?解到,Linux的文件种类真的很多~ 除了前面提到的一般文件(-)与目录文件(d)之外,还有哪些种类的文件呢?

* 文件种类:

我们在刚刚提到使用‘ls -l’观察到第一栏那十个字元中,第一个字元为文件的类型。 除了常见的一般文件(-)与目录文件(d)之外,还有哪些种类的文件类型呢?

* 正规文件(regular file ): 就是一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字元为 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的内容,又大略可以分为:

o 纯文字文件(ASCII):这是Linux系统中最多的一种文件类型?? 称为纯文字文件是因为内容为我们人类可以直接读到的资料,例如数字、字母等等。 几乎只要我们可以用来做为设定的文件都属于这一种文件类型。 举例来说,你可以下达‘ cat ~/.bashrc ’就可以看到该文件的内容。 (cat 是将一个文件内容读出来的指令)

o 二进位文件(binary):还记得我们在‘ 第零章、计算机概论 ’里面的软体程式的运作中提过, 我们的系统其实仅认识且可以执行二进位文件(binary file)吧?没错~ 你的Linux当中的可执行文件(scripts, 文字型批次文件不算)就是这种格式的啦~ 举例来说,刚刚下达的指令cat就是一个binary file。

o 资料格式文件(data): 有些程式在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为资料文件 (data file)。举例来说,我们的Linux在使用者登入时,都会将登录的资料记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于一种特殊格式的文件。?乎?

* 目录(directory): 就是目录???谝桓鍪粜晕 [ d ],例如 [drwxrwxrwx]。

* 连结文件(link): 就是类似Windows系统底下的捷径啦! 第一个属性为 [ l ](英文L的小写),例如 [lrwxrwxrwx] ;

* 设备与装置文件(device): 与系统周边及储存等相关的一些文件, 通常都集中在/dev这个目录之下!通常又分为两种:

o 区块(block)设备文件 :就是一些储存资料, 以提供系统随机存取的周边设备,举例来说,硬碟与软碟等就是啦! 你可以随机的在硬碟的不同区块读写,这种装置就是区块装置??∧憧梢宰孕胁橐幌?dev/sda看看, 会发现第一个属性为[ b ]喔!

o 字元(character)设备文件:亦即是一些序列埠的周边设备, 例如键盘、滑鼠等等!这些设备的特色就是‘一次性读取’的,不能够截断输出。 举例来说,你不可能让滑鼠‘跳到’另一个画面,而是‘滑动’到另一个地方啊!第一个属性为 [ c ]。

* 资料接口文件(sockets): 既然被称为资料接口文件, 想当然尔,这种类型的文件通常被用在网路上的资料承接了。我们可以启动一个程式来监听用户端的要求, 而用户端就可以透过这个socket来进行资料的沟通了。第一个属性为 [ s ], 最常在/var/run这个目录中看到这种文件类型了。

* 资料输送文件(FIFO, pipe): FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。 FIFO是first-in-first-out的缩写。第一个属性为[p] 。

除了设备文件是我们系统中很重要的文件,最好不要随意修改之外(通常他也不会让你修改的啦!), 另一个比较有趣的文件就是连结文件。如果你常常将应用程式捉到桌面来的话,你就应该知道在 Windows底下有所谓的‘捷径’。同样的,你可以将 linux下的连结文件简单的视为一个文件或目录的捷径。 至于socket与FIFO文件比较难理解,因为这两个咚咚与程序(process)比较有关系, 这个等到未来你?解process之后,再回来查阅吧!此外, 你也可以透过man fifo及man socket来查阅系统上的说明!

* Linux文件副文件名:

基本上,Linux的文件是没有所谓的‘副文件名’的,我们刚刚就谈过,一个Linux文件能不能被执行,与他的第一栏的十个属性有关, 与文件名根本一点关系也没有。这个观念跟Windows的情况不相同喔!在Windows底下, 能被执行的文件副文件名通常是 .com .exe .bat等等,而在Linux底下,只要你的权限当中具有x的话,例如[ -rwx-r-xr-x ] 即代表这个文件可以被执行喔!

不过,可以被执行跟可以执行成功是不一样的~举例来说,在root家目录下的install.log 是一个纯文字文件,如果经由修改权限成为 -rwxrwxrwx 后,这个文件能够真的执行成功吗? 当然不行~因为他的内容根本就没有可以执行的资料。所以说,这个x代表这个文件具有可执行的能力, 但是能不能执行成功,当然就得要看该文件的内容???/p>

虽然如此,不过我们仍然希望可以藉由副文件名来?解该文件是什么东西,所以, 通常我们还是会以适当的副文件名来表示该文件是什么种类的。底下有数种常用的副文件名:

* *.sh : 批次文件( scripts ),因为批次文件为使用shell写成的,所以副文件名就编成 .sh ???/p>

* *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软体分别为 gunzip, tar 等等的,由于不同的压缩软体,而取其相关的副文件名???/p>

* *.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件?? .html 的文件可使用网页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算后的网页结果呢!

基本上,Linux系统上的文件名真的只是让你?解该文件可能的用途而已, 真正的执行与否仍然需要权限的规范才行!例如虽然有一个文件为可执行文件, 如常见的/bin/ls这个显示文件属性的指令,不过,如果这个文件的权限被修改成无法执行时, 那么ls就变成不能执行???/p>

上述的这种问题最常发生在文件传送的过程中。例如你在网路上下载一个可执行文件,但是偏偏在你的 Linux系统中就是无法执行!呵呵!那么就是可能文件的属性被改变了!不要怀疑,从网路上传送到你的 Linux系统中,文件的属性与权限确实是会被改变的喔!

* Linux文件长度限制:

在Linux底下,使用预设的Ext2/Ext3文件系统时,针对文件的文件名长度限制为:

* 单一文件或目录的最大容许文件名为 个字元; * 包含完整路径名称及目录 (/) 之完整文件名为 个字元。

是相当长的文件名喔!我们希望Linux的文件名称可以一看就知道该文件在干嘛的, 所以文件名通常是很长很长!而用惯了Windows的人可能会受不了,因为文件名称通常真的都很长, 对于用惯Windows而导致打字速度不快的朋友来说,嗯!真的是很困扰.....不过,只得劝你好好的加强打字的训练???/p>

* Linux文件名称的限制:

详解Linux系统中的文件名和文件种类以及文件权限(linux系统讲解)

由于Linux在文字介面下的一些指令操作关系,一般来说,你在设定Linux底下的文件名称时, 最好可以避免一些特殊字元比较好!例如底下这些:

* ? > < ; & ! [ ] | ' " ` ( ) { }

因为这些符号在文字介面下,是有特殊意义的!另外,文件名称的开头为小数点‘.’时, 代表这个文件为‘隐藏文件’喔!同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件文件名的开头以 - 或 + 来命名啊!

目录与文件权限现在我们知道了Linux系统内文件的三种身份(拥有者、群组与其他人),知道每种身份都有三种权限(rwx), 已知道能够使用chown, chgrp, chmod去修改这些权限与属性,当然,利用ls -l去观察文件也没问题。 前两小节也谈到了这些文件权限对于资料安全的重要性。那么,这些文件权限对于一般文件与目录文件有何不同呢? 有大大的不同啊!底下就让鸟哥来说清楚,讲明白!

* 权限对文件的重要性

文件是实际含有资料的地方,包括一般文字文件、资料库内容文件、二进位可执行文件(binary program)等等。 因此,权限对于文件来说,他的意义是这样的:

* r (read):可读取此一文件的实际内容,如读取文字文件的文字内容等;* w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);* x (eXecute):该文件具有可以被系统执行的权限。

那个可读(r)代表读取文件内容是还好?解,那么可执行(x)呢?这里你就必须要小心啦! 因为在Windows底下一个文件是否具有执行的能力是藉由‘ 副文件名 ’来判断的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有‘x’这个权限来决定的!跟文件名是没有绝对的关系的!

至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对‘文件的内容’而言,与文件文件名的存在与否没有关系喔!因为文件记录的是实际的资料嘛!

* 权限对目录的重要性

文件是存放实际资料的所在,那么目录主要是储存啥玩意啊?目录主要的内容在记录文件名清单,文件名与目录有强烈的关连啦! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?

* r (read contents in directory):

表示具有读取目录结构清单的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名资料。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

* w (modify contents of directory):

这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有移动该目录结构清单的权限,也就是底下这些权限:

o 建立新的文件与目录; o 删除已经存在的文件与目录(不论该文件的权限为何!) o 将已存在的文件或目录进行更名; o 搬移该目录内的文件、目录位置。

总之,目录的w权限就与该目录底下的文件名移动有关就对了啦!

* x (access directory):

咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是使用者能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是‘cd’(change directory)???/p>

目录的x权限决定用户是否可以进入该目录。

大致的目录权限概念是这样,底下我们来看几个范例,让你?解一下啥是目录的权限???/p>

例题:有个目录的权限如下所示:复制代码代码如下:drwxr--r-- 3 root root Jun : .ssh系统有个帐号名称为vbird,这个帐号并没有支援root群组,请问vbird对这个目录有何权限?是否可切换到此目录中?答:vbird对此目录仅具有r的权限,因此vbird可以查询此目录下的文件名列表。因为vbird不具有x的权限,因此vbird并不能切换到此目录内!(相当重要的概念!)

上面这个例题中因为vbird具有r的权限,因为是r乍看之下好像就具有可以进入此目录的权限,其实那是错的。 能不能进入某一个目录,只与该目录的x权限有关啦!此外, 工作目录对于指令的执行是非常重要的,如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限。

很多朋友在架设网站的时候都会卡在一些权限的设定上,他们开放目录资料给网际网路的任何人来浏览, 却只开放r的权限,如上面的范例所示那样,那样的结果就是导致网站伺服器软体无法到该目录下读取文件(最多只能看到文件名), 最终用户总是无法正确的查阅到文件的内容(显示权限不足啊!)。要注意:要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给! 为什么w不能随便给,我们来看下一个例子:

例题:假设有个帐号名称为dmtsai,他的家目录在/home/dmtsai/,dmtsai对此目录具有[rwx]的权限。若在此目录下有个名为the_root.data的文件,该文件的权限如下:复制代码代码如下:-rwx------ 1 root root Sep : the_root.data请问dmtsai对此文件的权限为何?可否删除此文件?答:如上所示,由于dmtsai对此文件来说是‘others’的身份,因此这个文件他无法读、无法编辑也无法执行,也就是说,他无法变动这个文件的内容就是了。

但是由于这个文件在他的家目录下,他在此目录下具有rwx的完整权限,因此对于the_root.data这个‘文件名’来说,他是能够‘删除’的!结论就是,dmtsai这个用户能够删除the_root.data这个文件!

还是看不太懂?有听没有懂喔!没关系~我们底下就来设计一个练习, 让你实际玩玩看,应该就能够比较近入状况啦!不过,由于很多指令我们还没有教, 所以底下的指令有的先?解即可,详细的指令用法我们会在后面继续介绍的。

* 先用root的身份建立所需要的文件与目录环境

我们用root的身份在所有人都可以工作的/tmp目录中建立一个名为testing的目录, 该目录的权限为且目录拥有者为root。另外,在testing目录下在建立一个空的文件, 文件名亦为testing。建立目录可用mkdir(make directory),建立空文件可用touch(下一章会说明)来处理。 所以过程如下所示:复制代码代码如下:[root@www ~]# cd /tmp <==切换工作目录到/tmp[root@www tmp]# mkdir testing <==建立新目录[root@www tmp]# chmod testing <==变更权限[root@www tmp]# touch testing/testing <==建立空的文件[root@www tmp]# chmod testing/testing <==变更权限[root@www tmp]# ls -ald testing testing/testingdrwxr--r-- 2 root root Sep : testing-rw------- 1 root root 0 Sep : testing/testing# 仔细看一下,目录的权限是 ,且所属群组与使用者均是 root 喔!# 那么在这样的情况底下,一般身份使用者对这个目录/文件的权限为何?

* 一般用户的读写权限为何?观察中

在上面的例子中,虽然目录是的权限设定,一般用户应该能有 r 的权限, 但这样的权限使用者能做啥事呢?假设鸟哥的系统中含有一个帐号名为 vbird 的, 我们可以透过‘ su - vbird ’这个指令来变换身份喔!看看底下的操作先!复制代码代码如下:[root@www tmp]# su - vbird <==切换身份成为 vbird ???br />[vbird@www ~]$ cd /tmp <==看一下,身份变了喔!提示字元也变成 $ 了![vbird@www tmp]$ ls -l testing/?--------- ? ? ? ? ? testing# 因为具有 r 的权限可以查询文件名。不过权限不足(没有x),所以会有一堆问号。[vbird@www tmp]$ cd testing/-bash: cd: testing/: Permission denied# 因为不具有 x ,所以当然没有进入的权限啦!有没有呼应前面的权限说明啊!</p><p>* 如果该目录属于用户本身,会有什么状况?上面的练习我们知道了只有r确实可以让使用者读取目录的文件名列表,不过详细的资讯却还是读不到的, 同时也不能将该目录变成工作目录(用 cd 进入该目录之意)。那如果我们让该目录变成使用者的, 那么使用者在这个目录底下是否能够删除文件呢?底下的练习做看看:复制代码代码如下:[vbird@www tmp]$ exit <==让 vbird 变回原本的 root 身份喔![root@www tmp]# chown vbird testing <==修改权限,让vbird拥有此目录[root@www tmp]# su - vbird <==再次变成vbird来操作[vbird@www ~]$ cd /tmp/testing <==可以进入目录了呢![vbird@www testing]$ ls -l-rw------- 1 root root 0 Sep : testing <==文件不是vbird的![vbird@www testing]$ rm testing <==尝试杀掉这个文件看看!rm: remove write-protected regular empty file `testing'? y# 竟然可以删除!这样理解了吗?!透过上面这个简单的步骤,你就可以清楚的知道, x 在目录当中是与‘能否进入该目录’有关, 至于那个 w 则具有相当重要的权限,因为他可以让使用者删除、更新、新建文件或目录, 是个很重要的参数啊!这样可以理解了吗?! ^_^

在Linux系统中使用Fish Shell的入门指引 安装以及配置Linux和OSX基本都可以通过源来安装,实在不行就下载源码编译,不难的。Ubuntu的话就是这样:复制代码代码如下:sudoapt-getinstallfish从bash进入

Linux下为不使用SSH的用户提供SFTP服务环境 SFTPsftp是SecureFileTransferProtocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp与ftp有着几乎一样的语法和功能。SFTP为SSH的一

解析Linux系统中bashrc和profile文件的作用区别 使用终端ssh登录Linux操作系统的控制台后,会出现一个提示符号(例如:#或~),在这个提示符号之后可以输入命令,Linux根据输入的命令会做回应,这

标签: linux系统讲解

本文链接地址:https://www.jiuchutong.com/biancheng/353415.html 转载请保留说明!

上一篇:深入解析Linux内核及其相关架构的依赖关系(linux深入理解)

下一篇:在Linux系统中使用Fish Shell的入门指引(在linux操作系统中,/etc/rc.d/init.d)

  • 现金流量表中的现金即为货币资金
  • 金税盘离线开票金额超限怎么处理
  • 零申报小微企业注销有影响吗
  • 进口增值税抵扣信息委托核查函
  • 营改增对电信业的影响及对策
  • 开办费用怎么确定摊销年限及财务处理分析
  • 出口收入没有及时申报怎么处罚
  • 低值易耗品摊销方法
  • 超限量领购发票审批通过后
  • 营改增对资产负债表的影响
  • 继承房产出售时交个人所得税税率是多少
  • 增资印花税增加哪个税目
  • 城建税及教育费附加计提表
  • 资本金结汇资金用途
  • 小规模纳税人自来水税率
  • 再保险的业务种类
  • 银行手续费抵扣税率是多少
  • 公司发手机奖励合法吗
  • 外卖收入增值税怎么算
  • 货款打多了退款怎么做账
  • 未立项进行建设
  • 企业收到贷款贴息会计分录
  • 固定成本变动成本混合成本的分类
  • 企业利润分配的原则
  • 增值税中的视同销售区分为几种情况?
  • 数字证书认证系统
  • php删除用户
  • linux的vi编辑器怎么用
  • SetPoint.exe - SetPoint是什么进程 有什么用
  • 工业企业会计核算的特点
  • 外购产品视同自产产品办理免抵退税的条件有哪几种
  • Docker部署nginx
  • 大沼泽地国家公园位于哪个城市
  • 所得税返还计入什么科目
  • TCN(Temporal Convolutional Network,时间卷积网络)
  • 暂估入库的商品能出库吗
  • 包装费 增值税
  • package.json详解
  • js倒计时函数
  • php教程从入门到精通
  • php页面跳转可以用header
  • 购物赠品的相关法律
  • 收到银行存款利息计入什么科目
  • 电子商业汇票线下清算流程
  • 企业什么时候才能按工龄退休
  • php怎么装
  • 补计提个税分录
  • 报废的机器设备属于什么会计要素
  • SQL2005 provider: 命名管道提供程序 error: 40 无法打开到 SQL Server 的连接
  • mysql安装问题
  • 固定资产处置净收入转入什么账户核算
  • 不抵扣进项税额转出怎么做分录处理
  • 税收完税证明怎么做账
  • 营业税金及附加税率
  • 对于财务的简单理解
  • 管道固定装置
  • 无发票的费用怎么处理
  • 个人向公司账户存现金
  • 留抵税额可以抵欠税吗
  • 制造费用和生产成本影响营业利润吗
  • 长期待摊费用怎么做账
  • raid1 hot spare
  • 复制system
  • solaris安装教程
  • linux系统检测
  • win7升级win10黑屏
  • win8.1技巧
  • win8.1一直开机,无法进入主界面
  • linux或者命令
  • linux操作系统怎么装
  • android程序的基本结构
  • css教程推荐
  • 电脑启动项清理
  • python的字符串处理
  • unity gettype
  • js 右键
  • JavaScript+html5 canvas制作色彩斑斓的正方形效果
  • 如何做好税务党建工作
  • 舟山自贸区税收优惠政策五减五免
  • 个人所得税税率表及速算扣除数
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设