Linux中文件的基本属性





一、用户及用户组

所有者(属主):一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,每个文件的所有者(属主)有且仅有一个。用ll命令可以看到文件的所有者。

所属组(属组):当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组,一个用户可以属于多个组但仅有一个主组,用ll命令可以看到文件的所有组。

其他人:除开文件的所有者和所属组之外的用户,系统的其它用户都是文件的其他者。比如创建了两个用户Tom和Jerry,Tom相对Jerry创建的文件来说就是其他人。


二、文件权限

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

[[email protected] app]#ll f1     #使用ll或者ls -l命令来显示一个文件的属性及属主和属组
-rw-rwxr--.  1  root root 10 Jul 24 21:05 f1

实例中,第一个字段就表示f1文件所拥有的权限(-rw-rwxr--.),这些位都代表什么含义呢?前10个字符代表不同用户能对该文件执行什么操作,最后一位的"."表示的是ACL权限(访问控制列表)。

第一个字符代表文件类型

  • d :表示目录文件
  • - : 表示普通文件
  • l  :表示链接文件
  • c :字符文件,例如/dev/zero
  • b :表示块式文件,例如/dev/sda

接下来的字符中,以三个为一组,且均为[ rwx ] 的三个参数的组合。其中,[ r ]代表可读( read )用数字表示为4、[ w ]代表可写( write )用数字表示为2、[ x
]代表可执行( execute )用数字表示为1。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号" - "替代。详细说明如下表

   文件类型    所有者(u)     所属组(g)      其他人(o)
  位          0      1   2  3        4  5  6         7  8  9
权限          -       r  w   -        r  w  x         r   -  -
含义    普通文件 读、写、无执行   读、写、执行 读、无写权限、无执行

从左至右这十位分别表示:

  • 第0位确定文件类型
  • 第1-3位确定属主(该文件的所有者)拥有该文件的权限
  • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限
  • 第7-9位确定其他用户拥有该文件的权限
  • 其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。
  • 权限之后的每个字段依次表示:链接数、属主、属组、文件大小、文件最新修改时间、文件名

三、文件属性修改

[[email protected] ~]#
[[email protected] ~]#ll -d Music/
drwxr-xr-x. 2 root root 6 Jul  4 08:29 Music/

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此,Linux系统按文件所有者、文件所属组和其他用户来规定了不同的文件访问权限。在以上实例中,Music 文件是一个目录文件,属主和属组都为 root,属主有可读、可写、可执行的权限;与属组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。对于 root 用户来说,一般情况下,文件的权限对其不起作用(root 是Linux中的天神,掌管一切)。


  • 修改所属主[ chown ]

格式

chown [ options ] [ 属主, 属主:属组 ] FILE

实例

[[email protected] tmp]#ll profile 
-rw-r--r--. 1 root root 1795 Nov 6 2016 profile #profile文件的属主和属组都是root
[[email protected] tmp]#chown vincent profile    #改变profile的属主为vincent
[[email protected] tmp]#ll profile 
-rw-r--r--. 1 vincent root 1795 Nov 6 2016 profile  # 属主被修改为vincent
[[email protected] tmp]#chown root:vincent profile  #同时修改属主为root,属组为vincent
[[email protected] tmp]#ll profile 
-rw-r--r--. 1 root vincent 1795 Nov 6 2016 profile #属主属组被修改为root和vincent
[[email protected] tmp]#

说明:在同时修改属主和属组时,不仅能使用冒号分割(root:vincent),使用点号分割也可以(root.vincent)


  • 修改所属组 [ chgrp ]

除了chown能改变属组,还有个命令专门用于修改文件属组(chgrp)

格式

chgrp [ -R ] 属组名 FILE

实例

