Linux文件权限与目录配置
- Linux一般将文件可存取的身份分为3种,分别是 owner、group、others
- Linux系统你默认系统上的所有账号与一般身份使用者,以及root 的相关信息都记录在/etc/passwd 文件内,个人的密码记录在/etc/shadow文件下
- Linux 所有的组名冀鲁豫在/etc/group文件下
一、文件属性
1.第一列时这个文件的类型与权限,占10个字符
- 第一个字符表示这个文件的类型
- d 表示文件是目录
- - 表示文件是正规文件
- 纯文本档 ASCII :可以直接读取文档数据,利用cat 指令可以对文档进行查看
- 二进制文件binary: 可以执行的二进制文件 ,指令cat就是二进制文件
- 数据格式文件data: 特定格式的文件,例如登录Linux时登陆数据会记录在/car/log/wtmp文件内,可以通过last读取,却不能通过cat读取

-
- l 表示是连接档link file,类似于快捷方式
- b表示是装置文件里的可供储存的接口设备,设备档
- c表示是装置文件里的串行端口设备,如键盘鼠标等,字符设备文件,一次性读取,不能够截断输出
- s表示资料接口文件 sockets:数据接口文件,用于网络上的数据传输
- p表示数据输送文件FIFO,pipe,用于解决多个程序同时存取一个文件所造成的错误问题
- 后面三个为一组,且均是rwx的组合,分别表示可读,可写,可执行,如果没有该项权限,用-代替
- 第一组为owner文件拥有者的权限
- 第二组为加入此群组group的权限
- 第三组为非本人且没有加入本群组的其他账号others的权限
2.第二栏表示有多少档名连接到此节点node,每个文件都会将他的权限与属性记录到文件系统的i-node中,
3.第三栏表示这个文件或目录的拥有者账号
4.第四栏表示这个文件的所属群组
5.第五栏表示这个文件的容量大小,默认单位bytes
6.第六栏表示这个文件的建档日期或最近修改日期,如果修改时间距离太久了就会只显示年份。如果要显示完整的时间格式可以使用 ls -l --full-time 显示完整日期格式
7.第七栏表示这个文件的名字,档名。如果文件前面出现.表示是隐藏档
8. Linux文件权限主要用于数据安全,系统保护,数据共享等功能
二、改变文件属性与权限
1. chgrp 改变文件所属群组
- 要被改变的组名必须存在于/etc/group 中
- 格式 chgrp [-R] 目录名/文件名
- -R 表示连通次目录下的所有文件、目录都更新成为这个群组,常常用在变更某一目录内所有的文件情况
2. chown 改变文件拥有者
- 要被改变的组名必须存在于/etc/passwd中
- 格式 chown [-R] 目录名/文件名
- -R 表示连同目录下的所有次目录或文件同时更改文件拥有者
- 当将文件拷贝复制等操作时,会连同文件的属性与权限等都顺带
3. chmod 改变文件权限
- 数字类型改变文件权限: r=4,w=2,x=1 三个值累加
- 符号类型改变文件权限
chmod | u(user,文件拥有者) |
+ 加上 - 剔除 =设定 |
r w x |
文件或目录 |
g (群组) | ||||
o (其他) | ||||
a (所有者) |
4. 文件权限
- r (read):可读取此一文件的实际内容
- w (read):可编辑、新增、修改文件内容,不能删除
- x(eXecute):文件可以被系统执行的权限
5. 目录权限
- r: 可以查询该目录下的文件名数据,可以用ls指令将该目录的内容列表显示
- w: 可以改变该目录结构
- 建立新的文件与目录
- 删除已有的文件与目录
- 将已存在的文件或目录改名
- 搬移该目录内的文件、目录位置
- x: 用户可以进入该目录,可以使用cd
组件 | 内容 | 迭代物件 | r | w | x |
文件 | 详细资料data | 文件文件夹 | 读取文件内容 | 修改文件内容,不能删除文件 | 执行文件内容 |
目录 | 档名 | 目录下的文件和目录 | 读取档名 | 目录异动 | 进入该目录 |
6. 建立文件与目录环境
- cd 进入目录
- mkdir 创建目录
- touch 创建文件
- ls 查看文件
- rm 删除文件
三、Linux文件命名
- 可执行权限与可执行程序代码不同,文件有可执行的权限表明可以使用或查看,但不代表是一个执行程序
- 可执行与执行成功不同, 文本文档可执行表明文档有被执行的能力,而不是一定执行成功
- Linux没有所谓的文件扩展名,通常以适当的扩展名表明该文件是什么种类类型
- *.sh:脚本或批处理文件scripts,shell语言编写
- *Z, *.tar, *.tar.gz, *.zip, *.tgz:打包的压缩文件
- *.html, *.php:网页相关文件,语法不同网页文件类型不同
- 文件长度限制:Linux使用传统的ext2/3/4文件系统以及CentOS 7 预设文件系统的xfs规定文件档名长度限制为
- 单一文件或目录的最大容许文件名为255bytes
- 以一个ASCII英文占用一个bytes而言,大约可以有255个字符长度
- 以一个中文字符占用2bytes而言,大约可以有128和中文
- 文件命名最好避免特殊字符如 * ? > < & ! 【 】 | \ ' " ` ( ) + -,这些特殊字符有特定含义和选项表示
四、Linux目录配置
1.依据FHS
FHS根据文件系统时使用的频繁与否与是否允许使用者随意更懂,将目录定义为四种交互作用的形态
- 可分享的: 可以分享给其他系统挂载使用的目录,包括执行文件与用户邮件数据等,可以分享给网络上其他主机
- 不可分享的:机器运作的装置文件或者时与程序有关的sockets文件等,不可共享给其他主机
- 不变的: 数据不改变,如函数库,文件说明,系统管理员所管理的主机服务配置文件
- 可变动的:经常改变的数据
2.根目录/,root
根目录衍生出其他目录,与开机、还原、系统修复等动作有关,所在分区槽越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区槽
2.1 根目录下应该有以下次目录
- /bin:单人维护模式下能被操作的指令,其下的指令可以被root和一般账号使用,如 cat chmod chown date mv mkdir cp bash等
- /boot:存放开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需配置文件等,Linux kernel常用档名为vmlinuz,如果时grub2 开机管理陈旭,还会存在/boot/grub2/的目录
- /dev:存放任何装置与接口设备的文件,存取某个装置,主要文件有 /dev/null, /dev/zero, /dev/try./dev/loop*, /dev/sd*等
- /etc:系统的主要配置文件,可以被一般用户查阅,只能被root操作,不要防止可执行文件在此目录中,比较重要的文件有/etc/modprobe, /etc/passwd,/etc/group,/etc/fstab,/etc/issue等
- /etc/opt:放置第三方协力软件/opt的相关配置文件
- /etc/X11:与X Windows相关的配置文件,尤其是xorg.conf 的 X server配置文件
- /etc/sgml:与SGML格式相关的配置文件
- /etc/xml:与XML 格式相关的配置文件
- /lib:开机时会用到的函数库,以及在/bin,/sbin下指令会呼叫的函数库。/lib/modules主要防止可抽换式的核心相关模块(驱动程序)
- /media:放置可移除的装置,如光盘、软盘等,常见档名/media/floopy, /media/cdrom
- /mnt:暂时挂载某些额外的装置
- /opt:第三方协力软件放置的目录
- /run:开机后产生的各项信息
- /sbin:开机过程所需要的包括开机修复还原系统所需要的指令,某些会放到/usr/sbin
- /src:网络服务启动所需要的数据目录,如WWW,FTO等,系统服务数据预设放置在/var/lib下
- /tmp:一般用户或者正在执行的程序暂时防止文件的地方,需要定期清理
- /usr:存放用户可分享的与不可变动的数据,占用较大硬盘容量
- /usr/bin/:一般用户可以使用的指令,现在这个目录就是/bin目录
- /usr/sbin/:非系统正常运作所需要的系统指令,如网络服务器软件的服务指令,目前/sbin链接到此目录
- /usr/lib/:与/lib功能相同,被/lib链接
- /usr/local/:自行安装其他软件的默认存放目录
- /usr/share/:存放只读架构的数据文件和共享文件,常见的次目录有../man(联机帮助文件), ../doc(软件文档说明), ../zoneinfo(时区信息文件)
- /usr/games/:与游戏相关的数据
- /usr/include/:与C、C++等程序语言的档头与包含档的数据,当以tarball方式(*.tat.gz)安装软件时,会使用到需要包含档
- /usr/libtext/:不被一般使用者管用的执行档或甲苯,X窗口底下的操作指令
- /usr/lib<qual>: 与/lib<qual>功能系统,被他链接
- /usr/src/:一般原始码繁殖位置,核心原始码放置在../linux目录
- /var: 系统运作后才会渐渐占用硬盘容量,主要针对常态性变动的文件,包括快取,登录档以及某些软件运行产生的文件,如程序文件(lock,file,run file),数据库文件等
- /var/cache/:应用程序本身运作过程中会产生的一些暂存档
- /var/lib/:程序本身执行过程中需要使用的数据文件放置目录,此目录下各自的软件要有各自的目录
- /var/lock/:某些装置或文件资源一次只能被一个应用程序占用,如果出现错误需要上锁,放置在此目录中
- /var/log/:登陆文件的放置目录,如../messages, ../wtmp(记录登入者的信息)
- /var/mail/:放置个人电子邮箱的目录,也被放置到/var/spool/mail/目录中,互为链接文件
- /var/run/:服务启动后的PID放置目录
- /var/spool/:放置排队需要等待其他程序使用的数据
2.2 根目录还可以存放以下次目录
- /home: 系统默认的家目录,新增一个一般使用者默认的用户家目录, ~ 表示目前这个用户的家目录,~xxx表示xxx的家目录
- /lib<qual>:存放与/lib不同格式的二进制函数库
- /root:系统管理员的家目录
2.3 其他的重要目录
- /lost+found:使用标准的ext2/3/4文件系统格式才会产生的目录,当文件系统发生错误时会将一些遗失的片段放置到这个目录下
- /proc:本身是一个虚拟文件系统,放置的数据都在内存中,不占硬盘空间,如/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioprots,/proc/net/*
- /sys:虚拟文件系统,记录核心与系统硬件信息相关的信息,包括已加载的核心模块与核心侦测到的硬件装置信息等
早期Linux要求/etc,/bin,/sbin,/dev,/lib必须和根目录/放置在一起,目前/sbin,/bin,/ib被移到/usr了,且/usr可以在救援模式下挂载
2.4 Cent OS 的目录变化
2.5 查看CentOS
- uname -r
- uname -m
- yum install xxx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)