1、七种文件类型
普通文件类型
Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-]
目录文件
就是目录, 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx]
块设备文件
块设备文件 : 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。第一个属性为 [b]
字符设备
字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]
套接字文件
这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型
管道文件
FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为 [p]
链接文件
类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx]
2.文件权限
chown [options] [username:group/id] [filename] 修改文件所有者
-R : 处理指定目录以及其子目录下的所有文件
--reference=参考文件
chgrp [options] [group/id] [filename] 修改文件的所有组
-R : 处理指定目录以及其子目录下的所有文件
--reference=参考文件
chmod [option] [filename] 修改文件权限
八进制模式:
例:chmod 0777 Hello.java (0777:sgt+u+g+o)
特殊位:suid=4,sgid=2,sticky=1 权限位: r=4,w=2,x=1
权限组标识:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
操作符:Demo:chmod ug+rw,g-w,o=x Hello.java
+(加入) -(除去) =(唯一)
权限:
r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x (execute):该文件具有可以被系统执行的权限。linux下文件是否可以执行和扩展名无关
普通文件
即实际保存数据的地方,其并不具备删除自身的权限
r:可读取文件的实际内容
w:可编辑、新增、修改该文件的实际内容
x:可被执行
目录文件
即保存有目录结构和文件权限
r:可读取目录结构和权限
w:可更改目录结构列表、新建、删除、重命名、转移子文件、目录
x:表示用户可进入到该目录中
额外权限:
u +- s(s具有x权限时生效\S无效):设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限
g +- s(s具有x权限时生效\S无效):该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组
o +- t(o具有x权限是生效\T无效):该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限.
如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位.
设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.
3.文件隐藏权限:
chattr 设置文件操作权限
lsattr 查看文件操作权限
Linux chattr命令用于改变文件属性。
这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防意外删除。
语法:
chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]
参数:
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。
实例
用chattr命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf
文件权限图理解: