第六章 linux的档案权限与目录配置
linux最优秀的地方就在于它的多人多任务环境。为了让每个使用者具有较保密的档案数据,档案的权限管理就变得很重要了。linux一般档案可存储的身份分为三个类别,分别是owner/group/others, 且三种身份各有read/write/exexute等权限
一个账号可以有多个群组支持
root是万能的天神,他可以到达任何他想去的地方(如果自己不是root,最好不要在电脑上面存私人文件,太可怕了)
- /etc/passwd : 系统上的账号信息,比如说用户A,用户B
- /etc/shadow : 个人密码
- /etc/group : 群组信息
linux文件属性
ls -al
: 列出所有档案详细的权限与属性
如果档名前多了一个.表示为隐藏档
1 类型权限
一共有10个字符
第0个字符:
- d :目录
- -:档案 纯文本文档 cat读取,二进制文件,数据格式文件 last读取
- l :连接, 类似windows的快捷方式
- b :block设备,类似硬盘,U盘等存储设备
- s :网络上的数据承接
第1~3个字符:拥有者的权限;
第4~6个字符:组的权限;
第7~9个字符:其他人的权限
- r : 4 可读
- w : 2 可写,
- x : 1 可执行
- - : 0 无权限
- 7: 可读可写可执行;6:可读可写;5:可读可执行
2 连接数:有多少档名连接到此结点(inode)(这个是什么意思,看不懂)
3 拥有者
4 所属群组 : 在linux下,账号可以附属于一个或多个群组中
5 容量 : 默认单位为byte
6 最后被修改的时间mtime
7 档案的名称
如何改变文件属性与权限
chgrp [-R] group dirname/filename
: 改变档案所属群组
要被改变的组名必须在/etc/group中档案内存在
-R:进行递归的持续变更。连同次目录下地所有档案、目录都更新成为这个群组
chown [-R] user/group dirname/filename
: 改变档案拥有者
用户必须是已经存在系统中的账号,也就是/etc/passwd这个档案有记录的用户名称才能改变
复制档案:cp 来源档案 目标文件 cp会复制执行者的属性与权限
chmod [-R] 权限 dirname/filename
: 改变档案权限
方法一:数字权限
方法二:chmod a/u/g/o +/-/= r/w/x dirname/filename
- a 所有
- u 拥有者
- g 群组
- o 其他
例:chmod u=rwx,go=rx .bashrc 在不知道档案原本权限为何时,可使用这个方法。(意味着可以少调用一次ls) 要开放目录给任何人浏览时,应该至少给予rx的权限,但w的权限不可随便给
权限的意义
权限 | 文件 | 目录 |
---|---|---|
r | 读取文件内容 | 读取目录文件名列表 |
w | 修改文件内容 | 新建,修改,删除,转移目录内文件 |
x | 具有可被系统执行的权限 | 进入该目录 |
用户对于其家目录有rwx的权限
常用扩展名
- .sh:脚本
- .tar/.tar.gz/.zip/.tgz : 压缩文件
linux上文件的扩展名只是让用户了解档案的用途而已,能否执行还是要看是否有x权限
linux目录配置-FHS
开机文件
- /etc
- /bin: 存放root和一般用户常用的指令
- /dev
- /lib
- /sbin: 存放root才能使用的指令
以上这些目录不可与根目录分割在不同槽
/usr[unix software resource]
- /usr/bin: 大部分软件提供的指令存在这里
- /usr/include: c/c++程序的header和include放置处
- /usr/lib:
- /usr/local: 有了/opt,/usr/local似乎要被打入冷宫了
- /usr/share: 存放一些可以共享的文档
/var
针对经常变动的档案,如cache, log file, 以及某些档案运作所产生的档案。最好将/var独立出来,这样对于系统的数据还有一些安全性的保护!因为至少/var死掉以后,你的/还会活着嘛
- /var/cache: 应用程序缓存文件目录
- /var/lib: 应用程序数据文件目录
- /var/log: 系统用户登陆日志
- /var/mail: 个人电子邮件信箱
相对路径
- . :当前目录,也可以使用./来表示
- .. : 上一层目录,也可以使用../来表示