Linux学习笔记 -- 06 Linux的文件权限与目录配置

目录导读
  • 用户与用户组
  • Linux文件权限概念
  • Linux文件种类与扩展名
  • Linux的目录配置

Linux的多用户多任务环境,是它最出色的地方。同时,为了让各个用户具有较保密的文件数据,文件的权限管理就变的很有重要了。

1.用户与用户组
(1)文件所有者(owner)

由于多用户的特点,为了使Linux系统安全,才出现了这个概念。被设置了只有文件所有者才能查看与修改的文件,别的用户是无法看的见该文件的

(2)用户组(group)

用户组:就是一组用户可以查看某些文件,而其他用户组的用户是无权限查看这些文件的。这相当于一个朋友圈
用户:虽然若干个用户同属于某个用户组,但它们彼此间是有区别的,即A用户是不可以随便与访问B用户的文件,这相当于个人隐私。同一个用户是可以属于多个用户组的

注:用户组的最有用的功能之一就是团队开发资源时方便管理与。

(3)其他用户(others)
除用户组A外的其他用户,相对于该用户组A都是其他用户

注意:
默认情况下,系统上的所有的账号与用户(含root)的相关信息,记录在:/etc/passwd
个人密码,记录在:/etc/shadow
所有的组名,记录在:/etc/group
2.Linux文件权限概念
(1)Linux文件属性

在root身份登录时, 执行>> ls -al # ls为list的意思,al表示列出所有的文件详细权限与属性

只是部分:
drwxrwxrwt 1 root root 199 Aug 17 10:50 ..
-rwxr-xr-x 1 root root 1103 Aug 17 10:47 .bash_profile
//含义: 权限 连接 所有者 用户组 文件容量 修改(或创建)日期 文件名

1)第一列:权限(permission)
共有10个字符,
第1个:表示该文件"目录?文件?链接文件? 等"

[d],是目录
[-],是文件
[l],是链接文件(link file)
[b],设备文件里的可供存储的接口设备
[c],设备文件里的串行端口设备,如键盘鼠标(一次性读取的设备)

第2-10个,每3个为一组,且均为'rwx'参数,[r]可读(read)
[w]可写(write);[x]可执行(execute),即能进入本目录(对目录而言的)

第一组:'文件所有者的权限'
第二组:'同用户组的权限'
第三组:'其他非本用户组的权限'

注意:文件和目录的权限意义是不一样的

2)第二列:连接(i-node)
表示有多少个文件名连接到此节点(i-node),每个文件都会将它的权限与属性记录到文件系统的i-node中,这个属性记录的就是有多少不同的文件名连接到相同的一个** i-node**号码。
3)第三列:表示文件或目录的'所有者账号'
4)第四列:表示该文件所属的'用户组'
5)第五列:文件的大小,默认单位是 B
6)第六列:文件的创建日期或者是最近的修改日期
7)第七列:该文件的名称,以'.'开头的文件是隐藏文件

(2)文件属性与权限的修改
>> chgrp        #改变文件所属用户组
>> chown        #改变文件所有者
>> chmod        #改变文件的权限

1.chgrp
改变文件所属用户组
[root@localhost ~]# chgrp [-R] dirname/filename, -R是进行递归持续更改,连子目录、文件都改了

chgrp users install.log # isntall.log是主文件夹内的一个文件,属于root用户组的, 现在将其更改为users组的
注:这里的用户组必须是/etc/group文件内存的才行。

2.chown
用于更改文件的所有者,用户必须是已经存在系统中的,即在/etc/passwd文件中的
chown bin install.log #修改install.log这个文件的所有者为bin
chown root:root install.log #再修改会install.log的所有者和用户组为root
注:这里的':'可以是'.'
chown .root install.log #只修改了用户组

注意:复制文件时,会连通所有者、用户组的属性及权限都复制到新文件,这时候我们就需要修改新文件的所有者和用户组的属性信息了。
cp 原文件 目标文件 # 复制的命令, 注意会连通属性和权限都复制了

3.chmod
改变文件的权限,权限的设置有两种方式:数字符号

数字方式改变
将 r, w, x 分别用 4,2,1 来表示,即
r = 4
w = 2
x = 1
那么,不同的权限组合就可以用这些数组之和唯一的表示了
eg. [-rwxrwx---], 
分数为:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = ---= 0+0+0 = 0
故,分数为:770

chmod 777 .bashrc # 更改.bashrc文件的权限为:-rwxrwx---

符号类型方式改变

user : u + (加入)
group : g - (除去)
others: o = (设置)

eg.
>> chmod u=rwx,go=rx .bashrc  # 更改.hashrc的权限为[-rwxr-xr-x]
>> chmod u=rwx,g=rx,o=r .hashrc #更改.bashrc的权限为[-rwxr-xr--]
>> chmod a+w .bashrc   #增加.bashrc文件每个人的写入权限
>> chmod a-x .bashrc   #去掉.bashrc文件每个人的写入权限
 >> chmod g+w .bashrc   #增加.bashrc文件的用户组的写入权限
