Linux操作系统学习(二)、Linux的文件权限与目录配置

Linux的文件权限与目录配置

重要的文件

文件的权限和属性

  1. 使用者
  2. 群组
  3. 非本群组外

在Linux里面,任何一个文件都具有“User”、“Group”、“Others”三种身份的个别权限,以及一个可以万能的权限就是“root”

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

个人的密码是记录在ect/shadow这个文件下

所有的群组名称都记录在/etc/group内

Linux文件权限的概念

Linux文件属性

这里我使用的是ubuntu进行的实验:

输入 sudo -i
请添加图片描述
将会切换身份为root模式 {使用exit即可退出root模式}

使用 ls -al指令,可以查看文件 包括隐藏文件(以 . 开头的文件)

也可以使用ls --help 、man ls查看各种ls 的用法

ls -C默认ls下的文件查看
ls -a查看所有文件包括(. ..隐藏文件)
ls -A查看所有文件除了(. ..隐藏文件)
ls -l以列表信息格式列出所有文件
ls -d查看目录名 而不查看目录下内容
ls -F在每个输出项后追加文件的类型标识符 {*表示可执行文件}{/表示目录文件}{什么都无表示普通文件}{|表示管道文件}

其他的一些指令具体可以查看下面两个我之前整理好的链接

1/Linux基础命令
Linux操作系统学习(二)、Linux的文件权限与目录配置_第1张图片
文件权限+链接(表示有多少文件名连接到此节点)

​ +拥有者+群组+文件大小(一般是Bytes)

​ +修改日期(如果这个文件距离现在修改的时间太久了,那时间部分只会显示年份)

​ +文件名

a)- r w x r w x - - -含义:

  • 文件属性 :

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

d:目录

l:链接文件

b:设备文件中的可供存储的周边设备

-:普通文件

c:设备文件中的一次性读取设备

  • 接下来的字符以三个为一组,均为“r w x”的组合

r:代表着可读

w:代表着可写

x:代表着可执行

在windows中判断一个文件是否为可执行文件是通过文件名后缀是否为.exe

在Linux中判断则是查看文件权限是否含有x

-:表示没有该权限

第一组为“文件的拥有者所具备的条件”

第二组为“加入此群组账号的权限”

第三组为“非本人且没有加入此群组的账号的权限”

练习

假设test1, test2, test3同属于testgroup这个群组,如果有下面的两个文件,请说明两个

文件的拥有者与其相关的权限为何?

-rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai

test.txt的拥有者为root、ping_tsai的拥有者为test1

test.txt的所属群组为root、ping_tsai的所属群组为testgroup

test.txt只有root用户具有可写的能力,其余只有可读的权限

ping_tsai文件:test1用户具有可读可写可执行的权限

​ testgroup中的用户具有可读可执行的权限

​ 其余用户只具有可读的权限

对于目录文件的权限 若不存在x可执行权限就进不去该目录

修改文件属性

使用命令:

  • chgrp:改变文件所属群组(change group)

所改变的群组名称必须要在 /etc/group中存在才行

sudo chgrp newGroupName dirname/filename

-R表示该文件夹下的一系列文件都会修改群组

  • chown:改变文件拥有者(change owner)

所改变的拥有者名称必须要在 /etc/passwd中存在才行

sudo chown newOwner dirname/filename

-R表示该文件夹下的一系列文件都会修改所有者

  • chmod:改变文件的权限

数字类型改变文件权限

r:4 > w:2 > x:1

owner = rwx = 4+2+1 = 7 > group = rwx = 4+2+1 = 7 > others= — = 0+0+0 = 0

所有当我们设置的时候该文件的权限是就是770

sudo chmod xyz dirname/filename

-R表示该文件夹下的一系列文件都会修改文件权限

符号类型改变文件权限

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

sudo chmod u=rwx,go=rx filename

假如我后面又得添加新的文件权限就可以直接使用

sudo chmod a+w filename 所有用户都会添加可读属性

假如我后面又要删除文件属性呢

sudo chmod a-w filename

目录的文件属性

文件和权限和目录的权限作用上有很大的区别,remember

  • r

表示具有读取目录结构清单的权限,拥有r就可以使用ls来查询该目录下文件的相关信息

请添加图片描述

  • w
    拥有w就表示在该目录下你就可以

创建新的文件与目录

删除存在的文件与目录

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

搬移该目录下的文件和目录

请添加图片描述

  • x

目录的x代表的是使用者能否进入该目录

请添加图片描述

练习

:假设有个帐号名称为dmtsai,他的主文件夹在/home/dmtsai/,dmtsai对此目录具有

[rwx]的权限。 若在此目录下有个名为the_root.data的文件,该文件的权限如下:

-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data

请问dmtsai对此文件的权限为何?可否删除此文件?

dmtsai对此文件是属于Others所以并不能查看、修改、执行该文件

