1 文件权限
1.1 Linux文件属性
文件属性示意图:
1、第一栏代表这个文件的类型和权限
1)第一个字符代表这个文件的类型:目录、文件或链接文件
a、d 表示目录
b、- 表示文件
c、l 表示链接文件
d、b 表示装置文件中的可供存储的接口设备
e、c 表示装置文件中的串行端口设备,如:键盘、鼠标
2)接下来三个字符为一组,其中 r 代表可读,w 代表可写,x 代表可执行,这三个权限位置固定不变,若没有权限则会出现 - ;
a、第一组为文件拥有者权限
b、第二组为所属群组的权限
c、第三组为其他权限
2、第二栏表示有多少档名连接到此节点(i-node)
3、第三栏表示此文件或目录的拥有者账号
4、第四栏表示这个文件的所属群组
5、第五栏为这个文件的容量大小,默认单位为bytes
6、第六栏为这个文件的建档日期或最近修改日期
ls -l --full-time 查看完整时间
7、第七栏为文件名或目录名
1.2 Linux文件权限重要性
1、系统保护功能
2、团队开发软件或数据共享功能
3、未将权限设定妥当的危害
1.3 修改文件属性与权限
1、chgrp 改变所属群组
chgrp [-R] user dirname/filename -R 表示此目录下所有文件、目录都归属于这个群组
备注:所修改的群组必须是 etc/group 中存在的
2、chown 改变文件拥有者
chown [-R] 账号名称 dirname/filename 修改拥有者
chown [-R] 账号名称:组名 dirname/filename 修改拥有者及群组
备注:所修改的拥有者必须是 etc/passwd 中存在的用户
3、chmod 修改文件权限
1)数字类型修改文件权限
r : 4 w : 2 x : 1
每种身份(owner/group/others)各自的三种权限是(r/w/x)需要累加。
chmod [-R] xyz dirname/filename xyz代表三种身份的权限之和
如:chmod 777 test.txt,表示三种身份(owner/group/others)都有读、写、执行权限
2)符号类型修改文件权限
三种身份:(1)user (2)group (3)others,我们可以用 u,g,o 代表,a 代表 all
如:chmod u=rwx,go=rx test.txt
chmod a-x test.txt
chmod g+x test.txt
1.4 目录与文件之权限意义
1、权限对文件的重要性
r :k可读取此文件的实际内容
w :k可编辑、新增或修改文件内容
x :被系统可执行的权限。文件是否能被执行,由 xq权限决定,与文件的 扩展名m没有绝对关系!
2、权限对目录的重要性
r : 具有读取目录结构列表的权限,ls
w : 具有异动该目录结构列表的权限
建立新的文件与目录
删除已存在的文件与目录(不论该文件的权限为何!)
将已存在的文件或目录进行更名
搬移该目录内的文件、目录位置
x : 用户能否进入该目录成为工作目录,cd dirname
2 Linux 目录配置
1、Linux目录配置的依据--FHS(Filesystem Hierarchy Standard)
FHS主要目的:让使用者可以了解到已安装软件通常放置于那个目录下
/(root,根目录):与开机系统有关
/usr(unix software resource):与软件安装/执行有关
/var(variable):与系统运行过程有关
目录 | 应放置文件内容 |
第一部分:FHS要求必须存在的目录 | |
/bin | 系统有很多放置执行文件的目录,但/bin 比较特殊。因为/bin 放置的是在单人维护模式下还能够别操作的指令。在/bin 底下的指令可以被root与一般账号所使用,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等常用指令。 |
/boot | 这个目录主要放置开机会使用到的文件,包括Linux 核心文件以及开机选单与开机所需配置文件等。Linux kernel 常用的档名为:wmlinuz,如果使用的是 grub2 这个开机管理程序,则还会存在/boot/grub2/ 这个目录! |
/dev | 在Linux 系统上,任何装置与接口设备都是以文件的型态存在于这个目录当中的。你只要透过存取这个目录底下的某个文件,就等于存取某个装置,比较重要的文件有/dev/null,/dev/zero,/dev/tty,/dev/loop*,/dev/sd*等。 |
/etc |
系统主要的配置文件几乎都放置在这个目录,例如人员的账号密码文件、各种服务的启动档等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,但是只有 root 有权限修改。FHS 建议不要放置可执行文件(binary)在这个目录。比较重要的文件有:/etc/modprobe.d/,/etc/passwd,/etc/fstab,/etc/issue 等。另外 FHS 还规范几个重要目录最好要存在 /etc/ 目录下: /etc/opt(必要):这个目录放置第三方协力软件 /optx相关配置文件 /etc/X11(建议):与 X Windowy有关的各种配置文件都在这里,尤其是 xorg.conf 这个 X Server 的配置文件 /etc/sgml(建议):与 SGMLg格式有关的各项配置文件 /etc/xml(建议):与 XMLg格式有关的各项配置文件 |
/lib |
/lib 放置的是在开机时会用到的函式库,以及在 /bin 或 /sbin 底下的指令会呼叫的函式库而已。函式库可以理解为外挂,某些指令必须有这些外挂才能顺利完成执行。FSH 要求必须存在的目录: /lib/modules/:这个目录主要放置可抽换式的核心相关模块(驱动程序) |
/media |
/media 底下放置的是可移除的装置,包括软盘、光盘、DVD 等。常见档名有: /media/floppy /media/cdrom |
/mnt | 挂载某些额外的装置 |
/opt | 这是给第三方协力软件放置的目录。 |
/run | 放置系统开机后产生的各项信息 |
/sbin | 放在 /sbin 底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。常见指令包括:fdisk,fsck,ifconfig,mkfs等 |
/srv | service 的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录,常见的服务:WWW,FTP等 |
/tmp | 一般用户或正在执行的程序暂时放置文件的地方 |
/usr | 依据 FHS 的基本定义,/usr 里面放置的数据属于可分享的与不可变动的。usr 是 Unix Software Resource (Unix 操作系统软件资源)的缩写,相当于Windows系统的 C:\Windows\(当中的一部分)+C:\Program files\的综合体。 |
/home |
第二部分:FHS 建议可以存在的目录 | |
/home |
这是系统默认的用户家目录(home directory)。家目录有两种代号: ~:代表目前用户的家目录 ~dmtsai:代表 dmtsai 的家目录 |
/lib<qual> | 存放与 /lib 不同格式的二进制函式库,例如支持64位的 /lib64 函式库 |
/root | 系统管理员(root)的家目录 |
底下几个在Linux中也是非常重要的目录:
目录 | 应放置文件内容 |
/lost+found | 这个目录是使用标准的ext2/et3/ext4 文件系统格式才会产生的一个目录,目前在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 文件系统,就不会存在这个目录了。 |
/proc |
这个目录本身是一个 虚拟文件系统(virtual filesystem),他放置的数据都是在内存当中,例如系统核心、行程信息(process)、周边装置的状态及网络状态等。重要文件包括: /proc/cpuinfo /proc/dma /proc/onterrupts /proc/ioports /proc/net/* |
/sys | 虚拟文件系统,主要记录核心与系统硬件信息相关的信息,包括目前已加载的核心模块与核心侦测到的硬件装置信息等。 |
/usr 目录结构:
目录 | 应放置文件内容 |
第一部分:FHS 要求必须存在的目录 | |
/usr/bin/ | 所有一般用户能够使用的指令都放在这里!CentOs 7已经将全部用户指令放置于此,使用连结档方式将 /bin 连结于此,即 /usr/bin 与 /bin 一致。FHS 要求此目录下不应有子目录! |
/usr/lib/ | /lib 连结到此目录,与 /lib 一样 |
/usr/local/ | 系统管理员在本机自行安装自己下载的软件,建议安装到此目录。 |
/usr/sbin/ | 非系统正常运行所需要的系统指令,/sbin 连结到此目录 |
/usr/share/ |
主要放置只读架构的数据文件,当然也包括共享文件。在这个目录下放置的数据几乎是不分硬件架构均可读取的数据,常见的次目录有: /usr/share/man:联机帮助文件 /usr/share/doc:软件杂项的文件说明 /usr/share/zoneinfo:与市区有关的时区文件 |
第二部分:FHS 建议可以存在的目录 | |
/usr/games/ | 与游戏相关的数据放置处 |
usr/include/ | c/c++ 等程序语言的档头(header)与包含档(include)放置处 |
/usr/libexec/ | 某些不被一般使用者惯用的执行档或脚本(script)等等,都放置在此目录中。 |
/usr/lib<qual>/ | 与 /lib<qual>/ 功能相同,目前 /lib<qual> 就是连结到此目录中 |
/usr/src/ | 一般原始码建议放置处,src 有 sourse 的意思,核心原始码则建议放置在 /usr/src/linux/ 目录下 |
/var 是在系统运行后才会渐渐占用硬盘容量的目录,主要针对常态性变动的文件,包括快去(cache)、登录档(log file)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),或者如 MySQL 数据库的文件等。
/var 目录结构:
目录 | 应放置文件内容 |
第一部分:FHS 要求必须存在的目录 | |
/var/cache/ | 应用程序本身运作过程中会产生一些暂存档 |
/var/lib/ | 程序本身执行过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。例如:MySQL的数据库放置到 /var/lib/mysql 而 rpm 的数据库则放到 /var/lib/rpm ! |
/var/lock/ | 某些装置或文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时,就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。 |
/var/log/ | 登录文件放置的目录!里面比较重要的文件,如:/var/log/messages,/var/log/wtmp(记录登入者的信息)等。 |
/var/mail/ | 放置个人电子邮件邮箱的目录,这个目录也被放置到 /var/spool/mail/ 目录中。 |
/var/run/ | 某些程序或者服务启动后,会将他们的 PID 放置在这个目录下! |
/var/spool/ | 这个目录通常放置一些队列数据,所谓的 队列 就是排队等待其他程序使用的数据! |
原文:https://www.cnblogs.com/zhouweijie/p/11470543.html