1 Linux文件
Linux的核心思想就是“一切皆文件”
Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
——引用自C语言中文网
I/O设备也被模型化为文件,对于输入输出的操作就变成了对于文件的读和写,Linux内核提供接口给用户
2 文件权限
2.1 文件权限
文件针对属主、属组、其他三类用户定义三种权限,即读(r)、写(w)、执行(x)
使用ls -l可以看到完整的权限信息。
通常,我们用8进制数字来描述权限,如下:
- r,用4代表,表示具有读取\阅读文件内容的权限
- w,用2代表,表示具有新增、修改文件内容的权限;如果没有r,那么vi无法编辑,强制编辑的话会覆盖数据,但echo可以追加
- x,用1代表,表示有执行问价您的权限
- 1)文件本身要能够执行;
- 2)普通用户同时r权限才行;
- 3)root只要有r的权限就能执行)
- -,用0代表,无权限
上述ls -l命令中显示的第一列就是文件权限信息,共11位字符,分5部分。
- 第1位表示存档类型,d表示目录,-表示一般文件。
- 第2~4位表示当前用户的权限(属主权限)。
- 第5~7位表示同用户组的用户权限(属组权限)。
- 第8~10位表示不同用户组的用户权限(其他用户权限)。
- 第11位是一个半角句号.,表示SELinux安全标签。
用户权限每组三位,rwx分别表示读、写、执行权限,对应八进制表示为4、2、1。
例如,我们上面截图中,rw-|r--|r--
-rw-r--r--1 root root 0 Aug 3122:45 test1-1.word
按照上面的规则,就是4+2+0|4+0+0|4+0+0 = 644,也就是说,
- 属主权限:4+2+0 = 6。
- 属组权限:4+0+0 = 4。
- 其他用户权限:4+0+0 = 4。
2.2 改变文件权限方式
改变权限有两种方法。
「方法1」
chmod 数字组合 文件名
rwxr--r--对应值755
「方法2」
chmod 用户类型 [+|-|=] 权限字符 文件名
2.3 修改文件权限命令|chmod
「命令描述」
chmod命令用于修改文件权限mode,-R参数以递归方式对子目录和文件进行修改。
「示例」
1)创建文件helloworld.sh
2)输入内容hello world !!~
3)修改权限为777
4)执行文件
5)确认执行文件输出的内容
6)当我把文件权限改为644再次执行时,会提示没有权限来执行文件
7)使用组合命令可以修改属主
当然,我们还可以使用u+w,u-w,u+r,u-r,u+x,u-x 来组合使用这个命令。
2.4 修改文件的属主和属组|chown
「命令描述」
chown命令修改文件的属主和属组;-R参数以递归方式对子目录和文件进行修改;ls -l命令显示的第三列和第四列就是文件的属主和属组信息。
「示例」
1)在root用户下,新建两个用户test和admin,新建两个文件test-test.txt和test-admin.txt
2)执行权属设置
3)查看当前文件的权属
2.5 修改文件的属组|chgrp
「命令描述」
chgrp命令用于修改文件的属组。
「示例」
将文件test-test.txt文件的属组改为root,执行如下命令,查看