使用者与群组
初次接触 Linux 的朋友大概会觉得很怪异怎么『Linux 有这么多使用者还分什么群组有什么用?』这个『使用者与群组』的功能可是相当健全而好用的一个安全防护呢!怎么说呢?由于 Linux 是个多人多工的系统 ( 已经提过若干次啰! )因此可能常常会有多人同时使用这部主机来进行工作的情况发生为了考虑每个人的隐私权因此这个『档案拥有者』的角色就显的相当的重要了!例如当你将你的email情书转存成档案之后放在您自己的家目录您总不希望被其他人看见自己的情书吧?这个时候你就把该档案设定成『只有档案拥有者就是我才能看与修改这个档案的内容』那么即使其他人知道你有这个相当『有趣』的档案不过由于您有设定适当的权限所以其他人自然也就无法知道该档案的内容啰!
那么群组呢?为何要设定档案还有所属的群组?其实群组最简单的功能之一就是当您在团队开发资源的时候最有用啦!举个例子来说好了假如在我的主机上面有两个团体这第一个团体名称为 testgroup 而他的成员是 test test test 三个第二个团体名称为 treatgoup 他的团员为 treat treat treat这两个团体之间是互相有竞争性质的但是却又要缴交同一份报告然而每组团员又需要同时可以修改自己的团体内任何人所建立的档案且不能让非自己团体以外的人看到自己的档案内容!这个时候怎么办?呵呵!在 Linux 底下可就很简单啦!我可以经由简易的档案权限设定就能限制非自己团队( 亦即是群组啰 )的其他人不能够阅览内容啰!而且亦可以让自己的团队成员可以修改我所建立的档案!同时如果我自己还有私人隐密的文件仍然可以设定成让自己的团队成员也看不到我的档案资料?很方便吧!另外如果 teacher 这个帐号是 testgroup 与 treatgroup 这两个群组的老师他想要同时观察两者的进度因此需要两边的群组都能够进去观看这个时候您可以设定 teacher 这个帐号『同时支援 testgroup 与 treatgroup 这两个群组!』也就是说每个人都可以有多个群组的支援呢!
这样说或许你还不容易理解这个使用者与群组的关系吧?没关系我们可以使用目前『家庭』的观念来进行解说喔!假设有一家人家里只有三兄弟分别是王大毛王二毛与王三毛三个人而这个家庭是登记在王大毛的名下的!所以『王大毛家有三个人分别是王大毛王二毛与王三毛』而且这三个人都有自己的房间并且共同拥有一个客厅喔!
·由于王家三个人各自拥有自己的房间所以王二毛虽然可以进入王三毛的房间但是二毛不能翻三毛的抽屉喔!那样会被三毛 K 的!因为抽屉里面可能有三毛自己私人的东西例如情书啦日记啦等等的这是『私人的空间』所以当然不能让二毛拿啰!
·由于共同拥有客厅所以王家三兄弟可以在客厅打开电视机啦翻阅报纸啦坐在沙发上面发呆啦等等的!反正只要是在客厅的玩意儿三兄弟都可以使用喔!因为大家都是一家人嘛!
这样说来应该有点晓得了喔!那个『王大毛家』就是所谓的『群组』啰至于三兄弟就是分别为三个『使用者』而这三个使用者是在同一个群组里面的喔!而三个使用者虽然在同一群组内但是我们可以设定『权限』好让某些使用者个人的资讯不被群组的所有人查询以保有个人『私人的空间』啦!而设定群组共享则可让大家共同分享喔!
好了那么今天又有个人叫做张小猪他是张小猪家的人与王家没有关系啦!这个时候除非王家认识张小猪然后开门让张小猪进来王家否则张小猪永远没有办法进入王家更不要说进到王三毛的房间啦!不过如果张小猪透过关系认识了三毛并且跟王三毛成为好朋友那么张小猪就可以透过三毛进入王家啦!呵呵!没错!那个张小猪就是所谓的『其他人 Others 』啰!因此我们就可以知道啦在 Linux 里面任何一个档案都具有『User Group 及 Others』三个权限!我们可以将上面的说明以底下的图示来解释
不过这里有个特殊的人物要来介绍的那就是『万能的天神』!这个天神具有无限的神力所以他可以到达任何他想要去的地方呵呵!那个人在 Linux 系统中的身份代号是『 root 』啦!所以要小心喔!那个 root 可是『万能的天神』喔!
无论如何『使用者身份』与该使用者所支援的『群组』概念在 Linux 的世界里面是相当的重要的他可以帮助您让您的多工 Linux 环境变的更容易管理!更详细的『身份与群组』 设定我们将在帐号管理再进行解说底下我们将针对档案系统与档案权限来进行说明
Linux 档案属性
大致了解了 Linux 的使用者与群组之后接着下来我们要来谈一谈那么这个档案的权限要如何针对这些所谓的『使用者』与『群组』来设定该档案的权限呢?这个部分是相当的重要的尤其对于初学者来说因为档案的权限与属性是学习 Linux 的一个相当重要的关卡如果没有这部份的概念那么您将老是听不懂别人在讲什么呢!尤其是当您在您的萤幕前面出现了『Permission deny』的时候不要担心『肯定是权限设定错误』啦!呵呵!好了闲话不多聊赶快来瞧一瞧先
嗯!既然要让你了解 Linux 的档案属性那么有个重要的也是常用的指令就必须要先跟你说啰!那一个?!就是『 ls 』这一个 list 档案的指令啰!在你以 root 的身份登入 Linux 之后下达『ls al 』看看会看到底下的几个咚咚
[root@tsai root]# ls al total drwxrx root root Feb : drwxrxrx root root Feb : rwrr root root Feb : anacondakscfg rw root root Feb : bash_history rwrr root root Jun bash_logout rwrr root root Jul bash_profile rwrr root root Feb : bashrc rwrr root root Jun cshrc drwx root root Feb : gnupg rw root root Feb : mysql_history drwx root root Feb : ssh rwrr root root Jul tcshrc rwrr root root Aug Xresources第一栏二三 四五六七[档案属性][档案数][拥有者][所有者群组][大小][建档日期][档名]
ls 是『list』的意思与在早期的 DOS 年代的 dir 类似功能而参数『al』则表示列出所有的档案(包含隐藏档就是档名前面第一个字元为 的那种档案)如上所示在你第一次以 root 身份登入 Linux 时如果你输入指令后应该有上列的几个东西先解释一下上面七个栏位个别的意思
第一栏代表这个档案的属性这个地方最需要注意了!仔细看的话你应该可以发现这一栏其实共有十个属性
o第一个属性代表这个档案是『目录档案或连结档』
§当为[ d ]则是目录例如上表的第 行
§为[ ]则是档案例如上表的第 行
§若是[ l ]则表示为连结档(link file)
§若是[ b ]则表示为装置档里面的可供储存的周边设备
§若是[ c ]则表示为装置档里面的序列埠设备例如键盘滑鼠
o接下来的属性中三个为一组且均为『rwx』的三个参数的组合其中[ r ]代表可读[ w ]代表可写[ x ]代表可执行
§第一组为『所有人的权限』以第五行为例该档案的所有人可以读写但不可执行
§第二组为『同群组的权限』
§第三组为『其他非本群组的权限』
范例若有一个档案的属性为『rwxrxr』简单的可由下面说明之
[][rwx][rx][r] 为代表这个档名为目录或档案(上面为档案) 为拥有人的权限(上面为可读可写可执行) 为同群组使用者权限(上面为可读可执行) 为其他使用者权限(上面为仅可读)
上面的属性情况代表一个档案这个档案的拥有人可读可写可执行但同群组的人仅可读与执行非同群组的使用者仅可读的意思!
o除此之外需要特别留意的是 x 这个标号!若档名为一个目录的时候例如上表中的 ssh 这个目录
drwx root root Feb : ssh
可以看到这是一个目录而且只有 root 可以读写与执行但是若为底下的样式时请问非 root 的其他人是否可以进入该目录呢?
drwxrr root root Feb : ssh
咦!似乎好象是可以喔!因为有可读[ r ]存在嘛!『错!』答案是非 root 这个帐号的其他使用者均不可进入 ssh 这个目录为什么呢?因为 x 与 目录 的关系相当的重要如果您在该目录底下不能执行任何指令的话那么自然也就无法执行 ls cd 等指令所以啰也就无法进入了因此请特别留意的是如果您想要开放某个目录让一些人进来的话请记得将该目录的 x 属性给开放呦!
o另外你也必须要更加的小心的是在 Windows 底下一个档案是否具有执行的能力是藉由『附档名』来执行的例如exe bat 等等但是在 Linux 底下我们的档案是否能执行则是藉由是否具有 x 这个属性来决定的!所以跟档名是没有绝对的关系的!这