文章目录
- 一、使用者与群组
- 1.使用者与群组
- 二、Linux文件权限的概念
- 1.Linux 文件属性
- 2.如何改变文件属性与权限
- (1)chgrp,chown,chmod
- (2)改变所属群组, chgrp
- (3)改变文件拥有者, chown
- (d)查找类似文件名的比较好的方法是:
- ls -al .bashrc* :
- 查找类似目录的比较好的方法是:
- ls -ld test*
- (4)改变权限, chmod
- 3.目录与文件之权限意义:这些文件权限对于一般文件与目录文件有何不同呢?
- 注意进入/tmp与testing/目录的不同!!
- 4. Linux 文件种类与扩展名:具体介绍
- 三、Linux目录配置
- 1.Linux目录配置的依据-FHS
- (3)FHS 针对目录树架构仅定义出三层目录:非常重要
- 2.目录树(directory tree)
- (2)注意查询目录的指令: ls -l / 与ls -l之间的区别(ls -al /与ls -al的区别)。
- 3.绝对路径与相对路径:简介而已
- 4. CentOS 的观察
- 五、重点回顾
- 六、可能会遇到的典型问题
一、使用者与群组
1.使用者与群组
(1)Linux 一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有read/write/execute 等权限。
(2)文件拥有者
(3)群组
(4)其他人的概念
(4)其它理解:拥有者、群组、其他人的eg
(5)Linux 用户身份与群组记录的文件
(a)默认的情况下,所有的系统上的账号与一般身份使用者,还有那个 root 的相关信息, 都是记录在 /etc/passwd 这个文件内的;
(b)至于个人的密码则是记录在 /etc/shadow 这个文件下。
(c)Linux 所有的组名都纪录在 /etc/group 内!
二、Linux文件权限的概念
1.Linux 文件属性
(1)要注意的是, 我们还是不建议你直接使用 root 登入系统,建议使用 su - 这个指令来切换身份喔!离开 su - 则使用 exit 回到 dmtsai 的身份即可!
(2)ls 是『list』的意思:
重点在显示文件的文件名与相关属性。而选项『-al』则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为『. 』的文件)。
(3)文件属性示例图如下:
(a)第一栏代表这个文件的类型与权限(permission):
(b)不论是那一组权限,基本上,都是『针对某些账号来设计的权限』喔!
以群组来说,他规范的是『加入这个群组的账号具有什么样的权限』之意。
eg:
(c)第二栏表示有多少档名连结到此节点(i-node):
我们使用的目录树却是使用文件名来记录, 因此每个档名就会连结到一个 i-node 啰!
(d)第三栏表示这个文件(或目录)的『拥有者账号』
(e)第四栏表示这个文件的所属群组
(f)第五栏为这个文件的容量大小,默认单位为 bytes;
(j)第六栏为这个文件的建档日期或者是最近的修改日期:
短暂修改语系与长久修改语系的区别与做法如下:
(h)第七栏为这个文件的档名
如果档名之前多一个『. 』,则代表这个文件为『隐藏档』,该文件就是隐藏档。
(i)eg:
文件的eg
目录的eg
(4)Linux 文件权限的重要性:
2.如何改变文件属性与权限
(1)chgrp,chown,chmod
(2)改变所属群组, chgrp
(a) change group 的缩写嘛!这样就很好记了吧! _。不过,请记得,要被改变的组名必须要在/etc/group 文件内存在才行,否则就会显示错误!
(b)eg:假设你已经知道在/etc/group 里面已经存在一个名为 users 的群组, 但是testing 这个群组名字就不存在/etc/group 当中了,此时改变群组成为 users 与 testing 分别会有什么现象发生呢?
(3)改变文件拥有者, chown
(a) change owner 啰!也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。
(b) chown 的用途还满多的,他还可以顺便直接修改群组的名称呢!,注意下面的root:root使用即可;
如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!
eg:
说明:
改回root: 所以我们比较建议使用冒号『:』来隔开拥有者与群组啦!
『chown .sshd initial-setup-ks.cfg』就是修改群组——就是那个小数点的用途!(c)最常见的例子就是在复制文件给你之外的其他人时, 我们使用最简单的 cp 指令来说明好了,复制行为(cp)会复制执行者的属性与权限
(d)查找类似文件名的比较好的方法是:
ls -al .bashrc* :
查找类似目录的比较好的方法是:
ls -ld test*
(4)改变权限, chmod
整体整体的去想,去改
(a)数字类型改变文件权限
eg:将.bashrc 这个文件所有的权限都设定启用
那如果要将权限变成『-rwxr-xr-- 』呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754 啰!所以你需要下达『chmod 754 filename』。
eg:
常常我们以 vim编辑一个 shell 的文字批处理文件后,他的权限通常是 -rw-rw-r-- 也就是 664, 如果要将该文件变成可执行文件,并且不要让其他人修改此一文件的话, 那么就需要-rwxr-xr-x 这样的权限,此时就得要下达:『chmod 755 test.sh 』的指令啰!
eg:如果有些文件你不希望被其他人看到,那么应该将文件的权限设定为例如:『-rwxr-----』,那就下达『chmod 740 filename 』吧!
(b)符号类型改变文件权限
eg:
eg:符号法最好的方式如下
那么假如是『-rwxr-xr-- 』这样的权限呢?可以使用『chmod u=rwx,g=rx,o=r filename 』来设定。
eg:如果我不知道原先的文件属性,而我只想要增加.bashrc 这个文件的每个人均可写入的权限, 那么我就可以使用:
而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
3.目录与文件之权限意义:这些文件权限对于一般文件与目录文件有何不同呢?
(1)权限对文件的重要性
(2)权限对目录的重要性
(3)文件和目录关于权限的对比如下:
对一般文件来说, rwx 主要是针对『文件的内容』来设计权限,对目录来说, rwx 则是针对『目录内的文件名列表』来设计权限。
so,能不能进入某一个目录,只与该目录的 x 权限有关啦!
(4)eg:
eg:
要开放目录给任何人浏览时,应该至少也要给予 r 及 x 的权限,但 w 权限不可随便给!
(5)eg:
先用 root 的身份建立所需要的文件与目录环境
注意进入/tmp与testing/目录的不同!!
对于目录的操作而言:
x 在目录当中是与『能否进入该目录』有关
w 则具有相当重要的权限,因为他可以让使用者删除、更新、新建文件或目录
eg:
很多动作中,你只要具有 x 即可! r 是非必备的!只是,没有r 的话,使用 [tab]时,他就无法自动帮你补齐档名了!
4. Linux 文件种类与扩展名:具体介绍
(1)任何装置在 Linux 底下都是文件
(2)文件种类
说明:
一个比较有趣的文件就是连结档:类似在Windows 底下有所谓的『快捷方式』。
socket 与 FIFO 文件比较难理解,因为这两个咚咚与程序(process)比较有关系。
(3)Linux 文件扩展名:
(a) 一个 Linux 文件能不能被执行,与他的第一栏的十个属性有关, 与文件名根本一点关系也没有。
这个观念跟 Windows 的情况不相同喔!在 Windows 底下, 能被执行的文件扩展名通常是 .com .exe .bat 等等,而在 Linux 底下, 只要你的权限当中具有 x 的话,例如[ -rwxr-xr-x ] 即代表这个文件具有可以被执行的能力喔!
(b) 通常我们还是会以适当的扩展名来表示该文件是什么种类的。底下有数种常用的扩展名:
so:
例如你在网络上下载一个可执行文件,但是偏偏在你的 Linux 系统中就是无法执行!呵呵!那么就是可能文件的属性被改变了!(4)Linux 文件名的限制
三、Linux目录配置
1.Linux目录配置的依据-FHS
(1)Filesystem Hierarchy Standard(FHS):根据 FHS的标准文件指出,他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循 FHS 的标准。
(2)FHS将目录定义成为四种交互作用的形态:了解即可
说明:
(3)FHS 针对目录树架构仅定义出三层目录:非常重要
注意:如果以『账号』的角度来看,所谓的 root 指的是『系统管理员!』的身份, 如果以『目录』的角度来看,所谓的 root 意即指的是根目录,就是 / 啦~ 要特别留意喔!
(4)根目录 (/) 的意义与内容:
(a)FHS 的要求方面,他希望根目录不要放在非常大的分区槽内, 因为越大的分区槽妳会放入越多的数据,如此一来根目录所在分区槽就可能会有较多发生错误的机会。
(b) FHS 定义出根目录(/)底下应该要有底下这些次目录的存在
必须要存在的目录如下:
可以存在的目录如下:
底下是几个在 Linux 当中也是非常重要的目录,没上面的那么重要了
(5)/usr 的意义与内容:
(a)Unix Software Resource 的缩写,也就是『Unix 操作系统软件资源』所放置的目录,而不是用户的数据啦!
FHS 建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。
因为是所有系统默认的软件(distribution 发布者提供的软件)都会放置到/usr 底下,因此这个目录有点类似 Windows 系统的『C:\Windows\ (当中的一部份) + C:\Program files\』这两个目录的综合体。
(b)
一般来说, /usr 的次目录建议有底下这些:
建议可以存在的目录
(6)/var 的意义与内容
(a)如果/usr 是安装时会占用较大硬盘容量的目录,那么/var 就是在系统运作后才会渐渐占用硬盘容量的目录。
因为/var 目录主要针对常态性变动的文件,包括快取(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件等等。
(b)必须要存在的目录
(7)针对 FHS,各家 distributions 的异同,与 CentOS7 的变化
2.目录树(directory tree)
(1)目录树的主要特性如下:
(2)注意查询目录的指令: ls -l / 与ls -l之间的区别(ls -al /与ls -al的区别)。
一个以目录为主,一个以文件为主
(3)目录树的架构如下所示:
3.绝对路径与相对路径:简介而已
(1)绝对路径与相对路径的区别如下:
eg:如果想要进入 /var/log 这个目录时,可以怎么写呢?
eg:
4. CentOS 的观察
五、重点回顾
(1)Linux 的每个文件中,可分别给予使用者、群组与其他人三种身份个别的 rwx 权限;
(2)群组最有用的功能之一,就是当你在团队开发资源的时候,且每个账号都可以有多个群组的支持;
(3) 利用 ls -l 显示的文件属性中,第一个字段是文件的权限,共有十个位,第一个位是文件类型, 接下来三个为一组共三组,为使用者、群组、其他人的权限,权限有 r,w,x 三种;
(4)如果档名之前多一个『. 』,则代表这个文件为『隐藏档』;
(5)若需要 root 的权限时,可以使用 su - 这个指令来切换身份。处理完毕则使用 exit 离开 su 的指令环境。
(6)更改文件的群组支持可用 chgrp,修改文件的拥有者可用 chown,修改文件的权限可用 chmod
(7)chmod 修改权限的方法有两种,分别是符号法与数字法,数字法中 r,w,x 分数为 4,2,1;
(8)对文件来讲,权限的效能为:
r:可读取此一文件的实际内容,如读取文本文件的文字内容等;
w:可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x:该文件具有可以被系统执行的权限。
对目录来说,权限的效能为:
r (read contents in directory)
w (modify contents of directory)
x (access directory)
(9)要开放目录给任何人浏览时,应该至少也要给予 r 及 x 的权限,但 w 权限不可随便给;
(10)能否读取到某个文件内容,跟该文件所在的目录权限也有关系 (目录至少需要有 x 的权限)。
(11)Linux 档名的限制为:单一文件或目录的最大容许文件名为 255 个英文字符或 128 个汉字字符;
(12)根据 FHS 的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下
(13)FHS 订定出来的四种目录特色为: shareable, unshareable, static, variable 等四类;
(14)FHS 所定义的三层主目录为: /, /var, /usr 三层而已;
(15)绝对路径文件名为从根目录 / 开始写起,否则都是相对路径的文件名。
六、可能会遇到的典型问题