权限管理的重要性
Linux最优秀的地方之一,就在于它的多用户、多任务环境。为了让每个用户具有较保密的文件数据,文件的权限管理就变的很重要了。
一、用户与用户组的概念
1、用户与用户组的概念
①文件所有者:将自己和其他任何人隔离,使得别人无法查看文件所有者所属文件。
②用户组:将自己团队和其他团队隔离,只有自己团队的人可以查看和修改,竞争团队无法对文件进行操作。
每个账号可以所属于多个用户组,比如多个用户组的leader,可以对多个用户组的文件进行操作。
③其他人:用户组以外的其他人。
2、Linux用户与用户组记录的文件
用户的账号记录在/etc/passwd
用户的密码记录在/etc/shadow
用户组组名记录在/etc/group
用户组密码记录在/etc/gshadow
3、用户身份和权限总结
用户身份:omwer(文件所有者)、group(用户组)、others(其他人)。
权限:read、write、execute。
二、Linux文件权限概念
1、一个很重要的命令ls(显示文件与相关属性)
ls -al列出所有文件的所有权限和属性。
root权限下执行la -al结果如下: (使用root权限登录是因为改变文件权限和属性必须是root身份才能处理)
此处需要插入ls -al执行过后的图片
注意每一行和每一列的意义,每一行是一个用户,每一列的意义分别为:文件的类型与权限、有多少文件名了连接到此节点、文件或目录的所有者账号、文件的所属用户组、文件的容量大小、文件的创建文件日期或者是最近修改的日期。文件名的前面多一个.代表该文件是隐藏文件。
第1字符:文件是“目录、文件或者链接文件等”。
[d]目录
[-]文件 (普通文件、纯文本文件、二进制文件、数据格式文件)
[l]连接文件
[b]设备文件里面的可供存储的接口设备
[c]设备文件里的串行端口设备,例如键盘、鼠标等。
[s]套接字
[p]管道
第234字符:rwx的组合,文件所有者的权限。
第456字符:rwx的组合,用户组的权限。
第789字符:rwx的组合,其他非本用户组的权限。
***********目录与文件的权限意义不同,见4***************
- 第二列:有多少文件连接到此节点(i-node) 看完第八章后添加关于
看完第八章后添加关于节点的知识
- 第三列:文件或目录的“所有者账号”
- 第四列:文件所属用户组
- 第五列:文件的容量,B
- 第六列:文件的创建日期或最近修改日期。
被修改的时间距离现在太久,就会只显示年份,要想显示完整的时间,ls -l --full-time
①系统保护,以免密码被更改。
②团队开发软件和数据共享
③未将权限设置妥当的危害。
3、如何改变文件权限和属性?
①改变所属用户组chgrp 要修改的组名必须在/etc/group存在才行
chgrp [-R] dirname/filename
选项与参数:
-R:进行递归的持续更改,也即连同子目录下的所有文件、目录都更新为这个用户组,常用在更改某一目录内所有的文件情况。
②改变文件所有者chown 要修改的所有者必须在/etc/passwd中有记载才可以
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R:意义同上
???什么时候会使用chown和chgrp--------复制文件给你之外的其他人。新文件复制以后,文件权限和属性和原来相同,要想给其他人,必须更改组名、所有者
③改变权限:chmod
有两种方法,数字类型和符号类型
权限代表的分数:r---4;w-----2,x----1。当权限为[-rwxrwx---]分数则是:onwer=4+2+1=7;group=4+2+1=7;others=0+0+0=0。权限770
chmod [-R] xyz 文件或目录
参数:
xyz:数字类型的权限属性,例如:770,
-R:同上
chmod
g
-(除去)
w
文件或目录
o
=(设置)
x
a
chmod u=rwx,g=rwx,o=rwx filename
chmod a+w filename
chmod a-r filename
4、目录与文件的权限意义
①目录对文件的重要性
文件是实际含有数据的地方,包括一般文本文件、数据库的内容文件、二进制可执行文件等
- r:可以读取此文件的实际内容,如读取文本文件的文字内容等。
- w:可以编辑新增或修改文件的内容(不含删除该文件)。
- x:该文件具有被系统执行的权限。
②权限对于目录的重要性
目录的主要内容是记录文件名列表,文件名与目录有着强烈的关联。
- r:读取目录结构列表的权限,即查询该目录下的文件名数据,ls可以使用,不具有r时,ls不能使用
- w:更改目录结构列表的权限。(新建、删除、重命名、转移)
- x:用户能进入该目录称为工作目录,具有x,cd可以使用,不具有,cd不能使用。
5、Linux文件种类与扩展名
①文件种类
- 普通文件[-](regular file)--(纯文本文件:ASCII、二进制文件:binary、数据格式文件:data)
- 目录[d](directory)
- 连接文件[l]
- 设备与设备文件(device)--(块设备文件:[b]、字符设备文件[c])
- 套接字[s](sockets)
- 管道[p](pipe)
②Linux文件扩展名
*.sh脚本或批处理文件
*Z、*.tar、*.tar.gz、*.zip、*.tgz压缩文件
*.html、*.php网页相关文件
③Linux文件长度限制
单一文件或目录文件名---255字符
包含完整路径名称及目录的文件名4096字符
④文件名的限制
避免* ? < > ; ! [ ] & | ' " ` ( ) { }
三、Linux目录配置
1、Linux目录配置标准:FHS
目的:让用户可以了解到已安装软件通常防止在哪个目录下。
重点:规范每个特定的目录下应该要放置什么样的数据。
FHS将目录定义为四种交互作用的形态:
①可分享的:可以分享给其他系统挂载使用的目录,包括执行文件与用户的邮件等数据,能够分享给网络上其他主机挂载用的目录。
②不可分享的:自己机器上运行的设备文件或者是与程序相关的sicket文件等,由于仅与自身机器有关,所以不适合分享给其他主机。
③不变的:不会经常变动的,跟随者distribution而不动,例如函数库、文字说明文件、系统管理员所管理的主机服务配置文件等。
④可变动的:经常改变的数据,例如登录文件、新闻组等。
FHS仅规定了三个目录下应该放什么东西:
①/(root,根目录):与开机系统有关。根目录所在分区越小越好,安装软件不要和根目录放在一个分区
②/usr(UNIX software resource):与软件安装/执行有关。
③/var(varible):与系统运作过程有关。
根目录下要有这些子目录:
/bin 放置单用户模式下还能被操作的命令,/bin下的命令可以被一般账号和root使用。
/boot开机使用的文件,包括Linux内核文件以及开机菜单与开机所需配置文件。
/dev设备与接口设备都是以文件形式存在这个目录里。
/etc系统主要的配置文件。可以被一般用户查阅,但是只能被root修改。
/home系统默认的用户主文件夹。
/lib开机时用到的函数库。
/media可删除的设备,媒体
/mnt挂载额外的设备
/opt第三方软件放置的目录
/root系统管理员的主文件夹
/sbin开机过程中所需要的,包括了开机、修复、还原系统所需要的命令。
/srv网络服务启动之后,这些服务所需要取用的数据目录
/tmp一般用户或者是正在执行的程序暂时放置文件的地方
根目录与开机有关,开机过程总仅有根目录被挂载,其他分区是开机之后才持续进行挂载。那些目录不能与根目录分开?
/etc配置文件
/bin重要执行文件
/dev所需要的设备文件
/lib执行文件所需要的函数库与内核所需的模块
/sbin重要的系统执行文件
2、目录树
目录与文件的源头:根目录。
根目录的特性
①目录树的起点为根目录(/,root)
②每一个目录不仅可以使用本地端的文件系统,也可以使用网络上的文件系统,举例来说,可以利用Network File Systtem(NFS)服务器来挂载某特定目录等。
③每一个文件在此目录中树中的文件名(包含完整路径)都是独一无二的。
3、绝对路径和相对路径
①绝对路径:/开始写起的文件名或目录名称。
②相对路径:相对于目前路径的文件名
.当前目录./
..上一层目录../