目录与文件的权限


文件的权限容易理解, 这里看一下目录的权限

r 可读取目录下的文件名
w 可以新建,删除,修改文件名,移动文件位置
x 表示可以进入该目录成为工作目录

一般开放的目录至少具有rx两个权限

示例:
两个文件

  • /dir1/file1
  • /dir2

完成以下操作需要的权限:

操作 /dir1 /dir1/file1 /dir2 重点
读取file1内容 x r - 进入/dir1目录读取文件
修改file1内容 x rw - 进入/dir1且能修改文件
执行file1内容 x rx - 进入/dir1并运行file1
删除file1文件 wx - - 进行/dir1并能修改目录
将file1复制到/dir2 x r wx 读file1且能修改/dir2

特别理解最后一条操作

Linux文件种类


一张表来表示吧

字符 名称 说明
- 常规文件,主要分为
- ASCII纯文本文件
- 二进制可执行文件
- 数据文件
最常见了
d 目录
b 区块设备文件 如磁盘设备文件/dev/sda
c 字符设备文件 串行端口的设备如键盘,鼠标
s socket数据接口文件 /run下常见
f 管道, FIFO 解决多个程序同时读写一个文件的错误
l 链接文件
n 网络设备

共享文件


实现共享文件的思路是设置用户组, 但我们知道新建文件会设置默认的用户的用户组,这时候想要让文件设置特定的用户和用户组就需要使用信息位S.
三个额外的信息位:

  • 设置用户ID(SUID)
  • 设置用户组ID(SGID)
  • 粘着位: 进程结束后文件还存留在内存中.

示例:
创建一个目录并设置用户组test,使其下创建的用户组都为test

  1. mkdir test
  2. chgrp g+s test dir
  3. umask
  4. cd dir && touch file