linux 文件的基本属性

linux系统是一个多用户系统,不一样的用户拥有不一样的权限,为了保护系统的安全性,linux系统对不一样的用户访问同一文件或者目录的权限作了不一样的规定。python

linux中咱们常常使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组linux

[root@hbase /]# ll
总用量 110
drwxr-xr-x.   2 root root  4096 9月  27 02:43 bak
dr-xr-xr-x.   2 root root  4096 8月   1 19:33 bin
dr-xr-xr-x.   5 root root  1024 7月  26 18:03 boot
drwxr-xr-x.  18 root root  3760 10月 18 00:14 dev

以上例子中,bin文件的第一个属性用"d"表示这是一个目录。数组

linux中第一个字符表明这个文件是一个目录,文件或者连接文档等。安全

  • "d" --- 表示目录
  • "-" --- 表示文件
  • "/" --- 表示连接文档(link file)
  • "b" --- 表示装置文件里面可提供存储的金额口设备(博主没有用过)
  • "c" --- 表示装置文件里面的串行端口设备,如:键盘,鼠标(一次性读取装置)(博主没用过)

第一个字符之后的字符中,以三个为一组,都是以"rwx"三个参数组成且顺序不变,分别标识读,写和执行。若是没有权限就会用减号"-"来替代,以下图:bash

从左至右用0-9这些数字来表示。spa

第0位肯定文件类型,第1-3位肯定属主(该文件的全部者)拥有该文件的权限。第4-6位肯定属组(全部者的同组用户)拥有该文件的权限,第7-9位肯定其余用户拥有该文件的权限。code

linux 文件的属主和属组

[root@hbase /]# ll
总用量 110
drwxr-xr-x.   2 root root  4096 9月  27 02:43 bak
dr-xr-xr-x.   2 root root  4096 8月   1 19:33 bin
dr-xr-xr-x.   5 root root  1024 7月  26 18:03 boot
drwxr-xr-x.  18 root root  3760 10月 18 00:14 dev

对于文件来讲,它都有一个特定的全部者,也就是这个文件是谁的。同时,linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件全部者之外的用户又能够分为,文件全部者同组用户和其余用户。所以,linux系统按文件全部者,文件全部者同组用户和其余用户来规定不一样文件的访问劝降。递归

以上代码中dev文件是一个目录文件,属主和属组,属主能够对该目录进行读写执行,与属主同组的其余用户有可读可执行权限,其余用户也有可读可执行的权限,而对于root用户来讲,通常状况下,文件的权限对其不起做用。ci

更改文件属性

1,chgrp:更改文件属组文档

语法:chgrp [-R]  数组名 文件名

    -R  递归更改文件属组,

2,chown:更改文件属主,也能够同时更改文件属组

语法:chown [-R]  属主名 文件名

          chown [-R] 属主名:属组名 文件名

3,chmod : 更改文件9个属性

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有本身的read/write/execute权限。

先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,咱们可使用数字来表明各个权限,各权限的分数对照表以下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是须要累加的,例如当权限为: [-rwxrwx---] 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

因此等一下咱们设定权限的变动时,该文件的权限数字就是770啦!变动权限的指令chmod的语法是这样的:

chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变动,亦即连同次目录下的全部文件都会变动

举例来讲,若是要将.bashrc这个文件全部的权限都设定启用,那么命令以下:

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

那若是要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

符号类型改变文件权限

还有一个改变权限的方法呦!从以前的介绍中咱们能够发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份啦! 那么咱们就能够藉由u, g, o来表明三种身份的权限!

此外, a 则表明 all 亦即所有的身份!那么读写的权限就能够写成r, w, x!也就是可使用底下的方式来看:

 

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

若是咱们须要将文件权限设置为 -rwxr-xr-- ,可使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

[root@www ~]# ls -al .bashrc
-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod  a+w  .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

而若是是要将权限去掉而不改变其余已存在的权限呢?例如要拿掉所有人的可执行权限,则:

[root@www ~]# chmod  a-x  .bashrc
[root@www ~]# ls -al .bashrc
-rw-rw-rw-  1 root root 395 Jul  4 11:45 .bashrc
相关文章
相关标签/搜索