欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一、Linux文件权限与目录配置

程序员文章站 2022-05-11 20:23:34
...

 

行文结构如下:

  1. 用户和用户组
  2. Linux文件权限概念
  3. Linux目录配置
  4. 重点回顾

1、用户与用户组

        Linux是个多用户、多任务的系统,可能有多人同时使用这台机器进行工作,为了考虑每个人的隐私和工作环境,“文件所有者”角色既用户角色显得相当重要。另外,如果有2个组同时在一台机器上开发,但是这2个组有竞争关系。需要相互隔离对方,杜绝访问自己的资源,但是自己组成员可以访问本组资源。这就引出了用户与用户组的概念。

        在Linux系统中,每一个文件都有用户(User)、用户组(Group)、其他人(Others)3中个别权限。当然,从角色角度来看,还有一个终极Boss,那就是root,Root权限可以去系统中任意想去的地方。所以在使用root操作时,要小心误操作。

       Linux系统中账号都记录在/etc/passwd文件内,个人密码记录在/etc/shadow,组名记录在/etc/group内,不要随便删除这3个文件。

2、Linux文件权限概念

2.1、Linux文件属性

文件属性表示该文件的类型,是否可读、可写、可执行。比如下图:

一、Linux文件权限与目录配置

是Linux根目录下的文件

dr-xr-xr-x. 24 root    root     4096 Sep 22 16:06 .
dr-xr-xr-x. 24 root    root     4096 Sep 22 16:06 ..
-rw-r--r--   1 root    root        0 Sep 11 12:53 .autofsck
-rw-r--r--   1 root    root        0 Nov  9  2016 .autorelabel
dr-xr-xr-x.  2 root    root     4096 Nov  9  2016 bin
dr-xr-xr-x.  4 root    root     4096 Nov 10  2016 boot
drwxr-xr-x   2 root    root     4096 Nov  9  2016 data

上面的前十位表示该文件的权限内容,第一个[d]表示这是一个目录[-]表示这是一个文件,后面的三个三个一组,从左到右分别表示用户的权限用户组的权限其他人的权限[r]表示可读[w]表示可写[x]表示可执行[-]表示此项权限不存在

紧接着的数字表示连接数,之后的root,root表示文件所属的用户和文件所属的用户组的名称。之后的数字表示这个文件的大小。再后面是文件的最后修改时间,最后是文件的名称。

TIPS:

如果文件前面有.,代表这个文件为隐藏文件

如果目录的[x]为空,表示只可访问到该目录,不能进入到目录中访问其子文件

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

chgrp:改变文件所属用户组
chown:改变文件所有者
chmod:改变文件权限

  一、Linux文件权限与目录配置

 

使用chgrp和chown的后,temp文件的用户和用户组从root,root变成了bin,users。

另外在[cp]命令复制文件的时候,也会相应复制其用户和用户权限

cp的命令格式为:

cp 源文件 目标文件

 接上面图片,改变temp目录的文件权限

一、Linux文件权限与目录配置

发现,修改temp文件的权限为:用户可读可写可执行(4+2+1),用户组可读可写(4+2),其他人可读可写(4+2)

TIPS:

目录权限:
系统有user用户,该用户不支持root用户组,则user用户可以查询此目录下的文件列表,但是没有x权限,所以user用户不能切换到此目录内部。

2.3 、Linux文件种类和扩展名

文件种类:

普通文件分为:二进制文件、纯文本文件、数据格式文件;

目录:在Linux中,一切皆文件,目录也不例外;

连接文件:类似于Windows中的快捷方式文件;

设备与设备文件:分为Block块设备文件、character字符设备文件,通常在/dev目录下;

套接字文件:网络传输数据的文件;

管道文件:FIFO文件,用于解决多个程序同时访问一个文件所造成的错误问题。 

3、Linux目录配置

3.1、Linux目录配置标准:FHS(FileSystem Hierarchy Standard)

我理解:主要是定义一套标准,让不同用户在使用时,按照这套标准新建,删除,放置目录和文件等操作,而不是随意新建,删除,放置文件和目录,造成系统混乱的局面。

其中所有文件的根文件时"/",任何其他文件都是在它基础上挂载的,下面介绍下部分文件名称及其作用:

/:根目录,与开机、还原、系统修复有关,FHS标准要求:/所在的分区应该越小越好,且应用程序安装的软件最好不要和根目录放在你同一个分区,保持根目录越小越好。
/bin:这个文件下存放的是一些系统常用命令,如cat,ls,chmod,data,mkdir,MV,cp等。
/boot:这个目录主要放置开机时会使用到的文件,包括内核文件和开机的配置文件等
/dev:任何设备和设备接口都是以文件形式存在这个目录中的。
/etc:系统的主要的配置文件都放在这个文件中,比如人员的账号,密码。各种服务的起始文件等。
/home:系统默认的用户主文件夹,在你创建一个一般用户账号时,默认的用户主文件夹都会规范到这里来。文件夹中有两种代号:~:代表目前用户的主文件夹,~dmtsai:代表dmtsai的主文件夹。
/lib:系统加载所需要的函数库都在这个目录下了。
/opt:这是给第三方软件放置的目录【我本来以为第三方软件指的是jdk,tomcat这种,后来查看这个目录下没有,感觉这个是针对系统的第三方软件,比如像桌面程序?大概jdk,tomcat这种是叫应用软件吧?有大神知道,
还请指导下】 /usr:usr目录不是user的简称!!!而是UNIX Software Resource的简称,也就是UNIX操作系统软件资源所放置的目录,并不是用户的数据。类似于Windows下的C:/Windows和C:/Program Files两个目录的综合体, 我们安装的jdk和tomcat等应用软件,就是安装在/usr/local下。 /var:如果说/usr是在软件安装的过程中占用硬盘容量的话,那么/var就是在系统运行后逐渐占用硬盘用量的,其里面是针对常态性变动的文件,比如缓存,登录文件以及运行时产生的文件。

  

3.2、目录树(directory tree)

一、Linux文件权限与目录配置

3.3、绝对路径和相对路径

绝对路径:由根目录/开始写起的文件名活目录名称,例如:/home/temp

相对路径:相对于目前路径的文件名写法。例如“./home/dmstai”,反正开头不是/就是相对路径的写法。

所以当你cd ..的时候,就是相对于当前目录的上一级目录,而如果现在由 /home/helloworld和/home/20170920temp这两个目录,通过cd ../helloworld/就可以进入到同级目录下的helloworld下。这就是相对路劲

一、Linux文件权限与目录配置

 

同样 ./run.sh 表示执行当前目录下的run.sh的脚本。

4、重点回顾:

  • Linux下权限依次分用户、用户组、其他人三种身份。
  • ls -al 显示所有文件的详细信息,包括:10位长度的权限,文件连接数,文件容量,文件最后修改日期,文件名。
  • 如果文件名前多一个".",代表这个文件时隐藏文件
  • 对文件来说,权限分为:r:可读,w:可写,x:可执行文件(类似windows的exe),
  • 对目录来说,权限分为:r:可读目录中的内容,w:可修改目录中的内容,x:可访问这个目录,但是不能访问目录内的内容
  • FHS定义的三层主目录为:/,/usr, /var

参考书籍:《鸟哥的Linux私房菜基础篇第三版》