热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux学习笔记01:Linux的文件权限与目录配置

一、Linux文件权限概念1、Linux文件属性在命令行输入ls–al,可列出所有的文件详细的权限与属性(包括隐藏文件,以”.”开头)。返回的文件列表分为七项内容:①文件的类型与权

一、Linux文件权限概念

1、Linux文件属性

         在命令行输入ls –al,可列出所有的文件详细的权限与属性(包括隐藏文件,以”.”开头)。返回的文件列表分为七项内容:

         ① 文件的类型与权限

         其中共有10个字符。第1个字符表示文件类型,第2-4个字符表示文件所有者的权限,第5-7个字符表示文件所属用户组的权限,第8-10个字符表示其他人对此文件的权限。权限字符依次为”rwx”(read、write、execute),依次表示可读、可写、可执行,若为”-”则表示无此项权限。例如”-rwxrwx---”,文件类型为“文件”,文件所有者和文件所属用户组权限均为“可读、可写、可执行”,其他人对此文件无任何权限。第一个字符,即文件类型,所代表含义如下:

                  [d]——目录

                  [-]——文件

                  [l]——连接文件(linkfile)

                  [b]——设备文件中可供存储的接口设备

                  [c]——设备文件中的串行端口设备

                  [s]——套接字(sockets)

                  [p]——管道(pipe)

         ② 有多少文件名连接到此节点(i-node)

         ③ 这个文件(或目录)的“所有者账号”

         ④ 这个文件所属用户组

         ⑤ 这个文件的容量大小,默认容量为B

         ⑥ 这个文件的创建文件日期或者是最近的修改日期

         ⑦ 文件名

2、改变文件属性与权限

         1) 改变所属用户组:chgrp

         chgrp [-R] groupname dirname/filename

         -R:进行递归的持续更新,也即连同子目录下的所有文件、目录

         2) 改变文件所有者:chown

         chown [-R] 账号名称[:组名] 文件或目录

         -R:进行递归的持续更新,也即连同子目录下的所有文件、目录

         3) 改变权限:chmod

         权限的设置方法有两种,分别可以使用数字或者是符号来进行权限的更改。

         ·数字类型改变文件权限

         Linux基本权限有9个,分别是owner、group、others三种身份各有的rwx。把每组权限按照二进制进行转化,拥有权限即为1,没有即为0,例如rwx为111(7),r-x为101(5)。

对应的chmod的语法为:

         chmod [-R] xyz 文件或目录

         其中,-R与chgrp中-R选项含义相同,xyz分别为三种身份按上文所述权限所代表的数字。

         ·符号类型改变文件权限

         chmod u/g/o/a +(加入)/-(除去)/=(设置) r/w/x 文件或目录

         其中,ugo分别代表user、group、others,a代表all

3、目录与文件的权限意义

         1) 权限对文件的重要性

         r:可读取此文件的实际内容

         w:可以编辑、新增或者是修改该文件的内容(但不包含删除该文件)

         x:该文件具有可以被系统执行的权限

         2) 权限对目录的重要性

         r:表示具有读取目录结构列表的权限

         w:表示具有更改该目录结构列表的权限,也就是新建新的文件与目录、删除已经存在的文件与目录、将已存在的文件或目录进行重命名、转移该目录内的文件或目录位置等权限

         x:代表用户能否进入该目录成为工作目录的用途

