【linux私房菜】Linux的文件权限与目录配置


Linux最优秀的地方之一就在于他的多用户多任务环境。而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了。 Linux一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有 read/write/execute 等权限。若管理不当,你的Linux主机将会变的很“不苏湖!

5.1 使用者与群组

每个文件都有相当多的属性与权限,其中最重要的可能就是文件的拥有者的概念了。

  1. 文件拥有者
    这个“使用者与群组”的功能可是相当健全而好用的一个安全防护呢。 由于Linux是个多用户多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个“文件拥有者”的角色就显的相当的重要了!
    例如当你将你的e-mail情书转存成文件之后,放在你自己的主文件夹,你总不希望被其他人看见自己的情书吧? 这个时候,你就把该文件设置成“只有文件拥有者,就是我,才能看与修改这个文件的内容”, 那么即使其他人知道你有这个相当“有趣”的文件,不过由于你有设置适当的权限, 所以其他人自然也就无法知道该文件的内容啰!
  2. 群组
    群组最有用的功能之一,就是当你在团队开发资源的时候啦! 举例来说,假设有两组专题生在我的主机里面,第一个专题组别为projecta,里面的成员有 class1, class2, class3三个;第二个专题组别为projectb,里面的成员有class4, class5, class6。 这两个专题之间是有竞争性质的,但却要缴交同一份报告。每组的组员之间必须要能够互相修改对方的数据, 但是其他组的组员则不能看到本组自己的文件内容,此时该如何是好?
    在Linux下面这样的限制是很简单啦!我可以经由简易的文件权限设置,就能限制非自己团队(亦即是群组啰) 的其他人不能够阅览内容啰!而且亦可以让自己的团队成员可以修改我所创建的文件! 同时,如果我自己还有私人隐密的文件,仍然可以设置成让自己的团队成员也看不到我的文件数据。 很方便吧!
    另外,如果teacher这个帐号是projecta与projectb这两个专题的老师, 他想要同时观察两者的进度,因此需要能够进入这两个群组的权限时,你可以设置teacher这个帐号, “同时支持projecta与projectb这两个群组!”,也就是说:每个帐号都可以有多个群组的支持呢!
    这样说或许你还不容易理解这个使用者与群组的关系吧?没关系,我们可以使用目前“家庭”的观念来进行解说喔! 假设有一家人,家里只有三兄弟,分别是王大毛、王二毛与王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,“王大毛家有三个人,分别是王大毛、王二毛与王三毛”, 而且这三个人都有自己的房间,并且共同拥有一个客厅喔!

使用者的意义:由于王家三人各自拥有自己的房间,所以, 王二毛虽然可以进入王
三毛的房间,但是二毛不能翻三毛的抽屉喔!那样会被三毛K的! 因为抽屉里面可
能有三毛自己私人的东西,例如情书啦,日记啦等等的,这是“私人的空间”,所以当
然不能让二毛拿啰!
群组的概念:由于共同拥有客厅,所以王家三兄弟可以在客厅打开电视机啦、 翻阅
报纸啦、坐在沙发上面发呆啦等等的! 反正,只要是在客厅的玩意儿,三兄弟都可
以使用喔! 因为大家都是一家人嘛!
这样说来应该有点晓得了喔!那个“王大毛家”就是所谓的“群组”啰, 至于三兄弟就是
分别为三个“使用者”,而这三个使用者是在同一个群组里面的喔! 而三个使用者虽
然在同一群组内,但是我们可以设置“权限”, 好让某些使用者个人的信息不被群组
的拥有者查询,以保有个人“私人的空间”啦! 而设置群组共享,则可让大家共同分
享喔!

  1. 其他人
    今天又有个人,叫做张小猪,他是张小猪家的人,与王家没有关系啦! 这个
    时候,除非王家认识张小猪,然后开门让张小猪进来王家,否则张小猪永远没有办法进入王家, 更不要说进到王三毛的房间啦!不过,如果张小猪通过关系认识了三毛,并且跟王三毛成为好朋友, 那么张小猪就可以通过三毛进入王家啦!呵呵!没错!那个张小猪就是所谓的“其他人,Others”啰!

