linux学习之四Linux的文件权限和目录配置

2010年11月15日 Linux基础 评论 1 条 阅读 9,468 views 次

课件和视频下载地址:ftp://tutengit.com/Yufei_share/

用户名/密码:opsers/opsers

内容简介:
1、使用者与群组
2、文件权限概念
3、目录配置
4、课后练习

文件所有者
由于Linux是个多人多任务的系统,因此可能常常会有多人同时使用这台主机来进行行工作的情况发生,为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个文件所有者的角色就显的相当的重要了。
群组概念
群组最有用的功能之一,就是当你在团队开发资源的时候。
其他人的概念

User, Group及Others这三个就是我们LINUX系统中的权限的概念了

所有的系统上的账号和一般身份使用者,都是记录在/etc/passwd这个文件中,密码则是记录在/etc/shadow这个文件中,所有的组都记录在/etc/group文件中

Linux 文件权限的概念
Linux一般将文件可存取的身份分为三个类别,分别是 owner/group/others,和三种身份各有 read/write/execute 等权限。

Permission deny这是提示可能大家经常遇到,造成的主要原因,一般都是文件的权限错误。

Linux 文件属性

大家切换到ROOT用户
执行ls -al

七个字段的含义
[权限][连结][所有者][群组][文件大小][修改日期][文件名]

