Linux学习(7)文件权限与目录配置

目录

1. 使用者与群组

1,文件拥有者

2,群组概念

3,其他人

Linux 用户身份与群组记录的文件

2.Linux 文件权限概念

Linux的文件属性

第一栏代表这个文件的类型与权限(permission):

第二栏表示有多少档名连结到此节点(i-node):

第三栏表示这个文件(或目录)的『拥有者账号』

第四栏表示这个文件的所属群组

第五栏为这个文件的容量大小,默认单位为bytes;

第六栏为这个文件的建档日期或者是最近的修改日期:

第七栏为这个文件的档名

Linux文件权限的重要性:

如何改变文件属性与权限

改变所属群组, chgrp

改变文件拥有者, chown

改变权限, chmod

数字类型改变文件权限

符号类型改变文件权限 

​编辑 目录与文件之权限意义:

权限对文件的重要性

权限对目录的重要性

r (read contents in directory):

w (modify contents of directory):

x (access directory):

Linux文件种类与扩展名

文件种类:

Linux文件扩展名:

inux文件长度限制:

Linux文件名的限制:


以下内容转载自鸟哥的Linux私房菜

1. 使用者与群组

1,文件拥有者

2,群组概念

『王大毛家』就是所谓的『群组』啰, 至于三兄弟就是分别为三个『使用者』,而这三个使用者是在同一个群组里面的喔! 而三个使用者虽然在同一群组内,但是我们可以设定『权限』, 好让某些用户个人的信息不被群组的拥有者查询,以保有个人『私人的空间』啦! 而设定群组共享,则可让大家共同分享喔!

3,其他人

那个root可是『万能的天神』喔!

  • Linux 用户身份与群组记录的文件

在我们Linux系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。 此外,Linux所有的组名都纪录在/etc/group内!这三个文件可以说是Linux系统里面账号、密码、群组信息的集中地啰! 不要随便删除这三个文件啊! ^_^

怎么解释呢,忘记了点击标题看原文好了

2.Linux 文件权限概念

Linux的文件属性

ls是『list』的意思,重点在显示文件的文件名与相关属性。而选项『-al』则表示列出所有的文件详细的权限与属性 (包含隐藏档,就是文件名第一个字符为『 . 』的文件)。 

  • 第一栏代表这个文件的类型与权限(permission):

一共10个字符

  • 第一个字符代表这个文件是『目录、文件或链接文件等等』:
     
    • 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
    • 当为[ - ]则是文件,例如上表档名为『install.log』那一行;
    • 若是[ l ]则表示为连结档(link file);
    • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
  • 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
     
    • 第一组为『文件拥有者的权限』,以『install.log』那个文件为例, 该文件的拥有者可以读写,但不可执行;
    • 第二组为『同群组的权限』;
    • 第三组为『其他非本群组的权限』。
  • 第二栏表示有多少档名连结到此节点(i-node):

每个文件都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录, 因此每个档名就会连结到一个i-node啰!这个属性记录的,就是有多少不同的档名连结到相同的一个i-node号码去就是了

  • 第三栏表示这个文件(或目录)的『拥有者账号』

  • 第四栏表示这个文件的所属群组

  • 第五栏为这个文件的容量大小,默认单位为bytes;

  • 第六栏为这个文件的建档日期或者是最近的修改日期:

  • 第七栏为这个文件的档名

如果档名之前多一个『 . 』,则代表这个文件为『隐藏档』

  • Linux文件权限的重要性:

系统保护的功能:

团队开发软件或数据共享的功能:

如何改变文件属性与权限

几个常用于群组、拥有者、各种身份的权限之修改的指令,如下所示:

  • chgrp :改变文件所属群组
  • chown :改变文件拥有者
  • chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
  • 改变所属群组, chgrp

要被改变的组名必须要在/etc/group文件内存在才行 

  • 改变文件拥有者, chown

  用户必须是已经存在系统中的账号,也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。

如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!

  • 改变权限, chmod

