linux文件属性和更改文件权限详解
目录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命令有以下几个基本选项选项作用...
目录
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系统中,是以文件的形式来进行管理的.主要的文件类型有:
- 普通文件(regular file)
- 目录(directory)
- 链接文件(link file)
- 设备(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的排列组合, 只有这几种
- ---:0;
- --x:1;
- -w-:2;
- -wx:3;
- r--:4;
- r-x:5;
- rw-:6;
- 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,然后回车即可,如下所示:
看下面两条规则:
-
若用户建立普通文件,则预设没有可执行权限,只有r、w两个权限,最大值为666(-rw-rw-rw-)。
-
若用户建立目录,则预设所有权限均开放,即777(drwxrwxrwx)。
umask数值代表的含义为以上两条规则中的默认值(文件为666,目录为777)需要减掉的权限,所以:
-
目录的权限为rwxrwxrwx – ----w--w- = rwxr-xr-x
-
普通文件的权限为rw-rw-rw- – ----w--w- = rw-r--r--
umask的值是可以自定义的,比如设定umask为002,你再创建目录或者文件时,默认权限分别为:
-
rwxrwxrwx – -------w- = rwxrwxr-x(目录的权限)
-
rw-rw-rw- – -------w- = rw-rw-r--(文件的权限)
更多推荐
所有评论(0)