linux中crw brw lrw等等文件属性是什么

什么是文件?

所有的文件其实都是一串字符流,不过当用合适的解析方法,可以得到有效信息,人们为了方便对文件进行操作,便按照文件的解析方法的不同,给了文件不同的种类,并用下边的方式来标记给人看。

今天在查看 /dev/fuse 文件的属性的时候,看到了crw_ 权限位,一时反应不过来:

[root@localhost ~]# ll /dev/fuse
crw-rw-rw-. 1 root root 10, 229 Sep 20 11:12 /dev/fuse

在这里进行备注一下,相关答案来源于网络。

linux中c表示字符设备文件,b表示块设备文件,l表示符号链接文件,r表示可读权限,w表示可写权限。

linux文件属性解读:

文件类型:

-:普通文件 (f)
d:目录文件
b:块设备文件 (block)
c:字符设备文件 (character)
l:符号链接文件(symbolic link file)
p:命令管道文件(pipe)
s:套接字文件(socket)
文件权限: 9位,每3位一组,每一组:rwx(读,写,执行),当改组不具有某一权限用-代替。
第一组为: 文件拥有者的权限, 该文件的拥有者可以读写,但不可执行;
第二组为: 同群组的权限
第三组为: 其他非本群组的权限

下面看下linux中的文件种类

(1)普通文件('-', regluar file)

分为:二进制文件和文本文件

二进制文件,是给机器看的,例如:.bin, .elf文件

文本文件:给人看的,一般为ASCII编码,需要用ASCII编码解析,例如:.txt,.c文件。

(2)文件夹文件 ( 'd ',  directory file)

一种特殊的文件,特殊在:需要用其库函数打开。

(3)链接文件 ('l', link file)

这里是软连接文件,

注意:软连接文件和硬链接文件的差别,

软连接文件,本身就是一个独立的文件,有自己的 inode,

硬链接文件,不是独立的文件,他和被链接的文件共用同一个 inode.

(4)管道文件 ('p', piple file)

用于进程通信。

(5)套接字文件 ('s', socket file)

用于网络。

(6)字符设备文件 ('c', character file)

为虚拟文件,因为本身不存在于硬盘中,是fs创建的。

不能直接读写,要使用API.

(7)块设备文件 ('b', block file)

也是虚拟文件,为fd创建,要使用API读写。

3. 如何获取一个文件的属性?

(1)shell 中使用 stat 命令

(2)程序中使用 stat API

4. 文件的权限

(1)文件权限如何获得?

在程序中使用 stat API,可以获得 st_mode 元素,st_mode 是一个以位为单位记录内容,所以只需要对对应位进行 & 即可,linux提供了对应的宏,可以用宏。

(2)如何判断程序对文件是否有权限?

首先,程序对文件的权限,是由执行程序的用户决定的,用户有权限,程序就有,用户没有,程序就没有,其次在程序中判断是否有权限使用 access API,最后,优秀程序在执行开始首先要对操作的文件判断权限,如果没有权限,需要对使用者进行提醒。

(3)如何修改权限?

shell中有chmod命令,同样也有chmod API,所以使用这个API即可。

(4)新创建的文件的权限是怎么确定的?

linux有个 umask 的类似于变量的东西,新文件的权限通过 umask 来确定。umask可以在shell中改变。

总结