但是dmtsai是可以删除该文件的,因为dmtsai对此目录拥有w权限,所以可以删除该目录下的文件

Linux文件种类与拓展名

文件种类
  • 正规文件 【-】
  • 纯文本文件(ASCII)

  • 二进制文件(binary)

  • 数据格式文件(data)

    数据格式文件不同于纯文本文件,是使用last指令才能查看,而纯文本文件是使用cat指令查看

  • 目录【d】
  • 链接文件【l】
  • 设备与设备文件【device】

区块(block)设备文件:【b】

就是一些储存数据, 以提供系统随机存取的周边设备,举例来说,硬盘与软盘等就是

字符(character)设备文件:【c】

例如:键盘、鼠标,一次性读取,不间断输入输出

  • 数据接口文件【s】

具有通讯作用的文件,用于网络上的数据传输,一般在/run和/tmp这些目录中可以看见

  • 管道文件【p】

FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题

拓展名
  • *.sh:脚本文件/批处理文件
  • Z,.tar,.tar.gz,.zip,*.tgz:经过打包的压缩文件
  • .html,.php:网页相关文件

单一文件或着目录的名称限制字符大小为255Bytes

设置文件名时尽量避免:?> < ; & ! [ ] | \ ’ - +

Linux目录的配置

Linux目录的配置是否有一套标准的规范来规定每个目录的功能和存放位置呢

FHS(filesystem hierarchy standard)标准来规范

“按照文件系统的使用频率和是否允许随意变动”来分成了四种形态

可分享的(shareable) 不可分享的(unshareable)
不变的(static) /usr (软件放置处) /etc (配置文件)
/opt (第三方协力软件) /boot (开机与核心档)
可变动的(variable) /var/mail (使用者邮件信箱) /var/run (程序相关)
/var/spool/news (新闻群组) /var/lock (程序相关)

不可分享:只针对本机的设置相关

可分享:可以分享给其他系统挂载使用的目录

不变的:类似于函数库,主机服务配置文件等

可变的:经常改变的文件(还没有用过)

/

  • 根据目录树的结构,FHS标准定义了:
  1. 必须存在的目录

/(根目录):和开机系统有关

/bin 与指令相关

/boot 与开机启动相关

/dev 与周边设备相关

/etc 系统主要的配置文件

/lib 与函数库文件相关

/media 与可移动的设备相关

/opt 与第三方软件相关

/run 开机后的各项产生信息

/srv 与服务器相关数据有关

/tmp 程序临时文件相关

/usr:与软件安装和执行有关

/var:与系统的运行有关

  1. 建议可以存在的目录

/home 默认使用者的主文件夹

/root 系统管理员root的主文件夹

/proc 这个目录本身是一个“虚拟文件系统

/sys 主要也是记录核心与系统硬件信息较相关的信息

/usr

  • /usr (unix software resource)

unix软件资源放置的区域

  1. 必须要求存在的目录

/usr/bin/ 所有一般用户能够使用的指令都放在这里

/usr/lib/ 基本上,与 /lib 功能相同,所以 /lib 就是链接到此目录中的

/usr/local/ 系统管理员在本机自行安装自己下载的软件

/usr/sbin/ 非系统正常运行所需要的系统指令

/usr/share/ 主要放置只读架构的数据文件,当然也包括共享文件。

  1. 建议可以存在的目录

/usr/games/ 游戏比较相关的数据

/usr/include/ c/c++等程序语言的文件开始(header)与包含档(include)放置处

/usr/libexec/ 某些不被一般使用者惯用的可执行文件或脚本(script)等等

/usr/src/ 一般源代码建议放置到这里

/var

/usr是系统安装时占用硬盘较大的文件夹,/var是系统运行时占用硬盘较大的文件夹

  1. 必须要求存在的目录

/var/cache/ 应用程序本身运行过程中会产生的一些暂存盘

/var/lib/ 程序本身执行的过程中,需要使用到的数据文件放置的目录

/var/lock/ 某些设备或者是文件资源一次只能被一个应用程序所使用,如果同时有两

个程序使用该设备时, 就可能产生一些错误的状况,因此就得要将该设备

上锁(lock),以确保该设备只会给单一软件所使用。

/var/log/ 重要到不行!这是登录文件放置的目录!

/var/mail/ 放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/

目录中! 通常这两个目录是互为链接文件啦!

/var/run/ 某些程序或者是服务启动后,会将他们的PID放置在这个目录下

/var/spool/ 这个目录通常放置一些伫列数据,所谓的“伫列”就是排队等待其他程序使

用的数据

Linux操作系统学习(二)、Linux的文件权限与目录配置_第2张图片

总体上就是这个样子

绝对路径和相对路径

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

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

  • . :代表当前的目录,也可以使用 ./来表示 ;

  • … : 代表上一层目录,也可以…/来代表

撰写不易,留下您的关注和点赞,我们一起进步!

你可能感兴趣的:(Linux操作系统,linux,学习,数据库)