四时宝库

程序员的知识宝库

Linux文件类型有啥?如何修改文件权限?软链接和硬链接的区别?

Linux系统文件的存储及权限:

一、Linux下的文件

使用 ls -al 显示当前目录所有文件的信息

[root@njxh root]# ls -al

total 64所有文件一共有 64k(但可惜这个值是不真实的文件夹大小)

drwxr-x---4rootroot4096Feb 14 22:02 .

drwxr-xr-x23rootroot4096Feb 16 13:35 ..

-rw-r--r--1rootroot1210Feb 10 06:03 ks.cfg

文件类型 权限链接数文件拥有者 文件拥有组 内容大小 更改时间文件名

以上的信息被保存在每一个文件的 inode(i 节点)中,以下是 stat 命令显示出文件“code”的

信息:

[root@njxh root]# stat code

File: `code'

Size: 4096Blocks: 8IO Block: 4096Directory

Device: 302h/770dInode: 346660Links: 2

Access: (0755/drwxr-xr-x)Uid: (0/root)Gid: (0/root) Access: 2005-06-12 14:47:08.000000000 +0800

Modify: 2019-04-29 19:25:38.000000000 +0800

Change: 2019-04-29 19:25:38.000000000 +0800

二、Linux的类型:

- 一般文件 这是一类常见的文件,也是常使用的一类文件,其特点是不包含有文件系统的结构信息。通常所接触到的文件,包括图形文件、数据文件、文档文件、声音文件等都属于这种文件。这种类型的文件按其内部结构又可细分为文本文件和二进制文件。

l 链接文件 链接文件是一种特殊的文件,实际上是指向一个真实存在的文件的链接。这有点类似于 Windows 下的快捷方式。根据链接文件的不同,它又可以细分为硬链接文件和符号链接文件。

d 目录文件 目录文件是用于存放文件名及其相关信息的文件,是内核组织文件系统的基本节点。目录文件可以包含下一级目录文件或普通。对于习惯于使用 Windows 的用户来说,这可能有些难于理解,目录怎么会是文件呢?的确,在 Linux 中,目录文件是一种文件。但 Linux 的目录文件和其它操作系统中的“目录”的概念不同,它是 Linux 文件中的一种。当然,在实际使用中可以不仔细区分这两种说法。实际上,在很多 Linux 的书籍和资料中就是将目录文件简称为目录的。不过,我们必需清楚此“目录”非彼“目录”。

b块设备文件 设备文件是 UNIX 系统中的一种文件,用处是将复杂的多元的硬件抽象成文件,这样我们通过简单的打开方法就可以打开硬件设备了。

例如:

cat /dev/fd0 > /tmp/a.img

这将把软盘中的内容做成一个镜像文件,这个镜像文件是直接从软盘的第一个磁道的第一个字节读取,一直到最后。

cat /dev/cdrom > /tmp/a.iso

将把光盘做成一个 iso 的镜像,读取的是最原始的数据,包含着光盘引导内容、文件系统本身、文件等等。

c字符型设备文件与块设备文件的区别在于,一般块设备的数据是以一定的大小一块来操作, 而字符型设备文件是可以一个字节一个字节操作,不需要分块。

通常 Linux 系统将设备文件放在/dev 目录下,设备文件使用设备的主设备号和次设备号来指定某外部设备。根据访问数据方式的不同,设备文件又可以细分为块设备和字符设备文件。

s网络类型文件一般可以在 /tmp 目录下发现他的身影,是 UNIX 系统进行网络通信时使用的socket 文件。

p 管道文件 管道文件是一种很特殊的文件,主要用于不同进程间的信息传递。当两个进程间需要进行数据或信息传递时,可以通过管道文件。一个进程将需传递的数据或信息写入管道的一端,另一进程则从管道的另一端取得所需的数据或信息。通常管道是建立在调整缓存中。

三、Linux文件权限:

传统的 Linux 系统中,对文件来说,只能为三类用户设定权限:

文件拥有者(user)

文件拥有组的成员(group)

其他用户(other)

它的权限可以分为三种:读的权限( r )、写的权限( w )和执行的权限( x )。不同的用户具有不同的读、写和执行的权限。

对于一个文件来说,它都有一个特定的所有者,也就是对文件具有所有权的用户。同时,由于在 Linux 系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其它用户。因此,Linux 系统按文件所有者、文件所属组的成员和其它用户三类规定不同的文件访问权限。

[root@njxh root]# ls -l /root/install.log

-rw-r--r--1 rootroot1210Feb 10 06:03 install.log

第 2~4 位个字符确定文件的用户(user)权限,第 5~7 位个字符确定文件的组(group)的权限,第 8~10个字符确定文件的其他用户(other user)的权限。

所以 install.log 文件的权限是:用户 root 拥有 rw(读写)权限,root 组的成员拥有 r(读)的权限, 其他人(others)拥有 r(读)的权限

四、修改权限

建立新文件时,文件的缺省权限,跟用户有关,如果是 root 用户,他创建的文件权限为:

r w - r - - r - -而普通用户创建文件的权限为:r w – r w – r - -

当它不符合用户需求或者当文件的运行环境将要发生变化时,需要修改文件的权限信息,Linux 系统提供了 chmod,chown,chgrp 命令来重新设置文件的权限信息。

使用 chmod 命令设置文件或者目录的操作权限,基本格式:

chmod [-R] user mode filename

字符方式的基本语法是:chmod [ugoa] +或者-或者= [rwx] [文件名称]

[root@njxh root] # chmod u+w , g+w , o+x file1

对 file1 文件 user 用户新添可写权限,group 用户新添可写权限,other 用户新添执行权限。

[root @ njxh root] # chmod u=rwx g+rwx vi.text

对 vi.text 文件 user 用户设置读写执行,group 用户新添读写执行权限,other 用户默认初始权限。

五、数字改变文件权限:

赋予权限的另一种方法是 chmod ABC[文件...]

ABC 分别是 0—7 数字 ,其中 A 表示用户者权限、B 表示拥有组成员、C 表示所有其它用户。各个位置上的值要么是 0,或者是一个由赋予权限的相关值相加得到的单个阿拉伯数字之和。这些数字的意义如下所示:

值表示的意义

4表示文件或者目录的读权限

2表示文件或者目录的写权限

1表示文件或者目录的执行权限

一般而言,作为系统管理员,更喜欢使用数字方式,因为这种方式的速度明显快得多。例如:

[root@njxh root] # chmod 755 file1

设置对文件 file1 的 user 权限为 rwx;group 权限为 rw;other 权限为 rw

六、文件的拥有者:

使用 chown 命令更改文件或者目录的用户所有权基本格式

chmod [-R] user filename

[-R] :递归修改子目录中的文件

user :用户名

filename :操作的文件名称或目录名称举例:

[root@njxh root] # chown user1 file1

将 file1 修改为用户 user1 所有

[root@njxh root] # chown –R user1 dir1

将目录 dir1 及其子目录中的所有文件都改为用户 user1 所有

[root@njxh root] # chown user1:group1 file1

将文件 file1 都改为用户 user1 和组 group1 所有

七、文件拥有组:

使用 chgrp 命令更改文件或者目录的工作组所有权基本格式

chgrp [-R] groupname filename

[-R] :递归修改子目录中的文件groupname :工作组名filename :文件名或目录名

例如:

[root@njxh root] # chgrp vivi file1

将文件 file1 的工作组修改为 vivi 组所有

[root@njxh root] # chgrp –R baidu dir1

将目录 dir1 及其子目录中的所有文件都改为工作组 baidu 组所有

八、建立链接:

硬链接文件完全等同于原文件,原文件名和连接文件名都指向相同的物理地址。

不可以跨文件系统,也不可以建立目录的硬链接。文件在磁盘中只有一个拷贝,节省硬盘空间; 由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。如下所示:

[njxh@njxh njxh] $ln file1 file2( 建立 file1 的硬链接 file2 )

[njxh@njxh njxh] $ls –il( 显示 file1 和 file2 的属性)

4029 -rw-r--r–2rootroot0Jul2516:13file1

4029 -rw-r--r–2rootroot0Jul2516:13file2

inode 号权限 硬链接数 拥有者拥有组文件大小 最后修改时间 文件名硬链接的特点:

1.不能跨分区;2.不能给目录做硬链接

软链接文件相当于为原文件建立了一个快捷方式,可以跨文件系统,也可以为目录建立。软链接和硬链接不同,软链接有自己的 inode,是 linux 特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似 windows 下的快捷方式。 可以删除原有的文件而保存连接文件,没有防止误删除功能。

[njxh@njxh njxh] $ln –sfile1 file2( 建立file1 的软链接 file2 )

【观看相关在线视频】

Linux文件类型和权限设置,王海军老师讲chmod修改文件权限方法

Linux显示系统中登陆的用户,给联机用户发信息,查看用户信息

Linux更改文件拥有者和文件拥有组,王海军老师告诉你命令使用

Linux建立文件硬链接和软链接,王海军老师告诉你两种链接之区别

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接