Linux 文件权限于目录配置

时间:2014-04-04 15:17:56   收藏:0   阅读:678

用户与用户组

bubuko.com,布布扣

我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已。

不過,這裡有個特殊的人物要來介紹的,那就是『萬能的天神』!這個天神具有無限的神力, 所以他可以到達任何他想要去的地方,呵呵!那個人在Linux系統中的身份代號是『 root 』啦!所以要小心喔!那個root可是『萬能的天神』喔!

無論如何,『使用者身份』,與該使用者所支援的『群組』概念,在Linux的世界裡面是相當的重要的, 他可以幫助你讓你的多工Linux環境變的更容易管理!更詳細的 『身份與群組』 設定,我們將在第十四章、帳號管理再進行解說。 底下我們將針對檔案系統與檔案權限來進行說明。

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

/etc/passwd :所有系统上的账号与一般身份用户

/etc/shadow:个人密码

/etc/group:所有组名

Linux 文件权限概念

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

bubuko.com,布布扣

这个地方最需要注意了!仔细看的话,你应该可以发现这一栏其实共有十个字符:(图2.1.1及图2.1.2内的权限并无关系)

bubuko.com,布布扣
图2.1.2、文件的类型与权限之内容

 

 

例题:
若有一个文件的类型与权限数据为『-rwxr-xr--』,请说明其意义为何?
答:
先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:
[-][rwx][r-x][r--]
 1  234  567  890
  1 为:代表这个文件名为目录或文件,本例中为文件(-);
234为:拥有者的权限,本例中为可读、可写、可执行(rwx);
567为:同群组用户权力,本例中为可读可执行(rx);
890为:其他用户权力,本例中为可读(r)


同时注意到,rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就变成减号(-)就是了。

 

另外,目录与文件的权限意义并不相同,这是因为目录与文件所记录的数据内容不相同所致。 由于目录与文件的权限意义非常的重要,所以鸟哥将他独立到2.3节目录与文件之权限意义中再来谈。

 

与Windows系统不一样的是,在Linux系统当中,每一个文件都多加了很多的属性进来,尤其是群组的概念,这样有什么用途呢? 其实,最大的用途是在『数据安全性』上面的。

可怕吧!因此,在你修改你的linux文件与目录的属性之前,一定要先搞清楚, 什么数据是可变的,什么是不可变的!千万注意啰!接下来我们来处理一下文件属性与权限的变更吧!

 

如何改变文件属性与权限

我们现在知道文件权限对于一个系统的安全重要性了,也知道文件的权限对于使用者与群组的相关性, 那么如何修改一个文件的属性与权限呢?又!有多少文件的权限我们可以修改呢? 其实一个文件的属性与权限有很多!我们先介绍几个常用于群组、拥有者、各种身份的权限之修改的指令,如下所示:

 

改变所属群组, chgrp

改变一个文件的群组真是很简单的,直接以chgrp来改变即可,咦!这个指令就是change group的缩写嘛!这样就很好记了吧! ^_^。不过,请记得,要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误!

假设你是以root的身份登入Linux系统的,那么在你的家目录内有一个install.log的文件, 如何将该文件的群组改变一下呢?假设你已经知道在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中了,此时改变群组成为users与testing分别会有什么现象发生呢?

[root@www ~]# chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
     都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@www ~]# chgrp users install.log
[root@www ~]# ls -l
-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
[root@www ~]# chgrp testing install.log
chgrp: invalid group name `testing‘ <== 发生错误讯息啰~找不到这个群组名~

发现了吗?文件的群组被改成users了,但是要改成testing的时候, 就会发生错误~注意喔!发生错误讯息还是要努力的查一查错误讯息的内容才好! 将他英文翻译成为中文,就知道问题出在哪里了。

 

改变文件拥有者, chown

如何改变一个文件的拥有者呢?很简单呀!既然改变群组是change group,那么改变拥有者就是change owner啰!BINGO!那就是chown这个指令的用途,要注意的是, 用户必须是已经存在系统中的账号,也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。

chown的用途还满多的,他还可以顺便直接修改群组的名称呢!此外,如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!我们来看看语法与范例:

[root@www ~]# chown [-R] 账号名称 文件或目录
[root@www ~]# chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更

范例:将install.log的拥有者改为bin这个账号:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

范例:将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
Tips:
事实上,chown也可以使用『chown user.group file』,亦即在拥有者与群组间加上小数点『.』也行! 不过很多朋友设定账号时,喜欢在账号当中加入小数点(例如vbird.tsai这样的账号格式),这就会造成系统的误判了! 所以我们比较建议使用冒号『:』来隔开拥有者与群组啦!此外,chown也能单纯的修改所属群组呢! 例如『chown .sshd install.log』就是修改群组~看到了吗?就是那个小数点的用途!
bubuko.com,布布扣

知道如何改变文件的群组与拥有者了,那么什么时候要使用chown或chgrp呢?或许你会觉得奇怪吧? 是的,确实有时候需要变更文件的拥有者的,最常见的例子就是在复制文件给你之外的其他人时, 我们使用最简单的cp指令来说明好了:

[root@www ~]# cp 来源文件 目标文件

假设你今天要将.bashrc这个文件拷贝成为.bashrc_test档名,且是要给bin这个人,你可以这样做:

[root@www ~]# cp .bashrc .bashrc_test
[root@www ~]# ls -al .bashrc*
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
-rw-r--r--  1 root root 395 Jul 13 11:31 .bashrc_test  <==新文件的属性没变

由于复制行为(cp)会复制执行者的属性与权限,所以!怎么办?.bashrc_test还是属于root所拥有, 如此一来,即使你将文件拿给bin这个使用者了,那他仍然无法修改的(看属性/权限就知道了吧), 所以你就必须要将这个文件的拥有者与群组修改一下啰!知道如何修改了吧?

 

改变权限, chmod

文件权限的改变使用的是chmod这个指令,但是,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。我们就来谈一谈:

结尾已经对目录以及权限有了最初的了解 下一章节 文件与目录管理..

Linux 文件权限于目录配置,布布扣,bubuko.com

原文:http://www.cnblogs.com/521football/p/3644761.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!