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


 

行文结构如下:

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根目录下的文件

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:改变文件权限

  

 

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

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

cp的命令格式为:

cp 源文件 目标文件

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

发现,修改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下。这就是相对路劲

 

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

4、重点回顾:

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

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

相关内容