正确理解Linux下的文件属性
Linux文件的属性(上半部分)
Linux⽂件的属性(上半部分)第⼋节 Linux ⽂件的属性(上半部分)标签(空格分隔):Linux实战教学笔记第1章 Linux中的⽂件1.1 ⽂件属性概述(ls -lhi)linux⾥⼀切皆⽂件Linux系统中的⽂件或⽬录的属性主要包括:索引节点(inode),⽂件类型,权限属性,链接数,所归属的⽤户和⽤户组,最近修改时间等内容:⽂字解释:第⼀列:inode索引节点编号(相当于⼈的⾝份证,全国唯⼀)第⼆列:⽂件类型及权限第⼆列共11个字符:其中第⼀个字符为⽂件类型,随后的9个字符为⽂件的对应权限,最后⼀个字符点号“.”是和selinux有关的⼀个标识;第三列:硬链接个数(详细参看ln命令的讲解);相当于超市的多个⼊⼝,可以从不同的⽂件⼊⼝进⼊⽂件,还可以互为备份(消防通道)第四列:⽂件或⽬录所属的⽤户⽂件的所有者(属主);linux⾥⾯⽂件和程序的存在必须要有⽤户和组满⾜相应的存在需求。
第五咧:⽂件或⽬录所属的组第六列:⽂件或⽬录的⼤⼩;第七⼋九列:⽂件或⽬录的修改时间:默认⽉⽇时分第⼗列:实际的⽂件或⽬录名⽂件名不算⽂件的属性下⾯我们以chensiqi⽂件为例进⾏说明,具体列的内容参考下上⾯的图:1736707 -rwx-xr-x- 1 root root 35 Oct 28 11:29 chensiqiinode索引节点编号:1736707⽂件类型,⽂件类型是-,表⽰这是⼀个普通⽂件;⽂件权限:⽂件权限是rwxr-xr-x,表⽰⽂件属主可读,可写,可执⾏,⽂件归属的⽤户组可读可执⾏,其他⽤户可执⾏。
硬链接个数:表⽰chensiqi这个⽂件没有其它的硬链接,因为连接数是1,就是他本⾝;⽂件属主:这个⽂件所属的⽤户,这⾥意思是chensiqi⽂件被root⽤户拥有,注意,是第⼀个root;⽂件属组:这个⽂件所属的⽤户组,在这⾥是root⽤户组,是显⽰信息⾥的第⼆个root⽂件⼤⼩:⽂件⼤⼩是35个字节⽂件修改时间:这⾥的时间是该⽂件最后被更新(包括⽂件创建,内容更新,⽂件名更新等)的时间,可⽤如下命令查看⽂件的修改,访问,创建的时间1.2 索引节点inode1.2.1 inode 概述硬盘要存储数据,⾸先要分区,然后格式化创建⽂件系统,最后挂载,才能存数据。
LINUX系统中的文件名和文件种类以及文件权限详解
Linux文件种类与副文件名一直强调一个概念,那就是:任何装置在Linux底下都是文件,不仅如此,连资料沟通的介面也有专属的文件在负责~所以,你会瞭解到,Linux的文件种类真的很多~除了前面提到的一般文件(-)与目录文件(d)之外,还有哪些种类的文件呢?* 文件种类:我们在刚刚提到使用‘ls -l’观察到第一栏那十个字元中,第一个字元为文件的类型。
除了常见的一般文件(-)与目录文件(d)之外,还有哪些种类的文件类型呢?* 正规文件(regular file ):就是一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字元为 [ - ],例如 [-rwxrwxrwx ]。
另外,依照文件的内容,又大略可以分为:o 纯文字文件(ASCII):这是Linux系统中最多的一种文件类型啰,称为纯文字文件是因为内容为我们人类可以直接读到的资料,例如数字、字母等等。
几乎只要我们可以用来做为设定的文件都属于这一种文件类型。
举例来说,你可以下达‘ cat ~/.bashrc ’就可以看到该文件的内容。
(cat 是将一个文件内容读出来的指令)o 二进位文件(binary):还记得我们在‘ 第零章、计算机概论 ’里面的软体程式的运作中提过,我们的系统其实仅认识且可以执行二进位文件(binary file)吧?没错~你的Linux当中的可执行文件(scripts, 文字型批次文件不算)就是这种格式的啦~举例来说,刚刚下达的指令cat就是一个binary file。
o 资料格式文件(data):有些程式在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为资料文件 (data file)。
举例来说,我们的Linux在使用者登入时,都会将登录的资料记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于一种特殊格式的文件。
linux中file命令的用法
linux中file命令的用法file命令是一个常用的Linux命令,用于确定给定文件的类型。
它通过读取文件的魔数(magic number)或文件头来判断文件的类型,并且可以识别并显示大多数常见文件类型的信息。
file命令在Linux系统中非常强大且使用方便,通过它我们可以轻松地获取文件的详细信息。
使用file命令非常简单,只需要在终端中输入"file"命令,后面跟上要分析的文件即可。
例如,要查看名为example.txt的文件的类型,只需运行以下命令:$ file example.txtfile命令会分析该文件,并将结果输出到终端。
输出的结果可能包含文件的类型、所属类别以及其他相关信息。
file命令可以识别并显示许多不同类型的文件,例如常见的文本文件、二进制文件、压缩文件、目录、各种脚本文件等。
下面是file命令可能返回的一些常见文件类型示例:1. ASCII text:表示文件是ASCII文本文件,只包含文本字符。
2. ISO-8859 text:表示文件是ISO-8859编码的文本文件,一种常见的字符编码格式。
3. UTF-8 Unicode text:表示文件是UTF-8编码的Unicode文本文件,一种常见的字符编码格式。
4. ELF 64-bit executable:表示文件是64位的可执行文件,通常是Linux上的二进制可执行文件。
5. PNG image data:表示文件是PNG格式的图像文件。
6. gzip compressed data:表示文件是经过gzip压缩的文件。
7. directory:表示文件是一个目录。
除了返回文件的类型外,file命令还可以提供其他一些有关文件的信息,例如文件的大小、修改时间、访问权限等。
该命令还可以对一组文件进行批量分析,只需将要分析的文件名以空格进行分隔即可。
另外,file命令还支持使用通配符来分析文件,例如使用"*"来表示所有文件,或者使用"*.txt"来表示所有以.txt结尾的文件。
Linux虚拟文件系统sysfs之属性文件attribute整理(一)
Linux虚拟文件系统sysfs之属性文件attribute整理(一)sysfs接口函数到建立_DEVICE_ATTR架构图:最近在弄Sensor驱动,看过一个某厂家的成品驱动,里面实现的全都是sysfs接口,hal层利用sysfs生成的接口,对Sensor进行操作。
说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \ struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)函数宏DEVICE_ATTR内封装的是__ATTR(_name,_mode,_show,_stroe)方法,_show表示的是读方法,_stroe表示的是写方法。
当然_ATTR不是独生子女,他还有一系列的姊妹__ATTR_RO宏只有读方法,__ATTR_NULL等等如对设备的使用 DEVICE_ATTR ,对总线使用 BUS_ATTR ,对驱动使用 DRIVER_ATTR ,对类别 (class) 使用 CLASS_ATTR, 这四个高级的宏来自于<include/linux/device.h>DEVICE_ATTR 宏声明有四个参数,分别是名称、权限位、读函数、写函数。
其中读函数和写函数是读写功能函数的函数名。
如果你完成了DEVICE_ATTR函数宏的填充,下面就需要创建接口了例如:static DEVICE_ATTR(polling, S_IRUGO | S_IWUSR, show_polling, set_polling);static struct attribute *dev_attrs[] = {&dev_attr_polling.attr,NULL,};当你想要实现的接口名字是polling的时候,需要实现结构体struct attribute *dev_attrs[]其中成员变量的名字必须是&dev_attr_polling.attr然后再封装static struct attribute_group dev_attr_grp = {.attrs = dev_attrs,};在利用sysfs_create_group(&pdev->dev.kobj, &dev_attr_grp);创建接口通过以上简单的三个步骤,就可以在adb shell 终端查看到接口了。
linux文件后缀名解释
linux文件后缀名解释
Linux系统中的文件后缀名通常不会像Windows系统那样直接显示在文件名中。
相反,Linux 系统中的文件后缀名是以隐藏属性的方式存在的。
可以使用ls命令的“-a”选项来查看文件的完整名称,包括隐藏的后缀名。
常见的Linux文件后缀名包括:
1..bin:二进制文件,包含可执行代码
2..c:C语言源代码文件
3..h:C语言头文件
4..cpp:C++语言源代码文件
5..hpp:C++语言头文件
6..sh:Shell脚本文件
7..txt:文本文件
8..conf:配置文件
9..xml:XML格式文件
10..json:JSON格式文件
11..log:日志文件
12..out:输出文件
13..err:错误输出文件
14..pdf:PDF格式文件
15..jpg:JPG格式图片文件
16..png:PNG格式图片文件
1
17..gif:GIF格式图片文件
18..odp:OpenDocument格式演示文稿文件
19..ods:OpenDocument格式电子表格文件
20..odt:OpenDocument格式文本文件
21..ttf:TrueType字体文件
22..desktop:桌面快捷方式文件
23..rpm:Red Hat Package Manager软件包文件
24..deb:Debian软件包文件
25..tar.gz:压缩的tar格式文件
26..zip:压缩的zip格式文件
27..rar:压缩的rar格式文件
28..7z:压缩的7z格式文件
2。
linux 中 fd概念
Linux中fd概念
在Linux中,fd代表文件描述符(File Descriptor)。
文件描述符是一个用于访问文件或输入/输出设备的整数值。
它是对打开文件或设备的引用,可以用于读取、写入或操作文件。
Linux中的文件描述符有以下几个重要的特点:
1.标准文件描述符:在Linux系统中,有三个标准文件描述符预先定义:
●0:标准输入(stdin),通常关联到键盘输入。
●1:标准输出(stdout),通常关联到屏幕输出。
●2:标准错误(stderr),通常关联到屏幕输出,用于打印错误消
息。
2.数值表示:文件描述符以非负整数形式表示,其中0、1和2是预留给标准文件描述符的。
其他的文件描述符从3开始递增。
3.文件描述符的用途:文件描述符用于访问各种类型的文件、设备或管道。
它可以用于读取、写入、关闭、复制、移动文件位置以及其他文件操作。
4.文件描述符的操作:在Linux中,可以使用系统调用函数(如open、read、write、close等)来创建、操作和关闭文件描述符。
5.文件描述符的重定向:可以通过重定向操作符将文件描述符重定向到其他文件或设备。
例如,将输出重定向到文件中:command > file.txt,将错误输出重定向到文件中:command 2> error.txt。
总而言之,文件描述符是Linux中用于访问文件和设备的引用,它提
供了对文件的读取、写入和操作的能力,并且可以通过重定向来改变文件描述符的输入和输出目标。
linux操作系统管理文件和权限的实训总结
linux操作系统管理文件和权限的实训总结1. 引言1.1 概述Linux操作系统是一款广泛应用于服务器和个人计算机的开源操作系统。
其强大的文件管理和权限设置功能使得用户能够更好地控制和保护文件的安全性。
本篇长文将总结在实训中所学到的Linux操作系统管理文件和权限的相关知识和技巧。
1.2 文章结构本文分为四个部分:引言、Linux操作系统管理文件和权限的实训总结、实训心得与体会以及结论。
在本部分(引言)中,将对文章进行简要介绍,并概括说明后续内容。
1.3 目的本文旨在通过对Linux操作系统管理文件和权限的实际操作实训进行总结,加深对文件管理和权限设置的理解,提高对Linux命令行工具使用技巧的掌握,并探讨在实际应用中遇到的问题及其解决方案。
最终目标是能够提供有价值且实用性强的思考和建议,以便读者能够更好地理解和运用Linux操作系统中关于文件管理和权限设置方面的知识。
2. linux操作系统管理文件和权限的实训总结2.1 实训背景:在Linux操作系统中,文件的管理和权限设置是非常重要的操作。
正确地管理文件可以提高工作效率和数据安全性。
本次实训旨在通过学习Linux命令行工具,并运用所学知识进行实践来掌握文件管理和权限设置的方法和技巧。
2.2 文件管理:2.2.1 创建和删除文件:创建文件是日常工作中常见的任务。
我们可以使用touch命令来创建空白文件,例如:touch file.txt。
而删除文件则可以使用rm命令,如:rm file.txt。
- 在实践过程中,我学会了如何快速地创建空白文件,并且了解到rm命令可以搭配一些参数来批量删除不需要的文件。
2.2.2 复制和移动文件:复制或移动文件是进行整理与备份时常见的操作。
cp命令用于复制文件,例如:cp file.txt newfile.txt 将file.txt复制为newfile.txt。
而mv命令用于移动或重命名文件,例如:mv file.txt /path/to/newdirectory/ 或mv oldfile.txt newfile.txt。
青蛙学Linux—用户、组、权限和文件属性
青蛙学Linux—⽤户、组、权限和⽂件属性1、⽤户和组1.1、⽤户⾓⾊在Linux下有以下三种⾓⾊⽤户:1. 超级⽤户:拥有对系统的最⾼管理权限的⽤户,默认⽤户名为root。
需要注意的是,与Windows下的超级管理员Administrator不同,root⽤户在Linux下拥有最⾼的权限,你可以使⽤root⽤户运⾏rm –rf /*命令删除整个系统,⽽Administrator⽤户不允许删除系统⽂件(其实Windows下的最⾼权限⽤户为System,只是Windows限制了使⽤System⽤户登录的⾏为)。
2. 普通⽤户:只能操作⾃⼰⽬录下的⽂件或者经过授权的⽂件,能够登录操作系统。
3. 虚拟⽤户:也叫伪⽤户,⽆法登录操作系统。
这类⽤户的存在主要是为了系统管理的⽅便,满⾜相应的系统进程对于⽂件属主(即权限)的要求。
这类⽤户指向的shell为/sbin/nologin,使⽤该shell的⽤户⽆法登录系统且⽆法通过su命令切换到该⽤户。
1.2、⽤户和组之间的关系在Linux系统下,当⼀个⽤户被创建时,系统将创建⼀个与⽤户同名的组,该⽤户为该组中的唯⼀⽤户。
当然,⼀个⽤户也可以加⼊其他的组。
⽤户和组具有以下⼏种关系:⼀对⼀:即⼀个⽤户可以存在⼀个组中,同时也是该组中的唯⼀成员⼀对多:即⼀个⽤户可以存在多个⽤户组中,那么此⽤户具有多个组的共同权限多对⼀:多个⽤户可以存在⼀个组中,这些⽤户具有和组相同的权限多对多:多个⽤户可以存在多个组中,其实就是上⾯三个对应关系的扩展1.3、⽤户和组的相关配置⽂件1.3.1、/etc/passwd该⽂件是系统的⽤户配置⽂件,是⽤户管理中最重要的⼀个⽂件。
记录了系统中每个⽤户的基本属性,对所有⽤户可读,但只有root⽤户可写。
以下来分析下该⽂件的内容(仅截取⽂件的⼀部分):⽂件中的每⾏内容以冒号分隔,每个字段表⽰的具体含义如下:①:⽤户名②:密码,但是⽤户真正的密码不是保存在这⾥,⽽是在另外⼀个⽂件③:UID,⽤户ID④:GID,⽤户所属的组的ID⑤:⽤户注释⑥:⽤户家⽬录⑦:⽤户的默认shell1.3.2、/etc/shadow该⽂件可以称为/etc/passwd的影⼦⽂件,存储的就是经过加密的⽤户密码。
文件属性详解
linux中各种文件类型普通文件(- regular file)(1)文本文件。
文件中的内容是由文本构成的,文本指的是ASCII码字符。
文件里的内容本质上都是数字(不管什么文件内容本质上都是数字,因为计算机中本身就只有1和0),而文本文件中的数字本身应该被理解为这个数字对应的ASCII码。
常见的.c 文件, .h文件 .txt文件等都是文本文件。
文本文件的好处就是可以被人轻松读懂和编写。
所以说文本文件天生就是为人类发明的。
(2)二进制文件。
二进制文件中存储的本质上也是数字,只不过这些数字并不是文字的编码数字,而是就是真正的数字。
常见的可执行程序文件(gcc编译生成的a.out,arm-linux-gcc编译连接生成的.bin)都是二进制文件。
(3)对比:从本质上来看(就是刨除文件属性和内容的理解)文本文件和二进制文件并没有任何区别。
都是一个文件里面存放了数字。
区别是理解方式不同,如果把这些数字就当作数字处理则就是二进制文件,如果把这些数字按照某种编码格式去解码成文本字符,则就是文本文件。
(4)我们如何知道一个文件是文件文件还是二进制文件?在linux系统层面是不区分这两个的(譬如之前学过的open、read、write等方法操作文件文件和二进制文件时一点区别都没有),所以我们无法从文件本身准确知道文件属于哪种,我们只能本来就知道这个文件的类型然后用这种类型的用法去用他。
有时候会用一些后缀名来人为的标记文件的类型。
(5)使用文本文件时,常规用法就是用文本文件编辑器去打开它、编辑它。
常见的文本文件编辑器如vim、gedit、notepad++、SourceInsight等,我们用这些文本文件编辑器去打开文件的时候,编辑器会read读出文件二进制数字内容,然后按照编码格式去解码将其还原成文字展现给我们。
如果用文本文件编辑器去打开一个二进制文件会如何?这时候编辑器就以为这个二进制文件还是文本文件然后试图去将其解码成文字,但是解码过程很多数字并不对应有意义的文字所以成了乱码。
linux文件的基本属性
linux文件的基本属性
linux文件的基本属性主要包括:
1. 文件名:文件的名字,也可以称之为“标签”。
2. 文件类型:文件可以分为普通文件、目录文件和设备文件等不同类型。
3. 访问权限:每个文件都有三种访问权限,即读权限、写权限和执行权限,用户可以通过这三种权限来控制对文件的访问。
4. 文件大小:每个文件都有其自身的大小。
5. 创建时间:每个文件都有其创建时间,该时间是文件被创建的时间。
6. 修改时间:每个文件都有其修改时间,该时间是文件被最后一次修改的时间。
Linux系统下的ELF文件分析
Linux系统下的ELF文件分析摘要:随着linux系统的发展,elf成了十分重要的可执行文件格式。
本文介绍了eIf文件的格式,并在此基础上分析出eIf文件的特性。
关键词:elf文件:平台相关PIC1.引言ELF(Executable and Linkable Format)IN可执行连接文件格式.是LinuxSVR4和Solaris2,0默认的目标文件格式,目前标准接口委员会TIS已将ELF标准化为一种可移植的目标文件格式,运行于32一bitIntel体系微机上,可与多种操作系统兼容。
分析elf文件有助于理解一些重要的系统概念,例如程序的编译和链接,程序的加载和运行等2.ELF文件格式2.1 ELF文件的类型ELF文件主要有三种类型(1)可重定位文件包含了代码和数据.可与其它ELF文件建立一个可执行或共享的文件:(2)可执行文件时可直接执行的程序:(3)共享目标文件包括代码和数据,可以在两个地方链接。
第一,连接器可以把它和其它可重定位文件和共享文件一起处理以建立另一个ELF文件;第二,动态链接器把它和一个可执行文件和其它共享文件结合在一起建立一个进程映像。
2.2 ELF文件的组织ELF文件参与程序的连接(建立一个程序)和程序的执行(运行一个程序),编译器和链接器将其视为节头表(section headertable)描述的一些节(section)的集合,而加载器则将其视为程序头表(program header table)描述的段(segment)的集合,通常一个段可以包含多个节。
可重定位文件都包含一个节头表.可执行文件都包含一个程序头表。
共享文件两者都包含有。
为此,ELF文件格式同时提供了两种看待文件内容的方式,反映了不同行为的不同要求。
2.3文件头EIF头在在程序的开始部位,作为引路表描述整个ELF的文件结构,其信息大致分为四部分:一是系统相关信息,二是目标文件类型,三是加载相关信息,四是链接相关信息其中系统相关信息包括elf文件魔数(标识elf文件),平台位数,数据编码方式,elf头部版本,硬件平台e machine,目标文件版本e_version,处理器特定标志e ftags:这些信息的引入极大增强了elf文件的可移植性使交叉编译成为可能。
linuxls-l各个字段的含义
linuxls-l各个字段的含义以root的家⽬录为例:可以看到,⽤ls -l命令查看某⼀个⽬录会得到⼀个7个字段的列表。
第1⾏:总计(total)Total后⾯的数字是指当前⽬录下所有⽂件所占⽤的空间总和。
可以使⽤ls –lh查看,也可使⽤ls –alh查看。
第1字段: ⽂件属性字段-rw-r--r-- 1 root root 762 07-29 18:19 exit⽂件属性字段总共有10个字母组成;第⼀个字符代表⽂件的类型。
字母“-”表⽰该⽂件是⼀个普通⽂件字母“d”表⽰该⽂件是⼀个⽬录,字母"d",是dirtectory(⽬录)的缩写注意:⽬录或者是特殊⽂件,这个特殊⽂件存放其他⽂件或⽬录的相关信息字母“l”表⽰该⽂件是⼀个链接⽂件。
字母"l"是link(链接)的缩写,类似于windows下的快捷⽅式字母“b”的表⽰块设备⽂件(block),⼀般置于/dev⽬录下,设备⽂件是普通⽂件和程序访问硬件设备的⼊⼝,是很特殊的⽂件。
没有⽂件⼤⼩,只有⼀个主设备号和⼀个辅设备号。
⼀次传输数据为⼀整块的被称为块设备,如硬盘、光盘等。
最⼩数据传输单位为⼀个数据块(通常⼀个数据块的⼤⼩为512字节)字母为“c”表⽰该⽂件是⼀个字符设备⽂件(character),⼀般置于/dev⽬录下,⼀次传输⼀个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最⼩单位为⼀个字节。
字母为“p”表⽰该⽂件为命令管道⽂件。
与shell编程有关的⽂件。
字母“s”表⽰该⽂件为sock⽂件。
与shell编程有关的⽂件。
在此重申下⽂件链接这个重要概念:链接⽂件的概念类似于windows⾥的快捷⽅式。
多个链接⽂件同时指向⼀个“源⽂件”。
链接⽂件分为硬链接或符号链接两种。
在Linux的⽂件系统中,保存在磁盘分区中的⽂件不管是什么类型都给它分配⼀个编号,称为索引节点号inode 。
软连接,其实就是新建⽴⼀个⽂件,这个⽂件就是专门⽤来指向别的⽂件的(那就和windows 下的快捷⽅式的那个⽂件有很接近的意味)。
Linux文件属性
管道文件主要用来解决多个程序同时访问一个文件所造成的错误。
2. Linux文件属性
对于Linux系统的文件来说,其基本的属性有三种:读(r/4)、写(w/2)、执行(x/1)。不同的用户对于文件也拥有不同的读、写和执行权限。
读权限:表示具有读取目录结构的权限,可以查看和阅读文件。
数字表示法(也叫八进制表示法):
我们将read/write/excute用数字表示就是:
read:r:4
write:w:2
excute:x:1
没有权限:-:0
我们用八进制表示:
---:0
--x:1
-w-:2
-wx:3
r--:4
r-x:5
-wx:6
rwx:7
因此,rwx=4+2+1=7,r-x=4+0+1=5。
数据格式的文件(Data):有些程序在运行过程中会读取某些特定格式的文件,这些特定格式的文件可以称为数据文件。比如,Linux用户在登陆系统时,会将登陆数据记录在/var/log/wtmp文件内,这个文件就是一个数据文件。
② 目录文件(directory)(第一个属性用“d”表示)
目录文件就是目是一个目录文件,属主和属组都为root,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。
4. 更改文件属性
① chgrp:更改文件属组
chgrp [-R] 属组名文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
第7章 Linux文件系统
Minix:最古老、最可靠的文件系统。 Xia:minix的修正版。 Ext:ext2的老版本。 Ext2:ext2诞生与1993年,当前最常用的 Linux文件系统。功能强大,方便安全。 Ext3:ext2+log是linux通用的文件系统, 是ext2的增强版本,它强化了系统的日志功 能。
图7-2主文件夹的快捷菜单 Linux基础与应用
选中其中相应菜单项可对文件、目录进行打开 、复制、重命名、删除、修改属性、创建链接等操 作。另外,选中某个文件或文件夹后也可以点击菜 单栏中的“编辑”弹出下拉菜单也可以完成上述操 作 。
2.查找文件 在GNOME桌面环境下查找文件,依次 单击“位置”→“查找文件”菜单项,打开 “搜 Linux基础与应用 索文件”窗口 ,见图7-3。
Linux基础与应用
3.访问权限的表示
字母表示 数字表示法 为了使用方便简捷,权限也可以 用数字表示。
Linux基础与应用
d rwxrwxrwx
第7章 Linux文件系统
7.1 Linux文件系统概述 7.2 桌面环境下文件、目录基本操作 7.3 文件、目录权限管理 7.4 Linux中的硬盘 7.5 挂载文件系统 7.6 文件的归档压缩 7.7 磁盘配额管理
Linux基础与应用
7.1 Linux文件系统概述
从资源管理角度来看,操作系统是 计算机中软、硬件资源管理者。其中软 件资源管理部分称为文件系统,主要 负责信息的存储、检索、更新、共享 和保护。
Linux基础与应用
7.1.1 Linux文件
文件是操作系统用来存储文件信息的基本结构, 它是操作系统在分区上保存信息的方法和数据结构 。 Linux系统中的文件和Windows系统中的文件一 样,也包括文件名和扩展名。若文件名的第1个字符 为“.”,表示该文件为隐藏文件。Linux系统中文件 名是区分大小写的,而Windows中文件名字是保留 大小写但不区分。 使用“ls –l”命令显示文件列表时,共显示9个部 分,其中第一部分表示文件的类型和权限,而第1个 字符代表文件的类型, 可以为p、d、l、s、c、b和-, 各文件类型分别如下:
简述linux4个账号系统文件及其字段的含义
Linux 账号系统文件及字段含义简述Linux 系统是一款非常流行的操作系统,其中账号系统是其重要的组成部分之一。
在 Linux 中,账号系统文件是用于存储和管理用户账号信息的文件。
这些文件通常位于 /etc/ 目录下,包括user.conf、passwd、group 和 shell 四个文件。
本文将简述这四个文件及其字段的含义。
1. user.conf 文件user.conf 文件是用于配置用户账号信息的文件。
它通常包含以下内容:```[user_list]name=usernamepassword=passwordshell=/path/to/shell```其中,[user_list] 部分表示用户列表,其中每个用户用冒号分隔。
name 字段表示用户名,password 字段表示用户密码,shell 字段表示用户所使用的 shell。
2. passwd 文件passwd 文件是用于存储用户密码信息的文件。
它通常包含以下内容:```name=usernamepassword=password```其中,[user_list] 部分表示用户列表,其中每个用户用冒号分隔。
name 字段表示用户名,password 字段表示用户密码。
3. group 文件group 文件是用于存储用户组信息的文件。
它通常包含以下内容:```[group_list]groupname=groupnamemembers=username1 username2 username3```其中,[group_list] 部分表示用户组列表,其中每个用户组用冒号分隔。
groupname 字段表示用户组名称,members 字段表示用户组中的成员用户名。
4. shell 文件shell 文件是用于存储用户 shell 信息的文件。
它通常包含以下内容:```[user_list]shell=/path/to/shell```其中,[user_list] 部分表示用户列表,其中每个用户用冒号分隔。
文件系统属性详解
⽂件系统属性详解⽆论在dos下还是在windows下,所有磁盘⽂件的系统属性⼀般分为:系统属性(s),隐含属性(h),只读属性(r),存档属性(a),这些属性到底有什么特点呢?⽂件系统属性详解:1、系统属性(s),是表⽰⽂件是否为系统⽂件的属性。
具有系统属性的⽂件是系统专⽤⽂件,也是区别⾮系统⽂件的标志。
系统属性的特点:⽂件本⾝是隐藏起来的,不能⽤列出⽬录清单,也不能被删除、拷贝、更名。
如果是可执⾏⽂件,设置了系统属性,也不能执⾏。
2、隐含或隐藏属性(h),⽤来阻⽌⽂件在列表显⽰的属性,具有隐藏属性的⽂件,特点是:⽂件本⾝是隐藏的,dos系统命令不能列出清单,也不能删除,拷贝和更名。
如果是可执⾏⽂件不影响执⾏。
3、只读属性(r),⽤来保护⽂件不被删除和修改具有只读属性的⽂件,特点是:只能读⼊内存,也能拷贝但是不能⽤dos系统命令修改,也不能删除,有防⽌意外删除的意思。
可执⾏⽂件不影响执⾏。
4、存档属性(a),⽤来表⽰⽂件被写⼊时是否被关闭,如果⽂件具有这种属性,则表明⽂件写⼈时被关闭。
各种⽂件⽣成时,dos系统均会⾃动设置为存档属性,只有具备存档属性的⽂件,才可以被列⽬录,删除,修改,更名,拷贝等等操作。
通过这篇⽂章你应当对,⽂件系统属性有全新的认识了吧。
其实很简单,只要认真看了这篇⽂章,你就完全明⽩了。
Linux 内核/sys ⽂件系统介绍sysfs 是 Linux 中设计较新的⼀种虚拟的基于内存的⽂件系统,它的作⽤与 proc 有些类似,但除了与 proc 相同的具有查看和设定参数功能之外,还有为 Linux 统⼀设备模型作为管理之⽤。
相⽐于 proc ⽂件系统,使⽤ sysfs 导出数据的⽅式更为统⼀,并且组织的⽅式更好,它的设计从 proc 中吸取了很多教训。
本⽂就 sysfs 的挂载点 /sys ⽬录结构、其与 Linux 统⼀设备模型的关系、常见属性⽂件的⽤法等⽅⾯对sysfs 作介绍,并且就编程⽅⾯,以具体的例⼦来展⽰如何添加 sysfs ⽀持。
文件的属性及基本操作
⽂件的属性及基本操作⽂件的属性⽂件有⼀定的属性,这根据系统的不同⽽有所不同,但是通常都包括如下属性:①名称:⽂件名称唯⼀,以容易读取的形式保存。
②标识符:标识⽂件系统内⽂件的唯⼀标签,通常为数字,它是对⼈不可读的⼀种内部名称。
③类型:被⽀持不同类型的⽂件系统所使⽤。
④位置:指向设备和设备上⽂件的指针。
⑤⼤⼩:⽂件当前⼤⼩(⽤字节、字或块表⽰),也可包含⽂件允许的最⼤值。
⑥保护:对⽂件进⾏保护的访问控制信息。
⑦时间、⽇期和⽤户标识:⽂件创建、上次修改和上次访问的相关信息,⽤于保护、安全和跟踪⽂件的使⽤。
所有⽂件的信息都保存在⽬录结构中,⽽⽬录结构也保存在外存上。
⽂件信息当需要时再调⼊内存。
通常,⽬录条⽬包括⽂件名称及其唯⼀标识符,⽽标识符定位其他属性的信息。
⽂件的基本操作⽂件的基本操作有:创建、写、读、定位、删除和截断:①创建⽂件:创建⽂件有两个必要步骤,⼀是在⽂件系统中为⽂件找到空间;⼆是在⽬录中为新⽂件创建条⽬,该条⽬记录⽂件名称、在⽂件系统中的位置及其他可能信息。
②写⽂件:为了写⽂件,执⾏⼀个系统调⽤,指明⽂件名称和要写⼊⽂件的内容。
对于给定⽂件名称,系统搜索⽬录以查找⽂件位置。
系统必须为该⽂件维护⼀个写位置的指针。
每当发⽣写操作,便更新写指针。
③读⽂件:为了读⽂件,执⾏⼀个系统调⽤,指明⽂件名称和要读⼊⽂件块的内存位置。
同样,需要搜索⽬录以找到相关⽬录项,系统维护⼀个读位置的指针。
每当发⽣读操作时,更新读指针。
⼀个进程通常只对⼀个⽂件读或写,所以当前操作位置可作为每个进程当前⽂件位置指针。
由于读和写操作都使⽤同⼀指针,节省了空间也降低了系统复杂度。
④⽂件重定位(⽂件寻址):按某条件搜索⽬录,将当前⽂件位置设为给定值,并且不会读、写⽂件。
⑤删除⽂件:先从⽬录中找到要删除⽂件的⽬录项,使之成为空项,然后回收该⽂件所占⽤的存储空间。
⑥截断⽂件:允许⽂件所有属性不变,并删除⽂件内容,即将其长度设为0并释放其空间。
【linux】linux命令如何查看文件、文件夹的属性,包括大小、修改时间、谁修改的
【linux】linux命令如何查看⽂件、⽂件夹的属性,包括⼤⼩、修改时间、谁修改的【linux命令如何查看⽂件、⽂件夹的属性,包括⼤⼩、修改时间、谁修改的】1、查看⽂件⼤⼩:#du -sh filename2、查看⽂件,⽂件夹属性:#ls -l filename#ls -ld foldername3、查看⽂件的三个时间 atime ,ctime, mtime3.1、 mtime(modification time),修改时间: 这个时间指的是⽂件内容修改的时间,⽽不是⽂件属性的修改,当数据内容修改时,这个时间就会改变,⽤命令ls -l默认显⽰的就是这个时间3.2、ctime(status time ),状态时间:当⼀个⽂件的状态改变时,这个时间就会改变,例如更改了⽂件的权限与属性等,它就会改变。
3.3、atime(access time),访问时间:当读取⽂件内容时,就会更改这个时间,例如使⽤cat 去读取/etc/man.config,那么该⽂件的atime就会改变。
3.4、查看命令:# ls -l --full-time /etc/man.config mtime# ls -l --time=atime --full-time /etc/man.config atime# ls -l --time=ctime --full-time /etc/man.config ctime4、其他如果要⼀起查看⽂件的三个时间情况,可以⽤命令stat进⾏查看# stat /etc/man.config【linux 下查看⽂件修改时间等】查看⽂件时间戳命令:stat awk.txtFile: `awk.txt'Size: 20 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 380730 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2008-04-26 01:50:44.000000000 +0800Modify: 2008-04-26 01:48:18.000000000 +0800Change: 2008-04-26 01:48:18.000000000 +0800说明:Access访问时间。
linux文件表示方法
linux文件表示方法Linux文件表示方法一、文件路径表示方法在Linux中,文件路径是用来定位文件位置的一种方式。
Linux中有两种表示文件路径的方法:1. 绝对路径:绝对路径从根目录(/)开始,一直到文件所在目录,用来表示文件的完整路径。
例如,/home/user/file.txt表示文件file.txt在根目录下的home目录下的user目录中。
2. 相对路径:相对路径是相对于当前工作目录(也称为当前路径)来表示文件位置的方法。
相对路径不以根目录开始,而是以当前路径为基准。
例如,如果当前路径是/home/user,那么相对路径file.txt表示的是当前路径下的file.txt文件。
二、文件名与文件类型在Linux中,文件名是用来标识文件的名称。
文件名可以由字母、数字和特殊字符组成,但是不能包含空格和一些特殊符号(如/和\等)。
文件类型是用来描述文件的属性的,Linux中常见的文件类型有以下几种:1. 普通文件(Regular File):普通文件是指存储数据的文件,可以包含文本、二进制数据等。
普通文件又可以分为文本文件和二进制文件两种类型。
2. 目录(Directory):目录是用来存储其他文件和目录的容器。
目录可以包含多个子目录和文件。
3. 符号链接(Symbolic Link):符号链接是指指向其他文件或目录的特殊文件。
符号链接可以跨越文件系统,可以链接到任意位置。
4. 块设备文件(Block Device File):块设备文件是指以固定大小的块为单位访问数据的设备文件,如硬盘分区。
5. 字符设备文件(Character Device File):字符设备文件是指以字符为单位访问数据的设备文件,如键盘、鼠标等。
6. 套接字(Socket):套接字是用来进行进程间通信的一种特殊文件。
7. 管道(FIFO):管道是一种特殊文件,用于进程间通信。
三、文件权限表示方法在Linux中,文件权限用来控制对文件的访问权限。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
转文:正确理解Linux下的文件属性
linux是一个安全的操作系统,她是以文件为基础而设计的,其文件权限是比较复杂的,可以用stat命令以及lsattr命令来显示某个文件的详细信息:
$ stat file1
file: `file1'
size: 11904 blocks: 24 io block: 4096 regular file
device: 301h/769d inode: 355982 links: 1
access: (0755/-rwxr-xr-x) uid: ( 503/ jack) gid: ( 503/ general)
access: 2003-10-19 09:14:12.000000000 +0800
modify: 2003-10-14 20:41:21.000000000 +0800
change: 2003-10-19 18:56:25.000000000 +0800
$ lsattr file
----i--a----- file
可以看到,文件权限的含义是比较广的,先来看-rwxr-xr-x,第一位是文件的类型,它定义了用户只能某种方式来操作文件,后面九位是文件的存取控制信息,linux的文件许可机制将用户分为三类:文件属主u(user)、文件属组g(group)和其它用户o(other)。
三类不同的用户可以对文件拥有三种不同级别的权限:读r(read)、写w(write)和运行x(execute)。
于是形成了九位的权限信息,分为三组,分别对应u,g,o。
除此之外,用户还可以设置setuid 与setgid位来改变程序的执行身份。
用lsattr命令则可以看到文件的属性,控制位包括asacddiijsttu,这些也是能控制文件的存取的。
由于篇幅有限,不可能就这些一一进行分析,本文着力分析文件权限中w(write)的真正含义,挖出其背后隐藏的细节,力图使读者能正确用好这个关键的权限位,不至于在系统管理中出现差漏。
为了能更直观的说明问题,本文采用实验操作的方式,一步一步的进行分析。
为了简化操作,我们用o(other)这组权限来做实验。
实验中用到的权限位均属于o(other), 进行操作的用户均非root用户,属于o(other)。
在实验之前,必须澄清一个概念,目录也是一种文件,它主要包括了两方面的信息,该目录下文件的文件名称与文件inode编号,它们之间有一一对应的关系。
不过目录文件比较特殊,不能用常规的方法进行读写,必须用系统的专用命令来操作。
命令ls其实是对目录文件进行读操作,命令mv,rm则是对目录文件进行写操作。
好了,该说说w(write)的真正含义了,一句话,linux文件权限中的w是对该文件的*内容*进行限定。
下面的实验可以验证。
实验1, 目录文件: /test(rwx), 普通文件: /test/file(r--). 当前目录:/test
$ echo "abc">file
bash: file: permission denied
试图对file的内容进行改写, 但file的权限是只读,很显然,操作失败。
$ cat file
hello world!
没有问题, 可以读出file的内容。
$ mv file file2
$ ls
file2
这是怎么回事呢, file的权限明明是只读啊, 请注意, 前面提到了, 文件中的rw权限只是针对当前文件的内容进行限定, 文件名不属于当前文件的内容, 它是保存在上一级的目录文件的内容中。
而mv命令表面上是针对file的,其实是对/test的内容进行改写,再看看/test 的权限, 是可写的(rwx)。
许多用户为了保护文件,将其权限设成只读就不管了,这是非常危险的,诚然,可以达到保护文件内容的目的(其实也未必,补充内容中有论述),但你却不能保证文件是否会被更名或被删除,保险的方法是将文件父目录的权限也设为只读。
当然,也有其他的方法,比如用chattr +i命令或将文件系统用ro方式挂载等等,但这些不在本文论述范围。
$ rm -f file2
$ ls
$
同样的原因, 我们可以删除file2, 与上一次操作不同的是,我们不是改写/test的一条纪录,而是在删除/test的一条纪录。
实验2, 目录文件: /test(r-x), 普通文件: /test/file(rw-), 当前目录:/test
$ echo "abc">file
$ cat file
abc
/test的权限虽然是只读,但我们改写的是file的内容, 它的权限是可写,当然没有问题。
$ mv file file2
mv: cannot move 'file' to 'file2': permission denied
$ rm -f file
rm: cannot remove 'file': permission denied
我们已经知道, 这两条指令其实与file的权限无关, 而是在改写/test的内容, 当然操作失败。
通过前面几个操作,我们应该要分清楚指令真正的操作对象是谁,这样才能对文件权限作出正确的设定。
实验3, 目录文件: /test(rwx), 普通文件: /test/file(r--), 目录文件: /test/dir(r-x), 普通文件: /test/dir/file(rw-), 当前目录:/test
$ mv file file2
$ mv dir dir2
$ ls
dir2 file2
很顺利, 因为/test/file与/test/dir的父目录/test的权限给的太宽松了,是rwx。
$ rm -f file2
$ rm -rf dir2
rm: cannot remove 'dir2/file': permission denied
$ ls -r
.:
dir2
./dir2:
file
到这里, 我们已经丝毫不奇怪普通文件/test/file2被删除, 但具有同等地位的目录文件
/test/dir2却安然无恙。
当执行rm -rf dir2时, 由于存在普通文件/test/dir2/file, 系统便尝试先删除它, 也就相当于修改目录文件/test/dir2的内容, 但它的权限是只读, 不能进行修改,也就相当于不能删除/test/dir2/file, 又由于/test/dir2与/test/dir2/file有依存关系, /test/dir2也就自然会被保留下来。
回顾上一个操作(mv dir dir2),为什么目录文件/test/dir却可以被更名呢?由于更名操作并不涉及到自身的内容被修改,修改的只是父目录的内容,而进行删除操作时,父目录的内容固然要被修改,但也同时也要修改自身的内容(因为要删除该目录下的文件),这就不被允许了。
如果/test/dir2的权限是可写, 或者目录下没有子文件, 那么它的下场就和/test/file2一样, 被删除。
通过前面的几个操作,可以看到,文件有这么几个关键状态:被读、被改写、被改名、被删除、被执行。
然而系统只区分三种权限,即读、写、执行(rwx)。
那么改名与删除这两个操作是否系统就置之不理了呢?不是的,系统将这两个操作归入被操作文件的上一级目录来管理。
那么又是以何种方式来管理的呢?答案是目录将其下的所有文件看作是它的内容。
这样,当用户更名或删除某个文件时,执行的是对上一级目录的写操作,属于rwx三种权限之一的w操作,并没有逃出系统的管理范围。
我们的大脑总是活跃的, 能想象出各种各样的事情, 能把许多简单的东西组合成很复杂东西, 上面几个实验不正是这样吗, 象这样的实验我们还可以设计出许多, 但做的越多, 脑子似乎越乱(我已经有一点了), 你能记的住这么多吗? ok, 我们也许能将它想的简单一些,
只需注意两个方面, 一是要清楚目录的内容是什么;二是要明白文件权限中的w(write)的真正含义。
仔细想想, 不是吗?
补充:
在实验1中, 如果用vim对file进行编辑, 并且强制保存(w!), 是可以成功的。
这并不是说vim就可以绕开系统的安全机制,而是vim耍了一个小小的把戏,它是先删除这个文件,而后又生成一个同名的新文件。
但有一个情况例外,就是当这个文件有另外一个硬链接文件存在时,vim会拒绝强制保存,仔细想想,当进行删除操作后,文件还存在,并没有被真正删除,而这时再新建一个文件,虽然同名,但已经不是原来的那个文件了!笔者曾对此事也颇为疑惑,为了求证,仔细阅读了vim6.2的源代码,才找到答案。
有兴趣的读者也可看一看,具体内容在src/fileio.c中。