“使用者身份”,与该使用者所支持的“群组”概念,在Linux的世界里面是相当的
重要的, 他可以帮助你让你的多任务Linux环境变的更容易管理!

只要让 Linux 某个帐号加入某个群组,该帐号就可
以使用该群组能够存取的资源! 每个帐号可以加入的群组个数基本上是没有限制的!

5.2Linux文件权限

文件的权限要如何针对这些所谓的“使用者”与“群组”来设置呢?
是当你在你的屏幕前面出现了“Permission deny”的时候,不要担心,“肯定是权限设置错误”啦!

5.2.1 Linux文件属性

由于本章后续的chgrp, chown等指令可能都需要使用root的身份才能够处理,所以这里建议您以root的身份来学习!要注意的是, 我们还是不建议你直接使用 root 登陆系统,建议使用 su - 这个指令来切换身份喔!离开 su - 则使用 exit 回到 dmtsai 的身份即可!

ls是“list”的意思,重点在显示文件的文件名与相关属性。而选项“-al”则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为“ . ”的文件)。如上所示,在你第一次以root身份登陆Linux时, 如果你输入上述指令后,应该有上列的几个东西,先解释一下上面七个字段个别的意思:

5.2.2 文件属性与权限变更

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

5.2.3 目录与文件权限意义

5.2.4 Linux文件种类与扩展名

5.3 Linux目录配置

5.3.1 目录配置依据——FHS

a可分享的不可分享的
不变的/usr(软件放置处)/etc(配置文件)
/opt(第三方协议软件)$12
导管$1

root 在 Linux 中以“帐号”的角度来看指的是“系统管理员!”的身份, 以“目录”的角度来看指的是根目录,就是 /

5.3.2 目录树

在Linux中所有的文件与目录都是由根目录开始的!那是所有目录与文件的源头~
然后再一个一个的分支下来,有点像是树枝状啊~因此,我们也称这种目录配置方式为:“目录树(directory tree)”

主要特性:

  • 目录树的启始点为根目录 (/, root);
  • 每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。
  • 每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

5.3.3 绝对路径与相对路径

除了需要特别注意的FHS目录配置外,在文件名部分我们也要特别注意喔!因为根据文件名
写法的不同,也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径
(relative)。 这两种文件名/路径的写法依据是这样的:

  • 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
  • 相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 …/…/home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法
    而你必须要了解,相对路径是以“你当前所在路径的相对位置”来表示的。举例来说,你目前在
    /home 这个目录下, 如果想要进入 /var/log 这个目录时,可以怎么写呢?
  1. cd /var/log (absolute)
  2. cd …/var/log (relative)
    因为你在 /home 下面,所以要回到上一层 (…/) 之后,才能继续往 /var 来移动的! 特别注
    意这两个特殊的目录:
    . :代表当前的目录,也可以使用 ./ 来表示;
    … :代表上一层目录,也可以 …/ 来代表。
    这个 . 与 … 目录概念是很重要的,你常常会看到 cd … 或 ./command 之类的指令下达方式,
    就是代表上一层与目前所在目录的工作状态喔!很重要的呐!
    例题:如何先进入/var/spool/mail/目录,再进入到/var/spool/cron/目录内?答:由
    于/var/spool/mail与/var/spool/cron是同样在/var/spool/目录中,因此最简单的指令下达方法
    为:
  3. cd /var/spool/mail
  4. cd …/cron
    如此就不需要在由根目录开始写起了。这个相对路径是非常有帮助的!尤其对于某些软件开
    发商来说。 一般来说,软件开发商会将数据放置到/usr/local/里面的各相对目录,你可以参考
    图3.2.1的相对位置。 但如果使用者想要安装到不同目录呢?就得要使用相对路径啰!

网络文件常常提到类似“./run.sh”之类的数据,这个指令的意义为何?答:由于指令的执行需要变量(bash章节才会提到)的支持,若你的可执行文件放置在本目录,并且本目录
并非正规的可执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该可
执行文件。“./”代表“本目录”的意思,所以“./run.sh”代表“执行本目录下, 名为run.sh的文
件”啰!

5.3.4 CentOS的观察

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶雨莳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值