数字类型改变文件权限

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己read/write/execute权限

符号类型改变文件权限 

 目录与文件之权限意义:

  • 权限对文件的重要性

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

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

可执行(x)呢?因为在Windows底下一个文件是否具有执行的能力是藉由『 扩展名 』来判断的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的!

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

  • 权限对目录的重要性

目录主要的内容在记录文件名列表,文件名与目录有强烈的关连啦

  • r (read contents in directory):


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

  • w (modify contents of directory):


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


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

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

目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录

如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限

要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给

Linux文件种类与扩展名

任何装置在Linux底下都是文件, 不仅如此,连数据沟通的接口也有专属的文件在负责

  • 文件种类:

  • 正规文件(regular file )
    就是一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字符为 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的内容,又大略可以分为:
     
    • 纯文本档(ASCII):这是Linux系统中最多的一种文件类型啰, 称为纯文本档是因为内容为我们人类可以直接读到的数据,例如数字、字母等等。 几乎只要我们可以用来做为设定的文件都属于这一种文件类型。 举例来说,你可以下达『 cat ~/.bashrc 』就可以看到该文件的内容。 (cat 是将一个文件内容读出来的指令)
       
    • 二进制文件(binary):我们的系统其实仅认识且可以执行二进制文件(binary file)吧? 你的Linux当中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的啦~ 举例来说,刚刚下达的指令cat就是一个binary file。
       
    • 数据格式文件(data): 有些程序在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件 (data file)。举例来说,我们的Linux在使用者登入时,都会将登录的数据记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于一种特殊格式的文件。瞭乎?
       
  • 目录(directory):
    就是目录啰~第一个属性为 [ d ],例如 [drwxrwxrwx]。
     
  • 连结档(link)
    就是类似Windows系统底下的快捷方式啦! 第一个属性为 [ l ](英文L的小写),例如 [lrwxrwxrwx] ;
     
  • 设备与装置文件(device)
    与系统周边及储存等相关的一些文件, 通常都集中在/dev这个目录之下!通常又分为两种:
     
    • 区块(block)设备档 :就是一些储存数据, 以提供系统随机存取的接口设备,举例来说,硬盘与软盘等就是啦! 你可以随机的在硬盘的不同区块读写,这种装置就是成组设备啰!你可以自行查一下/dev/sda看看, 会发现第一个属性为[ b ]喔!
       
    • 字符(character)设备文件:亦即是一些串行端口的接口设备, 例如键盘、鼠标等等!这些设备的特色就是『一次性读取』的,不能够截断输出。 举例来说,你不可能让鼠标『跳到』另一个画面,而是『滑动』到另一个地方啊!第一个属性为 [ c ]。
  • 数据接口文件(sockets):
    既然被称为数据接口文件, 想当然尔,这种类型的文件通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行数据的沟通了。第一个属性为 [ s ], 最常在/var/run这个目录中看到这种文件类型了。
     
  • 数据输送文件(FIFO, pipe):
    FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。 FIFO是first-in-first-out的缩写。第一个属性为[p] 。
  • Linux文件扩展名:

Linux没有类似于windows的扩展名,能否执行由十个字符的那个属性决定

只要你的权限当中具有x的话,例如[ -rwx-r-xr-x ] 即代表这个文件可以被执行喔!

我们仍然希望可以藉由扩展名来了解该文件是什么东西,所以, 通常我们还是会以适当的扩展名来表示该文件是什么种类的。

  • *.sh : 脚本或批处理文件 (scripts),因为批处理文件为使用shell写成的,所以扩展名就编成 .sh ;
     
  • *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不同的压缩软件,而取其相关的扩展名啰!
     
  • *.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件啰! .html 的文件可使用网页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算后的网页结果呢!
  • inux文件长度限制:

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

  • 单一文件或目录的最大容许文件名为 255 个字符;
  • 包含完整路径名称及目录 (/) 之完整档名为 4096 个字符。
  • Linux文件名的限制:

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值