Linux系统文件类型和文件权限
1.文件类型
Linux系统认为一切皆文件
所以Linux将所有的东西都看做文件,所以将其分了这些类:
- 普通文件 “-”
- 目录文件 “d” (directory)
- 管道文件 “p” (piping)
- 链接文件 “l” (link)
- 设备文件(块设备“b”(block), 字符设备“c”(char))
- 套接字文件 “s” (socket)
具体含义解释:
管道文件:进程间通讯的一种手段
链接文件:软链接(字符链接)和硬链接,软链接可以认为是windows下的快捷方式
设备文件:块设备:可以从任意位置读取一定长度的设备:例如磁盘,U盘,TF卡等等
设备文件:字符设备:只能一字节一字节的读取,不能随机读取,例如鼠标,键盘等等
套接字文件:网络通讯的一种方式
linux系统不以后缀名去区分文件类型,后缀名的作用就是帮助我们确定用哪个软件打开它
在ubuntu系统中, /bin和/usr/bin其实是用一个地方 但是在红帽子系统上,这俩是区分开的。
2.文件权限
- r 读权限 值:4
- w 写权限 值:2
- x 执行权限 值:1 对于普通文件代表执行权限,对于目录文件,代表可进入权限
- -无权限 值:0
例如:
- u:user 属主的访问权限(拥有者)
- g:group 属组的访问权限(和拥有者同小组的人)
- o:other 其他人的访问权限
3.如果修改文件权限
这里有两个修改方法:
- 文字设定法
- 数字设定法
3.1 文字设定法
chmod 修改权限的命令
- u:user 属主的访问权限(拥有者)
- g:group 属组的访问权限(和拥有者同小组的人)
- o:other 其他人的访问权限
- a:all 所有人
- +:添加权限
- -:去掉权限
- =:表示直接赋值权限
注意:如果想同时给属主,属组,其他人修改权限,用逗号隔开即可
例如:当前文件权限如下:
此时我如果想给main2这个可执行文件进行权限修改,去除掉属主的执行权限,命令如下:
然后,又想给属主减一个r权限,对属组减去一个w权限,对其他人添加一个w权限,命令如下:
然后,又想让属主,属组 ,其他人权限都没有,命令如下:
最后,我想让main2恢复到开始的权限(rwxrwxr-x),命令如下:
3.2 数字设定法
- r:read 值4(100)
- w:write 值2 (010)
- x:execute 值1 (001)
chmod XXX filename (0<=x<=7)
- 0 :没有权限
- 1:–x(001)
- 2:-w- (010)
- 3:-wx(011)
- 4:r–(100)
- 5:r-x(101)
- 6:rw-(110)
- 7:rwx(111)
touch filename 创建普通文件
mkdir dirname 创建目录文件