[[email protected] tmp]#ll profile        #查看文件属组为 root
-rw-r--r--. 1 vincent root 1795 Nov  6  2016 profile
[[email protected] tmp]#chgrp vincent profile  #修改属组为vincent
[[email protected] tmp]#ll profile 
-rw-r--r--. 1 vincent vincent 1795 Nov 6 2016 profile  #修改成功,属组变为vincent

说明:-R表示递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改


  • 修改文件权限[ chmod ]

文件的权限位有9位,以3位为一组,分别表示属主、属组、其他人的权限。每一组权限从左至右依次表示读/写/执行(readable/writable/executable)

Linux中文件权限有两种表示方法:模式法和数字法。模式法将属主、属组、其他人分别用字母u、g、o来表示;数字法中分别用数字4、2、1来表示读、写、执行权限,每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的。

chmod-->模式法

格式

chmod [ u=,g=,o=,ug=,a= ][ r,w,x,rw,rx,wx ] FILE      #修改一类用户的权限
chmod [ u+,u-,...][r,w,x,...] FILE   #修改一类用户某位的或某些位的权限
chmod --reference=rfile FILE         #修改FILE文件的权限同rfile文件

实例

[[email protected] tmp]#
[[email protected] tmp]#ll profile 
-rw---xr--. 1 vincent vincent 1795 Nov 6 2016 profile
[[email protected] tmp]#chmod g+r profile && ll profile     #给属组添加r权限
-rw-r-xr--. 1 vincent vincent 1795 Nov 6 2016 profile
[[email protected] tmp]#chmod o+wr profile && ll profile    #给其他人添加rw权限
-rw-r-xrw-. 1 vincent vincent 1795 Nov 6 2016 profile
[[email protected] tmp]#chmod u=x profile && ll profile  #将属主权限设置为x,覆盖旧权限
---xr-xrw-. 1 vincent vincent 1795 Nov 6 2016 profile
[[email protected] tmp]#touch 1.txt && ll 1.txt       #创建一个新文件,用于下面实验
-rw-r--r--. 1 root root 0 Jul 27 17:50 1.txt
[[email protected] tmp]#chmod --reference=1.txt profile && ll profile 
-rw-r--r--. 1 vincent vincent 1795 Nov 6 2016 profile #将权限设为同1.txt的权限
[[email protected] tmp]#

说明:“&&”表示先执行“&&”之前的句柄,在执行“&&”之后的句柄;在使用“=”进行设置权限时会覆盖相应位以前的权限。

chmod-->数字法

权限表示方法

权限              二进制表示           八进制表示
---                000                  0
--x               001                1
-w-               010                2
-wx               011                3
r--               100                4
r-x               101                5
rw-               110                6
rwx               111                7
rwxr-xrw-           111 101 011               756

格式

chmod [ -R ] xyz FILE/DIR...       # xyz分别代表属主、属组、其他人的权限

实例

[[email protected] app]#
[[email protected] app]#ll messages 
-rw-------. 1 root root 2914301 Jul 26 08:24 messages  # messages文件权限为600
[[email protected] app]#chmod 777 messages && ll messages   #设置所有用户权限为读写执行
-rwxrwxrwx. 1 root root 2914301 Jul 26 08:24 messages
[[email protected] app]#chmod 755 messages && ll messages    #去除属组和其他人的写权限
-rwxr-xr-x. 1 root root 2914301 Jul 26 08:24 messages
[[email protected] app]#chmod 055 messages && ll messages 
----r-xr-x. 1 root root 2914301 Jul 26 08:24 messages   #设置权限为055
[[email protected] app]#

说明:对文件夹(目录)而言,系统默认权限为777;对文件而言,系统默认权限为666;这种设计保证了Linux系统文件的安全性。文件除了这些基本属性之外还有其他权限(SUID、SGID、Stikty)和ACL(访问控制列表),这些权限将在后续为大家提供,敬请期待!

谢谢阅读!(有不足之处望留言指正)

时间: 2024-08-05 09:26:33

Linux中文件的基本属性的相关文章