第一栏代表这个文件的类型与权限(permission)
第一个字符代表这个文件的性质。
接下来的字符中,以三个为一组,均为『rwx』的三个参数的组合。[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。如果没有权限,就会出现减号[ - ]。
注:RWX这三个的位置不会改变。
r (read):可读取此文件的内容;
w (write):可以编辑、新增或者是修改该文件里面的内容;
x (eXecute):该文件具有可以被系统执行的权限。(Windows底下一个文件是否具有执行的能力,要主是根据扩展名判断,如.exe, .bat, .com等等,而在Linux底下,我们的文件是否能被执行,则是由是否具有『x』这个权限来决定的,和文件名没有关系)
不过,可以被执行跟可以执行成功是不一样的~如在root家目彔下的install.log

针对目录时,那个 r, w, x 又是什么意义呢
r (read contents in directory):表示具有读取目录结构列表的权限,所以你就可以利用 ls 这个指令将该目录的内容列表显示出来。

w (modify contents of directory):表示你具有调整该目录结构列表的权限。也就是说,和这个目录里面的文件名异动有关
建立新的文件与目录
删除已经存在的文件与目录(不府该文件的权限如何)
将已存在的文件与目录进行改名
移动该目录内的文件、目录位置

x (access directory):
目当并不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途。所谓的工作目录(work directory)就是你目前所在的目录

第一组:文件所有者的权限
第二组:群组的权限
第三组:其它人的权限
此外,目录与文件的权限意义并不完全相同

第二栏表示有多少文件名连结到此节点(i-node):
每个文件都会将他的权限与属性记录到文件系统的i-node中,因此每个文件名就会连结到一个i-node。这个属性记录的,就是有多少不同的文件名连结到相同的一个i-node。(在磁盘配额中详细说到)

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

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

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

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

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

Linux文件权限的重要性
最大的用途是在『数据安全性』上面考虑的。
系统保护的功能。如/etc/shadow

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

未将权限设定妥当的危害。可能造成其他人都可以在你的系统上面乱折腾

 

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

chgrp :改变文件所属群组
注意:要被改变的组名必项要在/etc/group文件内存在才行,否则就会显示错误。

chown :改变文件所有者
同样,要被改变的所有者要在/etc/passwd文件中存在才行。
他还可以顺便直接修改群组的名称。可以使用“: .”

chmod :改变文件的权限
权限的设定方法有两种,分别是使用数字叵者是符号来进行权限的改变
owner/group/others 三种身份各有自己的read/write/execute权限
r:4 w:2 x:1

user\group\others三种身份可以由u, g, o来代表三种身份的权限,还有个a代表所有。+\-\=来设置相应的权限
chmod 754
chmod u=rwx,g=rx,o=r filename

linux文件的种类与扩展名
一般文件:
纯文本档(ASCII):cat能看到
二进制文件(binary):我们的系统其实公认识且可以执行二进制文件(binary file)
数据格式文件(data):有些程序在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件 (data file)。
如我们的Linux在使用者登入时,都会将登录的数据记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于一种特殊格式的文件。

目彔(directory):第一个属性为 [ d ]

连结档(link):第一个属性为 [ l ]

设备与装置文件(device):区块(block)设备文件=硬盘与软盘,第一个属性为[ b ]、字符(character)设备文件=键盘、鼠标。第一个属性为 [ c ]

资料接口文件(sockets):这种类型的文件通常被用在网络上的数据,我们可以启动一个程序来监听客户端的要求, 而客户端就可以通过这个socket来进行数据的沟通了。 最常在/var/run这个目录中看到这种文件类型了。第一个属性为 [ s ]

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

Linux文件扩展名:
基本上,Linux的文件是没有所谓的『扩展名』的,一个Linux文件能不能被执行,与他的第一栏的十个属性有关,与文件名根本一点关系也没有。这个观念跟Windows的情况不相同。虽然如此,我们依然希望可以通过扩展名来了解该文件是什么东西。通常我们还是会以适当的扩展名来表示该文件是什么种类的。
*.sh : 脚本或批处理文件 (scripts)
*Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件
*.html, *.php:网页相关文件

在设定Linux底下的文件名时, 最好避免一些特殊字符开头比较好!例如底下这些:
* ? > < ; & ! [ ] | \ ' " ` ( ) { } - +

现在ext3支持最大16TB的文件系统。单个文件最大2TB。Ext4增加了48位块地址,最大支持1EB文件系统,和单个16TB的文件。1EB=1024PB 1PB=1024TB 1TB=1024GB。

Linux目录配置的依据--FHS
因为利用Linux来开发产品或distributions的社群/公司与个人实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰。后来就有所谓的Filesystem Hierarchy Standard (FHS)标准的出炉了。
根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于哪个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。 这样做好处非常多,因为Linux操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。

FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也不容易发生问题。
因此FHS定义出根目彔(/)底下应该要有底下这些次目录的存在才好:
鸟哥的Linux私房菜 基础学习篇(第三版).pdf:page 191

特别提醒:
因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行行挂载的行为。因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区中去。
etc:配置文件
/bin:重要执行文件
/dev:所需要的设备文件
/lib:执行文件所需的函式库与核心所需的模块
/sbin:重要的系统执行文件
这五个目录千万不可与根目录分开在不同的分区中。

/usr 的意义与内容:
很读者都会误以为/usr为user的缩写,其实usr是Unix Software Resource的缩写, 也就是『Unix操作系统软件资源』所放置的目录,而不是用户的数据。
这个目录有点类似Windows 系统的『C:\Windows\ + C:\Program files\』这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘空间。

一般来说,/usr的次目录建议有底下这些:
鸟哥的Linux私房菜 基础学习篇(第三版).pdf:page 193

/var 的意义与内容:
如果/usr是安装时会占用较大硬盘空间的目录,那么/var就是在系统运作后才会渐渐占用硬盘空间的目录。 因为/var目录主要针对经常变化的文件,包括缓存(cache)、日志(log file)以及某些软件运作所产生的档案, 包括程序档案(lock file, run file),例如MySQL数据库的文件等等。常见的次目录有:
鸟哥的Linux私房菜 基础学习篇(第三版).pdf:page 194

目录树(directory tree)
他主要的特性有:
目录树的启始点为根目录
每一个目录不仅能使用本地的 partition 的文件系统,也可以使用网络上的 filesystem
每一个档案在此目录树中的文件名(包括完整路径)都是独一无事的
鸟哥的Linux私房菜 基础学习篇(第三版).pdf:page 196

绝对路径与相对路径
将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。

绝对路径:由根目录(/)开始写起的文件名或目录名称
相对路径:相对于目前路径的文件名写法
. :代表当前的目录,也可以使用 ./ 来表示;
.. :代表上一层目录,也可以 ../ 来代表。

./run.sh这个指令的意义为何?
由于指令的执行需要变量的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该执行档。
./run.sh表示的是执行本目录下的run.sh指令

uname -a
cat /proc/version
cat /etc/issue
lsb_release -a
noarch :就是没有任何硬体等级上的限制。一般来说,这种类型的 RPM 档案,里面应该没有 binary file 存在。

 

课后练习

请说明/bin与/usr/bin目录所放置的执行文件有何不同之处?
请说明/bin与/sbin目录所放置的执行文件有何不同之处?
请问下面这些目录主要放置什么数据?/etc/, /etc/init.d, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev, /var/log
哪几个目录不能够与根目录(/)放置到不同的分区中?
试说明为何根目录为什么要小一点比较好?另外在分区时,为什么/home, /usr, /var, /tmp最好不要与根目录放到相同的分区? 试说明原因为何(由目录放置数据的内容谈起)?

1 条留言  访客:0 条  博主:1 条

  1. 课后练习答案:
    1、请说明/bin与/usr/bin目录所放置的执行文件有何不同之处?
    /bin主要放置在开机时,以及进入单人维护模式后还能够被使用的命令,至于/usr/bin则是大部分软件提供的命令存放处。

    2、请说明/bin与/sbin目录所放置的执行文件有何不同之处?
    /bin放置的是一般用户惯用的命令,至于/sbin则是系统管理员才会使用到的命令。不过/bin与/sbin都与开机、单人维护模式有关。 更多的执行档会被放置到/usr/bin及/usr/sbin底下。

    3、请问下面这些目录主要放置什么数据?/etc/, /etc/init.d, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev, /var/log
    请参考课程内容,这里不重复来写了。

    4、哪几个目录不能够与根目录(/)放置到不同的分区中?
    /etc(配置文件), /bin(一般身份可用执行文件), /dev(设备文件), /lib(执行程序的函数库或核心模块等), /sbin(系统管理员可用命令)

    5、试说明为何根目录为什么要小一点比较好?另外在分区时,为什么/home, /usr, /var, /tmp最好不要与根目录放到相同的分区? 试说明原因为何(由目录放置数据的内容谈起)?
    根据FHS的说明,越小的/可以放置的较为集中且读取频率较不频繁,可避免较多的错误。 至于/home(用户家目录), /usr(软件资源), /var(变动幅度较大的数据), /tmp(系统暂存)中, 因为数据量较大或者是读取频率较高,或者是不明的使用情况较多,因此建议不要与根目录放在一起, 也会有助于系统安全。

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录