目录
linux最优秀的地方之一就是其多人多任务环境。这时候文件管理的权限就很重要了,linux将文件的可读写的身份分为三种:使用者/拥有者(user以下简称u)、所属群组或用户组(group以下简称g)、其他人(others以下简称o—注意和owner区分)。
上图中假设我们是用户A,则对于A用户的文件文件来说我们是u,ABC三个用户共同属于群组G1,所以BC用户对于A的文件来说就是g,同理DE对于A的文件来说就是o。
1. linux文件权限概念
1.1 文件属性

接下来按照依次的顺序对每个部分进行介绍。
1.1.1 文件类型与权限★
第一个字符代表文件类型,文件类型标识如下
d | 目录 |
- | 文件(纯文本文件、二进制文件、数据文件) |
l(L的小写) | 链接文件 |
b | 设备文件里可供存储的周边设备(具有随机读取的设备) |
c | 设备文件里面的串行端口设备如:键盘(一次性读取设备) |
后面的九个字符每三个分别代表u、g、o的权限。r代表可读,w代表可写,x代表可执行。没有对应权限的会用“-”来占位。
例如:-rwxr--r-x:代表此文件类型是文件,使用者的权限是可读可写可执行,所属群组中其他的使用者权限是可读,其他人的权限是可读可执行。
1.2 修改文件属性和权限
1.2.1 chgrp——修改所属用户组
记忆:change group
chgrp [-R] dirname/filename ...
-R: 包含子目录下所有的文件、目录都更新
注意:用户组的名称必须在/etc/group中存在
例:
chgrp users initial-setup-ks.cfg
会将initial-setup-ks.cfg的用户组改成user
1.2.2 chown——修改文件拥有者
记忆:change owner
chown [-R] 账号名称 文件或者
chown [-R] 账号名称:用户组名称 文件或者目录 //顺便修改了用户组
chown [-R] 账号名称.用户组名称 文件或者目录 //同上,但不推荐用.来分割
chown [-R] .用户组名称 文件或者目录 //单纯修改用户组
例:
chown root:root initial-setup-ks.cfg
将initial-setup-ks.cfg拥有者和用户组改成了root root
1.2.3 chmod——修改权限
1.2.3.1 数字法
将每个类型的权限按照二进制所代表的数来进行表示。例如:权限是-rwxr--r-x
user = rwx = 4+2+1 = 7
group = r-- = 4+0+0 = 4
others = r-x = 4+0+1 = 5
所以我们在设置权限的时候,权限数组就是745。
chomd [-R] 权限数字 文件或者目录
1.2.3.2 字母法
将三个类型使用者、群组、其他人分别用u、g、o来表示直接写出其权限。此外还有a来表示全部身份。还可以用+-来增减权限。
chmod u=rwx,go=rx .bashrc
将.bashrc的使用者权限改成rwx,将群组和其他人的权限改成rx
chmod a+w .bashrc
将.bashrc的所有身份都加上w权限
chmod a-w .bashrc
将.bashrc的所有身份都拿去w权限
1.2.4 cp——复制文件
cp 源文件 目标文件
cp在复制的时候会加上当前操作者的属性
2 目录与文件的权限意义★
组件 | 内容 | 代替对象 | r | w | x |
文件 | 数据data | .txt .jpg等文件 | 读到文件内容 | 修改文件内容 | 执行文件内容 |
目录 | 文件名 | 文件夹名字 | 读到文件名 | 修改文件名(或删除、增添、移动) | 进入到该目录 |
所以,当要给别人开放目录的时候,至少要给r和x,但w权限不要随便给。
3 linux目录配置
3.1 linux目录标准
linux按照FHS标准。
可分享 | 不可分享 | |
不变 | /user(软件存放处) | /etc(配置文件) |
/opt(第三方辅助软件) | /boot(启动与内核文件) | |
可变动 | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
★三个最重要的目录:
- 根目录(/):最重要的一个目录,不仅所有的目录由根目录衍生出来,而且也与启动、还原、系统修复等操作有关。建议:①越小越好②最好不要与应用程序软件放在一个分区内。
- /use:(unix software resource)与软件执行、安装有关。
- /var:经常变动的文件如:缓存、日志文件等。
3.2 目录树
3.2.1 相对路径与绝对路径
- 绝对路径:以根目录(/)开始的路径。
- 相对路径:不是以根目录(/)开始的路径。可以是./home/...或者是../home/...
3.2.2 目录有关命令
进入目录可以用cd命令。
cd 目录路径 进入指定目录
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd或cd ~ 返回home目录
★注意两个特殊的目录:
- . :代表当前目录,也可以用./来代表
- .. :代表上一层目录,也可以用../来代表