linux目录表及功能n鸟哥,鸟哥linux私房菜_笔记_Linux的文件权限与目录配置

5.1 使用者与群组

1. 文件拥有者:

2. 群组概念:

3. 其他人的概念:

Linux 使用者身份与群组记录的文件

默认的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个文件内的。

至于个人的密码则是记录在/etc/shadow这个文件下。

Linux所有的群组名称都纪录在/etc/group内!

这三个文件可以说是Linux系统里面帐号、密码、群组信息的集中地!

5.2 Linux 文件权限概念

1、文件属性

0846e7df68c9

第一栏代表这个文件的类型与权限(permission):

第一个字符代表这个文件是“目录、文件或链接文件等等”:

当为[ d ]则是目录,例如上表文件名为“.config”的那一行;

当为[ - ]则是文件,例如上表文件名为“initial-setup-ks.cfg”那一行;

若是[ l ]则表示为链接文件(link file);

若是[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备);

若是[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。

接下来的字符中,以三个为一组,且均为“rwx” 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

第一组为“文件拥有者可具备的权限”,以“initial-setup-ks.cfg”那个文件为例, 该文件的拥有者可以读写,但不可执行;

第二组为“加入此群组之帐号的权限”;

第三组为“非本人且没有加入本群组之其他帐号的权限”。

---------------------------------------------------------------------------------------------------------

第二栏表示有多少文件名链接到此节点(i-node):

每个文件都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录, 因此每个文件名就会链接到一个i-node。

这个属性记录的,就是有多少不同的文件名链接到相同的一个i-node号码去就是了。

-----------------------------------------------------------------------------------------------------------

第三栏表示这个文件(或目录)的“拥有者帐号”

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

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

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

这一栏的内容分别为日期(月/日)及时间。如果这个文件被修改的时间距离现在太久了,那么时间部分会仅显示年份而已。

0846e7df68c9

如果想要显示完整的时间格式,可以利用ls的选项,亦即:“ls -l --full-time”就能够显示出完整的时间格式了!包括年、月、日、时间。

-----------------------------------------------------------------------------------------------------------------------

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

这个字段就是文件名了。比较特殊的是:如果文件名之前多一个“ . ”,则代表这个文件为“隐藏文件”,例如上表中的.config那一行,该文件就是隐藏文件。 你可以使用“ls”及“ls -a”这两个指令去感受一下什么是隐藏文件。

2、如何改变文件属性与权限

chgrp :改变文件所属群组

chown :改变文件拥有者

chmod :改变文件的权限, SUID, SGID, SBIT等等的特性

改变所属群组, chgrp

改变一个文件的群组:

直接以chgrp来改变即可,不过,请记得,要被改变的群组名称必须要在/etc/group文件内存在才行,否则就会显示错误!

0846e7df68c9

改变文件拥有者, chown

要注意的是, 使用者必须是已经存在系统中的帐号,也就是在/etc/passwd 这个文件中有纪录的使用者名称才能改变。

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

0846e7df68c9

chown也可以使用“chown user.group file”,亦即在拥有者与群组间加上小数点“ . ”也行! 不过很多朋友设置帐号时,喜欢在帐号当中加入小数点(例如vbird.tsai这样的帐号格式),这就会造成系统的误判了! 所以比较建议使用冒号“:”来隔开拥有者与群组!此外,chown也能单纯的修改所属群组! 例如“chown .sshd initial-setup-ks.cfg”就是修改群组~看到了吗?就是那个小数点的用途!

******************************************************************************************************************************

改变权限, chmod

数字类型改变文件权限:

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

0846e7df68c9

----------------------------------------------------------------------------------------------------------------------------

符号类型改变文件权限:

九个权限分别是

(1)user (2)group (3)others三种身份 !

我们就可以借由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x

0846e7df68c9

“设置”一个文件的权限成为“-rwxr-xr-x”时,基本上就是:

user (u):具有可读、可写、可执行的权限;

group 与 others (g/o):具有可读与执行的权限。 所以就是:

0846e7df68c9

那么假如是“ -rwxr-xr-- ”这样的权限呢?可以使用“ chmod u=rwx,g=rx,o=r filename ”来设置。此外,如果我不知道原先的文件属性,而我只想要增加.bashrc这个文件的每个人均可写入的权限, 那么我就可以使用:

0846e7df68c9

而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

0846e7df68c9

************************************************************************************************************************************

3、目录与文件之权限意义:

权限对文件的重要性:

文件是实际含有数据的地方,包括一般文本文件、数据库内容档、二进制可可执行文件(binary program)等等。 因此,权限对于文件来说,他的意义是这样的:

r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;

w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);

x (eXecute):该文件具有可以被系统执行的权限。

那个可读(r)代表读取文件内容是还好了解,那么可执行(x)呢?这里你就必须要小心啦!因为在Windows下面一个文件是否具有执行的能力是借由“ 扩展名 ”来判断的, 例如:.exe,.bat, .com 等等,但是在Linux下面,我们的文件是否能被执行,则是借由是否具有“x”这个权限来决定的!跟文件名是没有绝对的关系的!

至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对“文件的内容”而言,与文件文件名的存在与否没有关系喔!因为文件记录的是实际的数据!

权限对目录的重要性:

目录主要的内容在记录文件名清单,文件名与目录有强烈的关连啦! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?

r (read contents in directory):

表示具有读取目录结构清单的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

--------------------------------------------------------------------------------------------

w (modify contents of directory):

这个可写入的权限对目录来说,表示你具有异动该目录结构清单的权限,也就是下面这些权限:

创建新的文件与目录;

删除已经存在的文件与目录(不论该文件的权限为何!)

将已存在的文件或目录进行更名;

搬移该目录内的文件、目录位置。

总之,目录的w权限就与该目录下面的文件名异动有关!

-----------------------------------------------------------------------------------------------

x (access directory):

目录的x代表的是使用者能否进入该目录成为工作目录的用途!

所谓的工作目录(work directory)就是你目前所在的目录!

举例来说,当你登陆Linux时, 你所在的主文件夹就是你当下的工作目录。而变换目录的指令是“cd”(change

directory)!

0846e7df68c9

先用root的身份创建所需要的文件与目录环境

0846e7df68c9

一般用户的读写权限为:

目录是744的权限设置,一般用户应该能有 r 的权限, 但这样的权限使用者能做啥事呢?

0846e7df68c9

如果该目录属于用户本身,会有什么状况?

0846e7df68c9

x 在目录当中是与“能否进入该目录”有关,至于那个 w 则具有相当重要的权限,因为他可以让使用者删除、更新、新建文件或目录, 是

个很重要的参数

使用者操作功能与权限:

假设两个文件名,分别是下面这样:

/dir1/file1

/dir2

假设你现在在系统使用 dmtsai 这个帐号,那么这个帐号针对 /dir1, /dir1/file1, /dir2 这三个文件名来说,分别需要“哪些最小的权限”才能达成各项任务?

0846e7df68c9

*******************************************************************************************

4、linux文件种类与扩展名

文件种类:

正规文件

纯文本文件(ASCII)

二进制档(binary)

数据格式文件(data):有些程序在运行的过程当中会读取某些特定格式的文件,Linux在使用者登陆时,都会将登录的数据记录在

/var/log/wtmp那个文件内,该文件是一个data file,他能够通过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于

一种特殊 格式的文件

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

链接文件(link):第一个属性为 [ l ]

设备与设备文件(device):

区块(block)设备文件:查一下/dev/sda看看, 会发现第一个属性为[ b ]

字符(character)设备文件:第一个属性为 [ c ]

数据接口文件(sockets):第一个属性为[ s ],最常在/run或/tmp这些个目录中看到这种文件类型.

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

---------------------------------------------------------------------------------------------------------------------------------

Linux文件扩展名:

x代表这个文件具有可执行的能力, 但是能不能执行成功,当然就得要看该文件的内容.

通常我们还是会以适当的扩展名来表示该文件是什么种类的

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

Z, .tar, .tar.gz, .zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar等等的,由于不同的压缩软件,而取其相关的扩展名

.html, .php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件啰!

5.3 Linux 目录配置

0846e7df68c9

1、Linux目录配置的依据--FHS

FHS针对目录树架构仅定义出三层目录下面应该放置什么数据而已,分别是下面这三个目录的定义:

/ (root, 根目录):与开机系统有关;

/usr (unix software resource):与软件安装/执行有关;

/var (variable):与系统运行过程有关。

usr是Unix Software Resource的缩写, 也就是“Unix操作系统软件资源”所放置的目录

2、目录树 (directory tree)

主要的特性有:

目录树的启始点为根目录 (/, root);

每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。

每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

CentOS在根目录下面会有什么样子的数据?

0846e7df68c9

0846e7df68c9

3、绝对路径与相对路径

根据文件名写法的不同,也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。 这两种文件名/路径的写法依据是这样的:

绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;

相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法

4、CentOS 的观察

Linux distribution 的差异性, 除了 FHS 之外,还有个 Linux StandardBase (LSB) 的标准是可以依循。

0846e7df68c9

重点回顾:

要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给;

能否读取到某个文件内容,跟该文件所在的目录权限也有关系 (目录至少需要有 x 的权限)

请问下面的目录与主要放置什么数据: /etc/, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev,

/var/log, /run

/etc/:几乎系统的所有设置文件均在此,尤其 passwd,shadow

/boot:开机配置文件,也是默认摆放核心 vmlinuz 的地方

/usr/bin, /bin:一般可执行文件摆放的地方

/usr/sbin, /sbin:系统管理员常用指令集

/dev:摆放所有系统设备文件的目录

/var/log:摆放系统登录文件的地方

/run:CentOS 7 以后才有,将经常变动的项目(每次开机都不同,如程序的PID)移动到内存暂存,所以 /run 并不占实际磁盘容量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值