以上所述是小编给大家介绍的linux中crw brw lrw等等文件属性是什么 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 浅谈linux rwxrwxrwt文件夹属性

    /tmp 的permission是rwxrwxrwt chmod 0777 /abc       rwxrwxrwx chmod  777 /abc        rwxrwxrwx chmod 1777  /abc      rwxrwxrwt The "t" character in your permission indicates that only the user (and the root) that has created the file inside of /tmp

  • linux 查看文件的属性(ls,lsattr,file,stat)实例详解

    查看文件属性有多种方法,且这些方法中偏向不同,具体如下: 1,ls ls -a 查看所有文件 ls -l 查看详细的属性 2,lsattr 查看文件的扩展属性, 如果文件被 chattr +i   添加了写保护, 用lsattr可以看到添加的属性 3,file 查看文件的类型 4,stat 查看文件的状态 测试结果: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • linux中crw brw lrw等等文件属性是什么

    什么是文件? 所有的文件其实都是一串字符流,不过当用合适的解析方法,可以得到有效信息,人们为了方便对文件进行操作,便按照文件的解析方法的不同,给了文件不同的种类,并用下边的方式来标记给人看. 今天在查看 /dev/fuse 文件的属性的时候,看到了crw_ 权限位,一时反应不过来: [root@localhost ~]# ll /dev/fuse crw-rw-rw-. 1 root root 10, 229 Sep 20 11:12 /dev/fuse 在这里进行备注一下,相关答案来源于网络.

  • Linux中的搜索文件命令

    文件搜索命令locate:搜索快,新建文件无法搜索: 命令格式: locate 文件名  //在后台数据库中按文件名搜索,搜索速度快: /var/lib/mlocate : locate命令所搜索的后台数据库 命令:updatedb // 更新数据库,默认是一天自动更新: /etc/uodatedb.conf 配置文件中: 1.      PRUNE_BIND_MOUNTS = "yes" 开启搜索限制 2.      PRINEFS = 搜索时,不搜索的文件系统: 3.      P

  • 浅谈Linux中的chattr与lsattr命令

    PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了.通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录.chattr命令不能保护/./dev./tmp./var目录.lsattr命令是显示chattr命令设置的文件属性. 这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,ch

  • Linux中stat函数和stat命令使用详解

    stat函数和stat命令 linux文件里的[inode = index node]解释:要理解inode必须了解磁盘和[目录项],inode实际是连接[目录项]和磁盘的中间物质. 图里的大圈代表硬件的磁盘,里面的小圈代表某个文件存储在磁盘上了. [inode = index node]的node(承载node信息的结构体是:stat,stat的定义在后面 )里面有: 文件大小 文件的最后修改时间 文件的所属用户 文件的权限 硬链接计数(ls -l 显示出来的数字) 块位置:指定文件存储在磁盘

  • Linux中文件的基本属性介绍

    一.查看文件属性和权限 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如: [root@www /]# ls -l total 64 dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin dr-xr-xr-x 4 root root 409

  • 详解Linux中两个查找命令locate和find教程

    Linux中有很多查找命令,今天主要讲解locate,find两个命令. 1.locate locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库. (

  • linux中cd命令使用详解

    Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. 命令格式: cd [目录名] 2. 命令功能: 切换当前目录至dirName 3. 常用范例 3.1 例一:进入系统根目录 命令: cd / 输出: [root@localhost ~]# cd /   说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了 命令: cd

  • 详解如何在 Linux 中安装最新的 Python 3.6 版本

    在这篇文章中,我将展示如何在 CentOS/RHEL 7.Debian 以及它的衍生版本比如 Ubuntu(最新的 Ubuntu 16.04 LTS 版本已经安装了最新的 Python 版本)或 Linux Mint 上安装和使用 Python 3.x .我们的重点是安装可用于命令行的核心语言工具. 然后,我们也会阐述如何安装 Python IDLE - 一个基于 GUI 的工具,它允许我们运行 Python 代码和创建独立函数. 在 Linux 中安装 Python 3.6 在我写这篇文章的时

  • linux 中vim的用法讲解

    Vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,而 gVim 则是其 Windows 版.它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的各种巧妙组合操作却能带来极为大幅的效率提升. vim的命令的一些格式 1:vim xxx 直接打开一个xxx命名的vim文件,如果没有的话直接创建一个新的.默认光标定义到第一行 2:vim + xxx 打开光标并定义到最后一行 3:vim +num xxx 打开光标定义到

  • linux 中的atq命令

    atq命令显示系统中待执行的任务列表,也就是列出当前用户的at任务列表. 语法 atq(选项) 选项 -V:显示版本号: -q:查询指定队列的任务. 实例 at now + 10 minutes at> echo 1111 at> <eot> job 3 at Fri Apr 26 12:56:00 2013 atq 3 Fri Apr 26 12:56:00 2013 a root 总结 以上所述是小编给大家介绍的linux 中的atq命令,希望对大家有所帮助,如果大家有任何疑问

随机推荐