链接
软连接(符号链接):
- 创建软链接时一定要使用绝对路径,否则创建出来的软链接文件是失效文件。
- 软链接文件不存储具体数据,只存储原文件的绝对路径。(一旦创建大小不变)
- 当软链接对应的原文件被删除时,软连接仍然存在,但失效了。
- 源文件和软链接各自拥有不同的Inode号和Block块数。
- 两个文件不管修改哪一个均可同步
- 软链接文件权限为rwxrwxrwx,但最终生效权限以源文件为准。
- 软链接既可以链接文件,也可以链接目录,并可以跨区创建。
硬链接:
- 一个文件有多个名字时,名字之间互为硬链接,且对应同一个文件。
- 当删除有硬链接的文件时,只要没有删除掉最后一个,文件仍然存在并能打开。
- 文件详细信息中第二列的数值:源文件+硬链接的和(N-1=硬链接数)
- 拥有硬链接的文件,在修改了内容之后,Inode号不变。有多地保存了文件指向位置。
- 不能对目录创建硬链接,并且不能跨区创建。因不同分区有各自的Inode号,跨区可 能冲突。
创建方式:
软链接:
# 格式:ln -s 源文件(绝对路径) 目标位置(目标位置/新名字)
$ ln -s /root/1.txt /tmp
可以为不存在的文件创造软连接,但是是失效的。
硬链接:
# ln 源文件 目标位置(目标位置/新名字)
$ ln /root/1.txt /tmp
引用计数:
-
普通文件:
硬链接+源文件的和
-
目录文件:
当前目录内一级子目录数量。
- 一级子目录:当前目录下创建的目录
- 二级子目录:一级子目录下创建的目录
- 如:/a/b/c:b是a的一级子目录,c是a的二级子目录。
文件类型:
查看:ls -l或stat或file
- - :普通文件
- d :目录文件
- l :软链接文件-快捷键
- b :块设备文件-存储设备
- c :字符设备文件-输入输出设备
- s :套接字文件,用来实现两个进程之间通信的文件
- p :管道文件:处理多个进程对同一文件存取先后顺序问题。
当显示设备类文件的详细信息时,他的第五列不再是文件大小,而是设备编号,前半部分是主设备号,代表设备类型;后半部分是从设备号,代表同类设备中的第几个。
权限
权限类型:
-
对于文件:
- -:无权限
- r:能查看文件内容(cat more less head tail)
- w:能修改和编辑文件内容(echo vi/vim)
- x:执行权限(设置执行权限的一般都是脚本或程序或命令)
#Linux中默认新创建和新上传的文件不允许有x权限,保证系统安全性。
-
对于目录:
- -:无权限
- r:能看到目录内有哪些文件(ls)cd系统内置命令,不受限制
- w:能在目录内创建、删除、重命名。(mkdir、touch、echo、cp、mv、rm)
- x:是否能进入目录(cd)
对于目录来说r权限和x权限不能独立存在,否则没有意义,说以目录的最小权 限是—,其次是r-x。
用数字表示权限位:
- r: 4
- w: 2
- x: 1
如:
- rwxr-xr–的权限用数字表示就是754(分别是所有者、所有组、其他人)
- -rw-r–r-- : 644 #普通文件的默认权限
- drwxr-xr-x: 755 #目录文件的默认权限;文件具有执行权限。
修改权限命令:chmod
选项:
- -R:将设置到目录上的权限,递归设置到文件上。
小心使用,因为一般文件不该有x权限。
文件归属:
- 所有者:u - user 默认是文件创建者,可修改
- 所属组:g - group 默认是文件创建者所在的组
- 其他人:o - other 除去所有者和所属成员以外的其他人
- 所有人:a - all
文件权限:
- 读: r
- 写: w
- 执行: x
$ chmod u+x filename
$ chmod o-x filename
$ chmod +x filename
# +x 相当于a+x
数字权限位的使用:
# 把一个文件权限改为rw-r--r--
$ chmod 644 filename
# 不要随便给文件设置777权限,权限过大很危险。
实验测试:
-
使用root用户创建一个目录(权限:755),并在目录下创建一个新文件(权限:644 修改为777),尝试使用普通用户身份对文件进行删除,发现无法删除。
-
再次使用root用户身份创建一个目录(权限:755修改为777),并在该目录下创建一个新文件(权限644),尝试使用普通用户对文件进行删除
-
总结:对文件的删除权限并不在文件上,而在该文件所属目录(即:对目录有w权限, 就可以删除目录内的文件)
实验前提:使用普通用户测试,超级管理员不受权限限制。
# 创建用户
$ useradd username
# 设置密码
$ passwd username
Linux私有组机制:
- 创建用户时,系统会先创建一个和用户名相同的组名,然后再创建用户,并加入到该组内。
- 权限最小化:保证这类用户创建出来的文件只属于该用户
文件归属修改命令:chown
格式一:
$ chown zhangsan filename
#修改文件所有者
格式二:
$ chown :zhangsan filename
#修改文件所属组
格式三:
$ chown zhangsan:zhangsan filename
#同时修改文件的所有者和所属组
":"是分隔符号可以使用"."代替
-R:递归设置
在修改目录的归属时,连带目录内所有的子文件都修改。
umask
- root身份: 0 022
- laow身份: 0 002
第一个0代表后续数字是八进制数制
合理最大权限:
- root:
普通文件:644 + 022=666
目录文件:755 + 022=777
#对位相加法 - 普通用户:
普通文件:664 + 002=666
目录文件:775 + 002=777
#对位相加法
【最大权限】减去【umask的值】等于当前用户创建文件的【默认权限】。
【最大权限】-【umask值】=【默认权限】
# 临时修改umask值:
$ umask 0022
注意:
不能总结为:
超级管理员的umask是:022
普通管理员的umask是:002