linux读书摘要--linux文件权限与目录配置

声明:本文章为 《鸟哥的linux私房菜》读书摘要!

    Linux 一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有read/write/execute 等权限。在Linux 系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root 的相关信息,都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow 这个文件下。此外,Linux 所有的组名都在 /etc/group 内! 

了解linux的文件属性
    用 su- 切换到root权限使用ls -al指令就可以。ls 是『list』的意思,重点在显示文件的文件名与相关属性。而选项『 -al』则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为『.』的文件)


关于属性的一个解释说明

    第一个字符代表这个文件是『 目录、 文件或链接文件等等』:
o 当为[ d ]则是目录,例如上表档名为『 .config』的那一行;
o 当为[ - ]则是文件,例如上表档名为『 initial-setup-ks.cdfg』那一行;
o 若是[ l ]则表示为连结档(link file);
o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    档案拥有者的权限:档案所属群组的权限:其它人的权限:以三个为一组,且均为『rwx』 的三个参数的组合。其中, [ r ]代表可读(read)、 [ w ]代表可写(write)、 [ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

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

档名,需要注意如果档名前面有个点,则代表这个文档是隐藏档。

    在 Linux 系统当中,每一个文件都多加了很多的属性进来,尤其是群组的概念,主要是用于数据保护和团队开发软件或数据共享功能。如何改变文件属性与权限
    chgrp:改变文件所属群组
    chown:改变文件拥有者 
    chmod:改变文件的权限, SUID, SGID, SBIT等等的特性

   改变所属群组, chgrp(change group)
    要被改变的组名必须要在/etc/group 文件内存在才行(即是系统承认的群组),否则就会显示错误/etc/group存放的是用户组的信息
    改变文件拥有者, chown (change owner)
    用户必须是已经存在系统中的账号,也就是在/etc/passwd 这个文件中有纪录的用户名才行/etc/passwd存放的是用户账户

    复制行为(cp)会复制执行者的属性与权限。所以这个文件的拥有者与群组需要单独修改

    改变权限, chmod (change mode)
    数字类型改变文件权限  r:4   w:2    x:1

    符号类型改变文件权限
    U=user    g=group    o=others    a=all
 

假如我们要『设定』一个文件的权限成为『 -rwxr-xr-x』

想要增加.bashrc这个文件的每个人均可写入的权限

要拿掉全部人的可执行权限

rwx对于文件的重要性

Read:可读取此一文件的实际内容,如读取文本文件的文字内容等;

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

Write:当你对一个文件具有 w 权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限

rwx对于目录的重要性

read表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。

write建立新的文件与目录;

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

execute用户能否进入该目录成为工作目录

 

    如果你在某目录下不具有 x 的权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的 r 或 w 的权限。要开放目录给任何人浏览时,应该至少也要给予r 及 x 的权限,但 w 权限不可随便给!x 在目录当中是与『能否进入该目录』有关,至于那个 w 则具有相当重要的权限,因为他可以让使用者删除、更新、新建文件或目录,是个很重要的参数


一个小练习

    一个普通用户账号针对针对 /dir1,/dir1/file1, /dir2 这三个档名来说,分别需要『哪些最小的权限』才能达成各项任务。如下表所示

    上表中第二个操作动作和第三个操作动作的file1的权限r是可以去掉的,r权限的意思就是可以读取文件名。但实际上本题中,文件名已经给出了,所以可以不用r。但是需要注意,没有r权限就不能用tab来补全文件名了

 

文件种类与扩展名

   正规文件:文件属性表示为-

包括:纯文本档(ASCII)、二进制文件(binary)、数据格式文件(data)

    目录(directory):文件属性表示为d

    连结档(link):文件属性表示为l

    设备与装置文件(device)

包括:区块(block)设备档:硬盘软盘等、文件属性为b

      字符(character)设备档:串行端口的接口设备,如键盘、鼠标等。文件属性为c 

    资料接口文件(sockets):通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求,而客户端就可以透过这个 socket 来进行数据的沟通了。文件属性为 s

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

 

Linux扩展名

    Linux 的文件是没有所谓的『扩展名』的。一个 Linux 文件能不能被执行,与他的第一栏的十个属性有关,与文件名根本一点关系也没有。

*.sh :脚本或批处理文件 (scripts),因为批处理文件为使用shell 写成的,所以扩展名就编成 .sh 啰;

·*Z、*.tar、*.tar.gz、 *.zip、 *.tgz:经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不同的压缩软件,而取其相关的扩展名啰!
·*.html, *.php:网页相关文件,分别代表HTML 语法与 PHP 语法的网页文件啰! .html 的文件可使用网页浏览器来直接开启,至于 .php 的文件,则可以透过 client 端的浏览器来server 端浏览,以得到运算后的网页结果呢!

 

Linux文件长度限制

    单一文件或目录的最大容许文件名为 255bytes,以一个 ASCII 英文占用一个 bytes 来说,则大约可达 255个字符长度。若是以每个中文字占用 2bytes 来说,最大档名就是大约在 128 个中文字。

 

Linux的目录放置依据(FHS规则)

    根据 FHS 的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下

Linux文件存放的目录结构






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值