Linux的文件权限与目录配置

Linux的文件权限与目录配置

相关概念

  • Linux有三种身份:用户(User)、用户组(Group)、其他人(Others)。理解:用户可以理解为自己,用户组就是和你一起协作的小组,其他人就是不属于你们组的人。
  • 在Linux中,任何一个文件都具有“User,Group及Others "3种身份的个别权限。
  • root相关信息记录在/etc/passwd文件中。个人密码则是在/etc/shadow文件中。组名的记录都在/etc/gropu文件中。
  • root无所不能

关于文件属性

使用命令"ls -al"显示出所有文件详细的权限与属性。如下图所示:
在这里插入图片描述

第一列代表这个文件的类型和属性,一共有十个字符
第一个字符代表这个文件是“目录、文件或链接文件等”[d]则是目录,[-]则是文件,[l]则是连接文件,[b]则是设备文件里面可供存储的接口设备,[c]则是设备文件里的串行端口设备,例如磁盘,鼠标等。
接下来的字符中,3个为一组,且均为‘rwx’的3个参数的组合。其中[r]代表可读,[w]代表可写,[x]代表可执行。

第二列表示有多少文件名连接到此节点。后边设计硬连接会仔细介绍。

第三列表示这个文件的“所有者账号”

第四列表示这个文件的所属用户组。

第五列为这个文件的容量大小,默认为B。

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

第七列为文件名。其中开始为一个’.'表示隐藏文件。

修改文件的属性与权限

改变文件所属用户组

chgrp [-R] groupname dirname/filename
-R 表示进行递归的修改,连同子目录下的所有文件、目录
如 chgrp users install.log

改变文件所有者

chown [-R] ownname dirname/filename
如 chown budding0828 install.log

注意:cp 会复制执行者的属性与权限

改变文件的权限
其中r的大小是4,w的大小是2,x的大小是1.相加起来便是该身份的权限。如own=rwx=4+2+1=7

chmod [-R] mod_number filename/dirname
如 chomd 777 .bashrc

或者使用+ - =的方式。其中u表示user,g表示group,o表示others,a表示all

chomd u=rwx, go=rx myfile.txt
其中go表示group和others
chomd a-x myfile.txt
去除myfile文件所有身份的x权限

目录和文件权限的意义

对于文件而言:

  • r,w分别代表读写
  • 在Linux下面,文件是否能被执行则是由是否具有‘x’权限来决定,而跟文件名是没有绝对关系的。

对于目录

  • r:表示具有读取目录结构列表的权限。有了r权限,就可以利用ls这个命令将该目录的内容列表显示出来。
  • w:表示具有更改该目录结构列表的权限。包括新建、删除(可以不管权限如何)、重命名、转移等
  • x:代表用户能否进入该目录成为工作目录的用途。也即是说,没有x权限,就不能cd进去。

关于新建和删除

新建目录

mkdir dirname

删除目录

rm -rf dirname
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

新建文件

touch filename

删除文件

rm filename

关于文件种类

[-]:普通文件,包括纯文本文件(ASCII)、二进制文件、数据格式文件(特殊格式文件,不能通过cat读,而要用last这个命令)

[d]目录

[l]连接文件,类似于windows下的快捷方式

设备与设备文件
这部分文件集中在/dev目录
[b]块设备文件,如硬盘,软盘等

[c]字符设备文件,也就是一些串行端口的接口设备,如键盘、鼠标等

[s]套接字socket文件,用于网络上的数据连接。通常在/var/run

[p]管道文件pipe。主要目地在于解决多个程序同时访问一个文件造成的错误问题。

注意,Linux没有扩展名的概念。

Linux目标配置

Linux 目录配置标准FHS:FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据。
这部分内容对于理解各种目录的作用有较大作用。

根目录(/):

说明:根目录与开机、还原、系统修复等操作有关。所以不要放在非常大的分区,因为越大的分区你会放入越多的数据,如此以来根目录所在分区就可能会有较多发生错误的机会。
FHS建议:根目录放在越小的分区越好,并且不要和所安装的软件放在一起。
子目录:

在这里插入图片描述

/bin:放置在单用户维护模式下还能够被操作的命令。可以被root和一般账号所使用,主要有cat,chomd,chown,data,mv,mkdir,cp,bash等命令
/boot:放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等
/dev:任何设备与接口设备都是以文件的形式存在于这个目录中的。
/etc:系统主要配置文件。例如人员的账号密码文件。一般用户都可以查看,但是只有root有修改权限
/home:系统默认的用户主文件夹
/lib:放置开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库
/media:放置可删除的设备,包括软盘,光盘、DVD
/mnt:暂时挂载某些额外的设备
/opt:给第三方软件放置的目录
/root:系统管理员的主文件夹
/sbin:开机、修复、还原系统所需要的命令。包括fdisk、fsck、ifconfig、init、mkfs等
/srv:service的缩写,放置网络服务启动之后所需的数据目录。如WWW、FTP等
/tmp:让一般用户或者正在执行的程序暂时放置文件的地方
/lost+found:目的在于当文件系统发生错误时,将一些丢失的片段放置到这个目录下。
/proc:这个目录本身是一个虚拟文件系统。放置的数据都是在内存中,例如系统内核、进程、外部设备的状态及网络状态等。本身不占用任何磁盘空间
/sys:也是一个虚拟文件系统,记录内核相关信息。

/usr:

说明:usr其实不是user的缩写,而是UNIX Software Resouce 的缩写,也就是UNIX 操作系统软件资源所放置的目录,而不是用户数据。所有系统默认的软件都会放置到/usr下。类似windows下的“C:\Windows\”“C:\Program files\”目录。

在这里插入图片描述

/usr/bin:绝大部分用户可使用的命令都在这里。区别于/bin是,/bin的内容与开机过程有关。
/usr/include:C/C++等程序语言的头文件与包含文件放置处
/usr/lib:包含各软件的函数库、目标文件、不被一般用户惯用的执行文件或脚本。
/usr/local:系统管理员在本机自行安装下的软件。该目录下也有bin,etc,inclue,lib的子目录
/usr/sbin:非系统正常运行所需要的系统命令。如某些网络服务器软件的服务命令
/usr/share:放置共享文件的地方。如man:在线帮助文件;doc:软件杂项的文件说明
/usr/src:内核源码

/var:

/var在系统运行后才会渐渐占用磁盘容量的目录。主要放置常态性变动的文件。

关于路径

绝对路径:由根目录(’/’)开头。
相对路径:不是(’/’)开头。

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

如:访问上一层目录下的abc目录
cd …/abc
访问当前目录下的abc目录
cd ./abc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值