PHPer 高手之路
  • Introduction
  • First Chapter
  • 基础
    • 数据类型和常量
    • 字符串
      • 字符编码
      • 字符编码相关编程
    • 引用变量
    • 运算符与错误控制符@
    • 流程控制与条件判断
      • foreach遍历中的引用
    • 函数
    • 文件及目录处理
  • PHP 数组
    • 基础
    • PHP数组操作
    • 输入流 php://input
    • PHP数组的内部实现
    • PHP数组和数据结构
    • 示例技巧
  • PHP文件编程
    • 文件系统
    • 基础
    • 实例技巧
    • PHP中XML处理
    • PHP中JSON处理
    • PHP中CSV处理
    • 大文件上传
  • 正则表达式
    • 基础
    • 正则的引擎
    • 表达式的优化
    • PHP中正则的使用
  • PHP 编码技巧
    • PHP编码习惯
    • PHP语法糖
    • PHP代码优化
    • PHP重点新特性
    • PHP编码规范
  • PHP选项和运行原理
    • PHP SAPI
    • PHP运行模式及安装方式
    • 附录:进程和线程的Q解
    • Apache下的MPM模式
    • Apache 与 Nginx
    • PHP的运行机制及原理
    • PHP垃圾回收机制
    • PHP配置选项
  • PHP安全
    • 跨站脚本攻击(XSS )
    • 跨站请求伪造(CRSF)
  • PHP 高级特性
    • 异常处理(Exceptions)
    • 代码复用(Trait)
    • 预定义接口(Predefined Interfaces)
    • 魔术方法(Magic Methods)
    • 回调函数、匿名函数&闭包
    • 命名空间(Namespaces)
    • 自动加载(Autoload)
    • 反射(Reflection)
    • 魔术常量(Magic constants)
    • 综合实例
  • 附录:关键词
  • 附录:资料
  • 代码的版本控制
    • SVN
    • Git
      • 疑难杂症
  • Linux
    • Linux原理与基础
    • 常见命令
    • Shell 编程
    • awk 与 sed
    • 命令笔记
  • HTTP 协议
    • 请求方法与返回状态码
    • Cookie、Session 的原理
  • MySQL
    • MySQL表存储引擎
  • 标准PHP库(SPL)
    • 数据结构
      • SplPriorityQueue - 优先队列
      • SplQueue - 队列
      • SplStack - 栈的功能
    • 接口
      • Countable - count统计接口
  • 附录:ElasticSearch
  • PHP数据结构
  • 附录:Rabbitmq
  • 附录:guzzle
  • JavaScript
    • 附录:资料
  • 疑难杂症
Powered by GitBook
On this page
  • Linux 的启动过程
  • Linux 中的文件及权限
  • raid

Was this helpful?

  1. Linux

Linux原理与基础

Linux 的启动过程

  1. BIOS 检查硬件,读取主启动磁盘MBR区的系统装载程序(Boot Loader,CentOS中一般为GRUB)并执行,显示给用户一个选择界面x

  2. 用户选择要启动的系统,即选定了相应的内核(vmlinuz), Boot Loader 通过 initrd 在内存中建立一个供内核使用的临时文件系统,然后由内核程序接管后续启动流程。

  3. 内核开始初始化系统中的各部分硬件。此时操作系统的基本环境已建立,但还没有用户程序可供人使用,于是内核继续执行,启动Linux世界中的造物主 —— /sbin/init

  4. /sbin/init 进程启动后,自然成为 Linux 中所有进程的父/爷进程。它会首先调用 /etc/rc.d/rc.sysinit 脚本,完成设置环境变量,交换分区,初始化系统时钟等工作。然后调用/etc/inittab,执行相应运行级别下的程序脚本(/etc/rc.d/rc<x>.d/* )启动或杀掉相应进程。

  5. 各启动脚本执行完毕后,init 按/etc/inittab 中的配置启动相应的控制台交互界面,提示用户登录(字符界面下默认有6个虚拟控制台,Alt+Fx 切换)

设置程序自动启动的三种方法:

  1. /etc/rc.d/rc.local 中写启动命令;

  2. /etc/rc.d/init.d/* 写shell脚本,然后在 /etc/rc*.d 中建立软连接。

  3. 使用 chkconfig 工具, 如 chkconfig --level 2345 auditd on

Linux 中的文件及权限

-rwxr-xr-x 1 cat animal    68 03-31 21:47 sleep.sh

三种用户角色:

  • user ,文件的所有者

  • group,所属的用户组

  • others,其他人

每个文件或目录有三种基本权限类型:

权限

数字

文件含义

目录含义

read

4

可读取文件内容

可列出目录内容

write

2

可修改文件内容

可修改目录内容,包括删除、移动目录中的文件等

execute

1

可作为程序执行

可切换到目录中,如 cd x

示例:

-rwxr-xr-x 1 root root  68 03-31 21:47 test.php
-rwsr-xr-x 1 root root 47032  7月 16  2015 /usr/bin/passwd*

s位

  • setuid(4):该位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令。

  • setgid(2): 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

  • sticky bit(1): 该位可以理解为防删除位 。如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件

想让普通用户只能追加写文件,无法删除文件,如何做?

chattr +a /var/log/access_log

想让用户只能读不能改PHP的配置文件,如何做?

chattr +i /etc/php.ini

Ext2,Ext3,Ext4文件系统对比

Ext2

Ext3

Ext4

日志系统

无

有

增强

最大文件

2T

2T

16T

最大文件系统

32T

32T

1E

文件夹内文件数

32000

32000

64000

切换成本(tune2fs)

底

低

低

查看命令df -T

raid

磁盘阵列中针对不同的应用使用的不同技术,称为RAID 等级

PreviousLinuxNext常见命令

Last updated 5 years ago

Was this helpful?

为什么普通用户可以执行passwd,修改/etc/passwd?

linux权限补充:rwt rwT rws rwS 特殊权限
RAID详解[RAID0/RAID1/RAID10/RAID5]