(3)目录和文件的权限的意义

1.权限对文件的重要性
文件包含:文本文件数据内容文件二进制可执行文件
'r(read)': 可读取文件的实际内容
'w(write)': 可以编辑、新增,修改文件的内容,但不可以删除
'x(execute)':该文件有可以被系统执行的权限

注:文件是否可被执行,不是用过扩展名来决定的,而是与x权限有关,这点不用windows系统中

2.权限对目录的重要性
目录主要是记录文件名列表,文件名与列表有紧密的关联。
r : 表示具有读取目录结构列表的权限,就可以利用 ls 命令将目录的内容显示出来
注:仅具有这个权限的用户是无法进入该目录中的,即无法切换至该目录中该权值也就只能使你查看查看而已,并不能实际操作目录里的任何东西(包括执行其中的命令)

w: 这个权限对于目录来说是很强大的,可以更改目录结构列表,换言之,具有下面的权限:

新建新的文件与目录
删除已经存在的文件与目录(不论文件的权限如何)
将已存在的文件或目录进行重命名
转移该目录内的文件、目录位置等

x: 表示用户可以进入(切换)到该目录中使该目录成为工作目录
注意:用能否查询目录的文件名列表,与r权限有关,而与x权限无关

3.Linux文件种类与扩展名
(1)文件种类:

文件

普通文件
纯文本文件(ASCII)
二进制文件(binary)
数据格式文件(data):特定格式的文件

目录文件(directory)
连接文件(link)
类似于windows下的快捷方式
设备与设备文件(device)

与系统外设及存储等相关的一些文件,通常都放在/dev目录下,又分为两种:
·块设备文件(block):就是一些存储数据,以提供系统随机访问的接口设备,如硬盘,软盘
·字符设备(character): 即一些串行端口的接口设备,如键盘,鼠标等。这些设备特征就是一次性读取,不能截断输出。

套接字(sockets)
这种类型的文件通常被用在网络上的数据连接,第一个属性为s,在/var/run目录中可以看到这种文件
管道(FIFO, pipe)
FIFO也是一种特殊的文件类型,它主要目的是在解决多程序同时访问一个文件所造成的错误问题第一属性[p]

(2)Linux文件扩展名

在Linux系统中没有扩展名这一个说法的,例如,一个文件能否被执行不是通过其扩展名来定义的,而是通过权限[x]来决定的,但是,一个文件具有可执行的权限,这不代表它真的可以被执行成功,因为这还和文件的内容有关的

但是Linux系统中还是可以通过扩展名了解一些关于该文件的可能的用途信息:
'.sh' # 为脚本或批处理文件(scripts), 因为批处理文件是用shell写成的,因此扩展名还是使用了.sh
'.Z', '.tar', '.tar.gz', '.zip', '.tgz' # 均为压缩文件,只是采用的压缩软件不同而已
'.html', '.php' #网页相关的文件

注意:
Linux下的文件名长度是有限制的,单个文件名为255个字符,
包含路径的完成文件名长度为:4096个字符
4.Linux的目录配置

(1)Linux目录配置标准:FHS, FileSystem Hierarchy Standard
该标准就是规范了哪个目录下该放哪种数据(文件)而已

将目录定义为4种交互作用的形态:

Linux学习笔记 -- 06 Linux的文件权限与目录配置_第1张图片

· FHS针对目录树架构仅定义了最上层及子层的目录内容应该放置的文件或目录树据:

/ (root, 跟目录):与开机系统有关
/usr (UNIX software resource):与软件安装/执行有关
/var (varible):与系统运作过程有关的

· 不可与根目录分开放置的目录:
由于根目录与开机有关,且开机过程中仅有根目录会被挂载,其他分区则是在开机后陆续挂载。因此,根目录不可与其子目录中的那些与开机有关的目录分开放置:

/etc    # 系统的配置文件,如人员账号密码文件等。只有root才有权修改。不要放置可执行文件
/bin    # 重要执行文件(与开机有关的),在开机时,以及在单用户维护模式下还能够被操作的命令。root和一般用户可以执行
/dev    # 所需要的设备文件,所有的设备都是以文件的形式存在于这个目录中,因此,可以在这个目录下访问相关文件(即访问该硬件设备)
/lib    # 执行文件所需的函数库与内核所需的模块,放置的是开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库
/sbin   # 重要的系统执行文件, 包含开机、修复、还原系统所需的命令。
(2)目录树(directory tree)

在Linux下,所有的文件与目录都是由根目录开始的。整个目录体系像树枝状。
目录树的特性:

目录树的起始点为根目录(/, root)
每一个目录不只能使用本地端的文件系统,也可以使用网络上的文件系统。
每一个文件在此目录中的文件名(含完整路径)都是独一无二的
(3)路径的写法

绝对路径:从根目录写起
相对路径:从当前目写起

 注:
 '.'::代表当前的目录,也可以用./来表示
 '..':代表上一层目录,也可以用../来表示

你可能感兴趣的:(Linux学习笔记 -- 06 Linux的文件权限与目录配置)