目录

1.文件属性

1.1 ls命令

1.2 linux文件系统介绍

2.更改目录/文件权限

2.1 用户和用户组的相关指令

2.2 chgrp命令

2.3 chown命令

2.4 chmod命令

2.5 umask命令 


1.文件属性

1.1 ls命令

ls命令是我们最常用的命令之一,用来查看当前目录下的文件或文件夹.

ls命令有以下几个基本选项

选项作用
-a显示所有文件及目录(包括一"."开头的隐藏文件)
-l使用长葛市列出文件及目录信息
-r将文件以相反的次序显示(默认以英文字母序)
-t根据最后的修改时间排序
-A同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S根据文件大小排序
-R递归列出所有子目录

在这里我们可以看到使用ls -l 列出的文件信息分为九列

包含该文件的类型、所有者、所属组以及其他用户对该文件的权限。第1列共11位,其中第1位用来描述该文件的类型。上例图中我们看到的文件类型有d和-,其实除了这两种外,还有l、b、c、s等,具体描述如下所示。

d表示该文件为目录。

-表示该文件为普通文件。 (d和-最常见)

l表示该文件为链接文件(link file)

b表示该文件为块设备,比如/dev/sda就是这样的文件,磁盘分区文件就是这种类型。

c表示该文件为串行端口设备文件(又称字符设备文件),比如键盘、鼠标、打印机、tty终端等都是这样的文件。

s表示该文件为套接字文件(socket),用于进程之间的通信,后面讲到MySQL时会用到该类型的文件

1.文件类型后面的9位,每3位为一组,上例中均为rwx这3个参数的组合。其中,r代表可读,w代表可写,x代表可执行。前3位为所有者(user)的权限,中间3位为所属组(group)的权限,最后3位为其他非本群组用户(others)的权限。

以这个文件为例,她的文件属性是-rw-r--r--:

-代表这是一个文件;

 rw-:代表文件所有者可以对该文件记性读写操作,不能执行;

r--:代表文件所属用户组可读,不可写,不可执行;

r--:代表其他用户读,不可写,不可执行.

对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录下的内容

2.表示该文件文件硬链接数或目录子目录数 ,如果是目录,那这个数值与该目录下是子目录数量有关

3.表示该文件的所有者。

4.表示该文件的所属组。

5.表示该文件的大小。

6.第6列、第7列和第8列:表示该文件最后一次被修改的时间(mtime),依次为月份、日期以 及时间。

9.第9列:表示文件名。

为了能更直观的理解,画了下面一张简单的图.

1.2 linux文件系统介绍

在linux系统中,是以文件的形式来进行管理的.主要的文件类型有:

  1. 普通文件(regular file)
  2. 目录(directory)
  3. 链接文件(link file)
  4. 设备(device)

普通文件(regular file):

我们用 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工等。普通文件又可分为纯文本文件和二进制文件,纯文本文件可以通过cat、more、less等工具直接查看内容,而二进制文件不能。

目录(directory):与windows中的文件夹类似,但是在linux中我们称之为目录,使用ls -l命令查看时,第一位是d的就是目录,可以用cd进入目录,mkdir创建目录等.

链接文件(link file):这种文件类似于windows中的快捷方式,在linux中非常常见.使用ls -l查看文件时以l开头的就是链接文件.比如我们进入/dev目录,使用ls命令就会看到很多的链接文件.

 设备(device):即与系统周边相关的一些文件,通常都集中在/dev目录下。 这种文件一般分为两种,一种是块(block)设备,就是一些存储数据,以提供系统存取的接口设备,简称硬盘。例如,第一块硬盘是/dev/sda1,用命令ls-l查看的第一个属性值为b的文件就是块设备。另一种是字符(character)设备,是一些串行端口的接口设备,例如键盘、鼠标等,用命令ls-l查看的第一个属性为c的文件就是字符设备。

值得注意的是:在linux系统中,文件的后缀名没有具体的意义,加不加的效果都是一样的,但是为了便于我们在使用时加以区分,一般我们会给文件设置一个后缀名,这样当用户看到时很容易就会知道这到底是一个什么样的文件.

2.更改目录/文件权限

2.1 用户和用户组的相关指令

groupadd [组名] //添加一个用户组

useradd [用户名] //添加一个用户

这两个操作都只有在root权限下才能够操作,如果不是root权限登录,则需要使用sudo命令,以示我们将root管理员权限执行该指令, 然后就会让我们输入root账户密码.

2.2 chgrp命令

chgrp(change group)的简称,用来更改文件的所示组,使用的格式为:

chgrp [组名] [文件名]

在这里我首先创建了一个family组,然后更改learning目录下的123,.txt的所属组为family.

                                                                 创建family用户组

                                                                         更改123.txt的所属组

如果要更改文件或是目录的所属组的话, 也是需要root权限的  

 chgrp命令只更改了目录本身,而目录下的文件并没有更改。如果要想级联更改子目录以及子文件,加-R选项可以实现

 2.3 chown命令

chown(change owner的简写)命令可以更改文件的所有者,其格式为:

chown [ -R ] 账户名 文件名

或者

chown [ -R ] 账户名:组名 文件名。

这里的-R选项只适用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改

在这里修改learning目录下的demo目录的所有者为lhrdlp,使用-R选项强制修改demo目录下的index目录的所有者为lhrdlp.

2.4chmod命令

为了方便更改文件的权限,Linux使用数字代替rwx,具体规则为:r等于4,w等于2,x等于1,-等于0

例如,rwxrwx---用数字表示就是770,其具体算法为:rwx=4+2+1=7,rwx=4+2+1=7,---=0+0+0=0。

3个一组, 然后每组的值累加起来

rwx的排列组合, 只有这几种

  1. ---:0;
  2. --x:1;
  3. -w-:2;
  4. -wx:3;
  5. r--:4;
  6. r-x:5;
  7. rw-:6;
  8. rwx:7

每个状态都可以通过一个数字来代表,所以我们在创建问价的时候可以根据数字来确定具体的权限.

 

chmod还支持使用rwx的方式来设置权限。从之前的介绍中可以发现,基本上就9个属性。我们可以使用u、g和o来分别表示user、group和others的属性,用a代表all(即全部)。

2.5 umask命令 

 默认情况下,目录的权限值为755,普通文件的权限值为644,这个值是由umask决定的。命令umask用于改变文件的默认权限,其格式为:umask xxx(这里的xxx代表3个数字)。如果要查看umask的值,只要在命令行输入umask,然后回车即可,如下所示:

 

看下面两条规则:

  1. 若用户建立普通文件,则预设没有可执行权限,只有r、w两个权限,最大值为666(-rw-rw-rw-)。

  2. 若用户建立目录,则预设所有权限均开放,即777(drwxrwxrwx)。

umask数值代表的含义为以上两条规则中的默认值(文件为666,目录为777)需要减掉的权限,所以:

  1. 目录的权限为rwxrwxrwx – ----w--w- = rwxr-xr-x 

  2. 普通文件的权限为rw-rw-rw- – ----w--w- = rw-r--r--

umask的值是可以自定义的,比如设定umask为002,你再创建目录或者文件时,默认权限分别为:

  1. rwxrwxrwx – -------w- = rwxrwxr-x(目录的权限)

  2. rw-rw-rw- – -------w- = rw-rw-r--(文件的权限)

 

 

 

 

 

 

 

 

 

Logo

更多推荐