4、Linux文件种类与扩展名

         ·文件种类

         普通文件:一般进行访问类型的文件,由ls –al显示的属性第一个字符为[-]

         纯文本文件(ASCII):内容为我们可以直接读到的数据

         二进制文件(binary):系统可以识别的文件类型

         数据格式文件(data):有些程序在运行的过程中会读取某些特定格式的文件,安歇特定格式的文件可以被称为数据文件

         目录(directory):第一个属性为[d]

         连接文件(link):类似Windows系统下面的快捷方式,第一个属性为[l]

         设备与设备文件(device):与系统外设及存储等相关的一些文件,通常集中在/dev这个目录,通常分为块设备文件(存储数据,以提供系统随时访问的接口设备,第一个属性为[b])和字符设备文件(一些串行端口的接口设备,第一个属性为[c])

         套接字(sockets):通常被用在网络上的数据连接,第一个属性为[s]

         管道(FIFO,pipe):主要目的在解决多个程序同时访问一个文件所造成的错误问题,第一个属性为[p]

         ·Linux文件扩展名

         *.sh:脚本或批处理文件(scripts)

         *Z、*.tar、*.tar.gz、*.zip、*.tgz:经过打包的压缩文件

         *.html、*.php:网页相关文件

         ·Linux文件长度限制

         在Linux下面,使用默认的Ext2/Ext3文件系统时,针对文件名长度限制为:单一文件或目录的最大容许文件名为255个字符,包含完整路径名称及目录(/)的完整文件名为4096个字符。

         ·Linux文件名的限制

         由于Linux在文字界面下的一些命令操作关系,在设置Linux下面的文件名时,最好可以避免特殊字符,例如* ? > <; & ! [ ] | \ ’ ” ` ( ) { },因为这些符号在命令行下室友特殊含义的。文件名的开头为小数点”.”时,代表这个文件为“隐藏文件”。同时由于命令执行当中,常常会使用到-option之类的参数,所以最好避免将文件名的开头以-或+来命名。

 

二、Linux目录配置

1、Linux目录配置标准:FHS

         FHS(Filesystem Hierarchy Standard)主要目的在于规范每个特定的目录下应该要放置什么样子的数据。

  FHS是根据过去的经验一直持续改版的,FHS依据文件系统使用的频繁与否与是否允许用户随意改动,将目录定义成四种交互作用的形态。

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

  不可分享的:自己机器上运行的设备文件或者是与程序相关的socket文件等。

  不变的:跟随者distribution而不会经常变动的,例如函数库、文件说明文件、系统管理员所管理的主机服务配置文件等。

  可变动的:经常改变的数据,例如登录文件、新闻组等。



















 

可分享的(shareable)

不可分享的(unshareable)

不变的(static)

/usr(软件放置处)

/opt(第三方软件)

/etc(配置文件)

/boot(开机与内核文件)

可变动的(variable)

/var/mail(用户邮件信箱)

/var/spool/news(新闻组)

/var/run(程序相关)

/var/lock(程序相关)

         FHS针对目录树架构仅定义出三层目录下面应该放什么数据:

         ·/(root,根目录):与开机系统有关;

         ·/usr(UNIX software resource):与软件安装/执行有关;

         ·/var(variable):与系统运作过程有关。

         根目录的意义与内容:根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等操作有关。FHS建议:根目录(/)所在分区越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区上,保持根目录越小越好,如此不但性能较好,根目录所在的文件系统也较不容易发生问题。

         因此,FHS定义出根目录(\)下的子目录:

         ·/bin:放置的是在单用户维护模式下还能够被操作的命令

         ·/boot:主要放置开机时会用到的文件,包括Linux内核文件以及开机所需配置文件等

         ·/dev:Linux系统上任何设备与接口都是以文件的形式存在于此目录中

         ·/etc:系统主要的配置文件几乎都放置于这个目录内,比较重要的有/etc/inittab、/etc/init.d(放置所有服务的默认启动脚本)、/etc/modprobe.conf、/etc/X11(放置与X Window有关的各种配置文件,尤其是xorg.conf这个XServer配置文件)、/etc/fstab、/etc/sysconfig、/etc/xinetd.d(super daemon管理的各项服务的配置文件目录)等

         ·/home:系统默认的用户主文件夹

         ·/lib:放置开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库

         ·/media:放置可删除的设备

         ·/mnt:暂时挂载某些额外的设备

         ·/opt:给第三方软件放置的目录

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

         ·/sbin:放置开机过程中所需要的,包括开机、修复、还原系统所需要的命令

         ·/srv:一些网络服务启动之后,这些服务所需要取用的数据目录

         ·/tmp:一般用户或者正在执行的程序暂时放置文件的地方

2、目录树

         目录树的主要特性有:

         ·目录树的起始点为根目录(/,root)

         ·每一个目录不只能使用本地端的文件系统,也可以使用网络上的文件系统

         ·每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的

3、绝对路径与相对路径

         绝对路径:由根目录(/)开始写起的文件名或目录名称

         相对路径:相对于目前路径的文件名写法

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

         ..:代表上一层目录,也可以使用../来表示


推荐阅读
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
author-avatar
陈佩儒61473
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有