linux 中文件类型和颜色的区分

linux 中文件类型和颜色的区分 to be  continued linux 中文件类型和颜色的区分,布布扣,bubuko.com

MD5的好处及linux中文件MD5校验和的应用

MD5算法简介: MD5全称是报文摘要算法(Message-Digest Algorithm5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的"指纹"(或称"报文摘要"),不同的文件产生相同的报文摘要的可能性是非常非常之小的. Message Digest Algorithm MD5为计算机安全领域广泛使用的一种散列函数,MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.它是用复杂的数学算法求得的一个12

linux中文件的三种时间

Linux 中文件的三种时间 文件的三种时间: 1.        mtime 文件的修改时间 文件的内容发生改变.包括文件中空格数目.字符的变动再复原等这些看上去并不影响有效数据内容的操作. 有意的改变时间戳.Eg:使用touch –m –t 2016666666666fileName这样的命令故意改变mtime. 2.        ctime 文件的改变时间 文件的"属性"改变.Eg:文件的权限.属主.属组等. mtime发生改变和人为的改变atime的情况,Eg:touch –

Linux中文件描述符和打开文件之间的关系

Linux中文件描述符和打开文件之间的关系 文件描述符: 在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表. Linux中的文件类型 Linux系统中把一切都看做文件,包括普通文件-.目录文件d.字符设备文件c.块设备文件b.符号链接文件l.文件描述符是内核为了高效管理已被打开的文件所创建的索引(一个非负整数),用于指代已被打开的文件,Linux下所有的的I/O操作的系统调用都是通过文件描述符执行.例如0表示标准输入.1表示标准输出.3表示标准错

linux中文件的三种time(atime,mtime,ctime)

linux下文件有3个时间的,分别是atime,mtime,ctime.有些博友对这3个时间还是比较迷茫和困惑的,我整理了下,写下来希望对博友们有所帮助. 1 这三个time的含义 简名 全名 中文名 含义 atime access time 访问时间 文件中的数据库最后被访问的时间 mtime modify time 修改时间 文件内容被修改的最后时间 ctime change time 变化时间 文件的元数据发生变化.比如权限,所有者等 2 如何查看这3个time [[email prote

Linux中文件权限、用户和用户组管理

1.文件权限 2.文件和目录rwx权限说明 文件rwx权限: r  :  可读,具有读取文件内容的权限(),如果没有r,vi/vim编辑器提示无法编辑(可强制编辑),echo可以追加或重定向. w :  可写,具有修改文件内容的权限 x  :  可执行,具有执行文件的权限. 需满足:文件本身具有可执行权限:普通用户还需具有r权限:root用户只要x权限就可执行.linux中可执行文件:*.sh     *.py     *.perl等等. 目录rwx权限: r  :  可读,查看目录下面文件及子

linux中文件/目录普通权限

权限 文件属性的查看############# ls -l filename/ls -ld dictionary-|rw-r--r--.|1| root| root|   46 |Oct  1 05:03 |filename- ---------  -  ----  ----    --  ------------  -------- 1    2         3    4      5      6      7             81."-":文件类型 -    ##普通

Linux中文件描述符fd和文件指针flip的理解

转自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp. open:文件描述符的操作(如: open)返回的是一个文件描述符(int fd),内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用(fd1,fd2,fd3...); fopen:而流(如: f

Linux中文件权限的一些知识

读<Linux命令行和shell脚本编程大全>,想起来在入侵中一些Linux文件权限的一些问题,简单记一下要点: umask中 0022中第一个0带便粘着位,八进制含义为: 0      0       0 SUID SGID T位 看到关于应急响应中出现的问题,作者说设置了facl会造成一些root用户的读写问题.[我手工设置了 发现依然能编辑.删除,存疑] https://www.91ri.org/10394.html 作者还提到了,因为隐藏属性会导致文件无法被删除: 关于这个找到一个 h