Linux一般将文件可读写的身份分为三个类别,分别是 拥有者(owner)、所属群组(group)、其他人(others),且三种身份各有读(read)、写(write)、执行(execute)等权限。
一、用户与用户组
不同的角色对应文件/目录,有着不同的读、写和执行的权限。
/etc/password:记录系统上的账号与一般身份用户,还有root的信息
/etc/shadow:记录用户的个人密码
/etc/group:记录组名信息
二、文件权限概念
2.1、Linux文件属性
drwxr-xr-x 2 root root 4096 Apr 25 16:43 sort_test
文件类型权限 链接数 文件拥有者 文件所属用户组 文件大小 文件最后被修改的时间 文件名
文件类型:d 目录;- 文件;l 链接文件;b 设备文件;c 设备文件里面的串行端口设备,例如键盘、鼠标
文件的类型与权限内容
d rwx r-x r-x
文件类型 文件拥有者权限 文件所属用户组权限 其他人权限
r: 读;w:写;x:执行
-:减号表示没有权限
2.2、修改文件属性与权限
chgrp:修改文件所属用户组
要被修改的组名必须要在/etc/group文件中存在,否则会报错
chgrp [-R] GROUP dirname/filename
-R: 进行递归修改,亦即连同子目录下的所有文件、目录都更新成为这个用户组
chown:修改文件拥有者
用户必须存在于/etc/passwd文件中
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录
-R:递归修改,亦即连同子目录下的所有文件都修改
chmod:修改文件权限
数字类型修改文件权限
r:4
w:2
x:1
每种身份(owner、group、others)各自的三个权限(r、w、x)数字是需要累加的
chmod [-R] xyz 文件或目录
xyz:数字类型的权限属性,为rwx属性数值的相加
-R:进行递归修改,亦即连同子目录下的所有文件都会修改
符号类型修改文件权限
三种身份(owner、group、others),可以借由u、g、o来代表,a则代表all表示全部身份。
chmod u/g/o/a +(加入)/-(移除)/=(设置) r/w/x 文件或目录
2.3、目录与文件的权限意义
组件 内容 r w x
文件 详细数据data 读到文件内容 修改文件内容 执行文件内容
目录 文件名 读到文件名 修改文件名 进入该目录的权限
注意:
1、要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给;
2、能否读取到某个文件内容,跟该文件所在的目录权限也有关系(目录至少需要有x的权限)
三、Linux目录配置
3.1、目录
/bin 存放可执行文件,放置的是在单人维护模式下还能够被使用的命令
/boot 放置启动会使用到的文件,包括Linux内核文件以及启动选项与启动所需配置文件等
/dev 任何设备与接口设备都是以文件的形式存在于这个目录中
/etc 系统主要的配置文件几乎都放在这个目录内
/etc/opt: 放置第三方辅助软件,/opt的相关配置文件
/lib 放置启动时会使用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库
/media 放置可删除的设备
/mnt 放置暂时挂载某些额外的设备
/opt 第三方辅助软件放置的目录
/run 放置系统启动所产生的各项信息
/sbin 放置启动过程中所需的,包括了启动、修复、还原系统所需要的命令
/srv 网络服务启动后,这些服务所需要使用的数据目录
/tmp 一般用户或正在执行的程序暂时放置文件的地方
/usr: UNIX操作系统软件资源所放置的目录,所以安装时会占用较大硬盘容量的目录
/usr/bin 一般用户能够使用的命令都放在这里,使用链接的方式将/bin链接至此
/usr/lib 基本上,与/lib功能相同,所以/lib就是链接到此目录
/usr/local 系统管理员在本及安装自己下载的软件,建议安装到此目录
/usr/sbin 非系统正常运行所需要的系统命令,最常见的就是某些网络服务器软件的服务命令。/sbin链接到到此目录
/usr/share 主要放置只读的数据文件,也包括共享文件
/var:系统运行后才会渐渐占用硬盘容量的目录。/var目录主要针对经常性变动的文件,包括缓存(cache)、日志文件(log file)以及某些软件运行所产生的文件,包括程序文件,或例如MySQL数据库文件等。
/var/cache 应用程序本身运行过程中会产生的一些缓存
/var/lib 程序本身执行的过程中,需要使用到的数据文件放置的目录
/var/log 日志文件放置目录
/var/run 某些程序或是服务启动后,会将它们的PID放置在这个目录中
/var/spool 通常放置一些队列数据,所谓的队列就是排队等待其他程序使用的数据,这些数据被使用后通常都会删除
3.2、绝对路径与相对路径
绝对路径:由根目录(/)开始写起的文件名或目录名称
相对路径:相对于目前路径的文件名写法,开头不是/就属于相对路径的写法
两个特殊目录:
.:代表当前的目录,也可以使用./来表示
. .:代表上一层目录,也可以. ./来表示