linux最优秀的地方之一就在于它的多人多任务环境。而为了让各个用户具有保密的文件数据,文件的权限管理就很重要。
1、用户身份
对于一个文件用户有三种身份,文件拥有者(User),用户组(Group),其他人(Others)。
2、linux权限概念
2.1linux文件属性
使用ls -al查看文件属性
1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|
权限 | 链接 | 拥有者 | 用户组 | 文件容量 | 修改日期 | 文件名 |
首先看权限的详细含义
- 第一个字符代表文件是目录,文件,链接文件
d | - | l | b | c |
---|---|---|---|---|
目录 | 文件 | 链接文件 | 设备文件内可供存取的周边设备 | 设备文件中的串行端口文件 |
- 接下来9个字符,三个为一组,rwx三个参数组合,r代表可读,w代表可写,x代表可执行,-代表没有权限。
第一组 | 第二组 | 第三组 |
---|---|---|
文件拥有者权限 | 加入用户组账户的权限 | 其他人的权限 |
然后我们看链接的含义:每个文件都会将他的权限和属性记录到文件系统的inode中,但是目录树却是使用文件名来记录,因此每个文件名就会链接到一个inode中,这个属性记录了有多少不同的文件名链接到相同的inode号中。
用户组:一个账户可以加入多个用户组。
容量大小:默认单位为Bytes
日期:最近的创建日期或修改日期
文件名:以‘.’开头的文件是隐藏文件
2.2如何修改文件的属性与权限
- chgrp:修改文件所属用户组
- chown:修改文件拥有者
- chmod:修改文件的权限
2.2.1修改所属用户组
chgrp是change group的缩写,要求被修改的组名必须要在:/etc/group中存在。
修改方式:chgrp 组名 文件名
2.2.2 修改文件拥有者
chown是change woner的缩写,要求被修改的账户必须要在:/etc/passwd
中有记录的用户名称。
修改方式:chown 账户名称 文件/目录
chown 账户名称:用户组名称 文件/目录
使用-r递归参数可以将目录下所有子目录或文件同时修改文件拥有者。
也可以将:使用.代替。但是有些人会用户名中带有.这样会造成系统误判,chown命令也能单独修改用户组,chown .组名 文件名
2.3chmod 修改权限
Linux文件的基本权限有9个,分别是拥有者,所属群组,其他人每个身份对应三种身份。每个身份对应一个数字。
r | w | x |
---|---|---|
4 | 2 | 1 |
每个身份各自的三个权限数字需要累加,
例如:-rwxrwx—
owner | group | others |
---|---|---|
4+2+1 | 4+2+1 | 0+0+0 |
设置权限时每个身份使用一个数字。
chmod [-R] 770 filename 修改权限 [递归] 770 文件名
chmod | u g o a | + - = | r w x | 文件或目录 |
u:user g:group o:others a:all
+:增加 -:减少 = 设置
r:读 w:写 x:执行
chmod o+rw filename
2.4目录与文件权限的意义
权限对于文件
r | 可读取此文件的实际内容 |
---|---|
w | 可以编辑新增修改文件内容 |
x | 该文件具有可以被系统执行的权限 |
linux中文件能否执行是由x来决定的,windows中是由扩展名。
权限对于目录
r | 具有读取目录结构的权限,可以使用ls查看 |
---|---|
w | 建立新的文件与目录,删除存在的文件与目录,更名,移动文件或目录位置 |
x | 用户能否进入该目录成为工作目录 |
如何希望用户查看目录下的文件最少也需要给rx权限,但是不能给w权限,给与w权限代表用户可以随意删除文件。
2.5Linux文件种类与扩展名
linux文件种类
常规文件 | 目录 | 链接文件 | 设备与设备文件 | 数据接口文件 | 数据传输文件 |
---|---|---|---|---|---|
纯文本文件 | 区块 | ||||
二进制文件 | 字符 | ||||
数据文件 |
linux扩展文件名
linux的扩展文件名不会影响执行,扩展文件名只是便于用户记忆文件种类
*.sh | 脚本文件 |
---|---|
*Z、.tar … | 压缩文件 |
*.html 、*.php | html文档 |
linux文件名长度
对于xfs来说,文件名长度限制为255字节
linux文件名限制
避免特殊符号:* ? > < ; & ! [ ] | \ ’ " ` ( ) {}
因为在命令行模式这个符号有特殊含义,系统容易误判。以"."开头的是隐藏文件,很多命令有选项-option 尽量避免文件名开头使用 -或+
3 Linux目录配置
Linux每个发行版文件结构都很相似,原因在于有一个标准FHS(Filesystem Hierarchy Standard)。FHS的主要目的是希望用户可以了解到已安装软件通常放置于那个目录下。FHS重点规范每个特定目录下应该要放置什么样子的数据,这样linux操作系统可以保持既有目录架构不变,也能开发出开发者想要的独特风格。
这些目录架构内容繁多,只用几句话介绍几个目录其余的内容等渐入佳境后学习。
/(root根目录):与启动系统有关,所有目录都由根目录衍生出来,根目录与启动还原系统修复等操作有关。FHS标准要求,根目录所在分区越小越好,不予其他文件放置于同一分区。
/usr (UNIX Software Resource)UNIX操作系统软件资源放置目录
/var 针对经常性变动的文件例如缓存,日志文件,软件运行产生的文件,程序文件,mysql数据文件。
3.2目录树
所有目录都是由根目录衍生,整个文件系统是一个树形结构。
目录树可以挂载网络上的特定目录,(Network File System)
每个文件名都是独一无二的(包括完整路径)
3.3绝对路径和相对路径
绝对路径是从根目录开始写起
相对路径是从当前路径开始写起。