Linux在分区上与windows不同。本文为大家介绍Linux系统硬盘分区的概念,希望对大家有所帮助。
常用PC系统中,硬盘在安装某个操作系统之前,都需要对硬盘进行分区,所以我们需要清晰的掌握分区概念,避免操作失误导致数据丢失。按照分区类型划分,硬盘分区可分为主分区、扩展分区和逻辑分区。
主分区
主分区是硬盘分区的基本类型,主分区中可直接创建文件系统供操作系统使用。硬盘分区信息是保存在硬盘分区表当中的,在硬盘分区表中只能保存4个主分区记录,所以,一块硬盘最多只能建立4个主分区。
扩展分区
扩展分区是一类特殊的硬盘主分区,扩展分区中不能直接创建文件系统,只能将扩展分区进一步的划分为逻辑分区才可以使用。扩展分区作为特殊分区需要占用硬盘分区表中4个分区记录中的1个记录。
逻辑分区
逻辑分区只能建立在扩展分区中,在逻辑分区中可以建立文件系统。逻辑分区的信息不占用分区表的记录,而是保存在扩展分区中。扩展分区和逻辑分区是为了解决硬盘主分区数量不能满足操作系统使用的问题而产生的。
分区设备的表示
在Linux中硬件设备都使用相应的设备文件进行表示,硬盘和分区也是如此,下面简述一下硬盘和分区设备的文件表现形式:
硬盘:linux中对于IDE(硬盘)设备采用“hdX”的文件格式表示,其中“X”为a、b、c或d,系统中最多有4个IDE设备,例如系统中第一个IDE设备名称为“hda”,第三个IDE设备名称为“hac”。
主分区:硬盘的主分区采用“hdXN”的文件格式表示,其中“hdX”是分区所在的硬盘,“N”是从1到4的数字,分别表示4个主分区,例如系统中第一个IDE硬盘中的第一个主分区名称为“hda1”,第一个IDE硬盘的第二个主分区名称为“hda2”。
逻辑分区:硬盘的逻辑分区与主分区采用了同样的“hdXN”文件名格式。区别于逻辑分区的“N”从“5”开始编号,例如系统中第一个IDE硬盘第一个逻辑分区名称为“hda5”,第二个逻辑分区名称为“hda6”。
掌握了硬盘设备的分区名称方式之后,在linux的安装过程中就可以明确的对硬盘进行分区了!
几乎可以肯定每个人都听说过 SELinux (更准确的说,尝试关闭过),甚至某些过往的经验让您对 SELinux 产生了偏见。不过随着日益增长的0-day 安全漏洞,或许现在是时候去了解下这个在 Linux 内核中已经有8年历史的强制性访问控制系统(MAC)了。
SELinux 与强制访问控制系统
SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。
强制访问控制系统的用途在于增强系统抵御 0-Day 攻击(利用尚未公开的漏洞实现的攻击行为)的能力。所以它不是网络防火墙或 ACL 的替代品,在用途上也不重复。
举例来说,系统上的 Apache 被发现存在一个漏洞,使得某远程用户可以访问系统上的敏感文件(比如 /etc/passwd 来获得系统已存在用户),而修复该安全漏洞的 Apache 更新补丁尚未释出。此时 SELinux 可以起到弥补该漏洞的缓和方案。因为 /etc/passwd 不具有 Apache 的访问标签,所以 Apache 对于 /etc/passwd 的访问会被 SELinux 阻止。
相比其他强制性访问控制系统,SELinux 有如下优势:
控制策略是可查询而非程序不可见的。
可以热更改策略而无需重启或者停止服务。
可以从进程初始化、继承和程序执行三个方面通过策略进行控制。
控制范围覆盖文件系统、目录、文件、文件启动描述符、端口、消息接口和网络接口。
那么 SELinux 对于系统性能有什么样的影响呢?根据 Phoronix 在 2009 年使用 Fedora 11 所做的横向比较来看,开启 SELinux 仅在少数情况下导致系统性能约 5% 的降低。
SELinux 是不是会十分影响一般桌面应用及程序开发呢?原先是,因为 SELinux 的策略主要针对服务器环境。但随着 SELinux 8年来的广泛应用,目前 SELinux 策略在一般桌面及程序开发环境下依然可以同时满足安全性及便利性的要求。以刚刚发布的 Fedora 15 为例,笔者在搭建完整的娱乐(包含多款第三方原生 Linux 游戏及 Wine 游戏)及开发环境(Android SDK + Eclipse)过程中,只有 Wine 程序的首次运行时受到 SELinux 默认策略的阻拦,在图形化的“SELinux 故障排除程序”帮助下,点击一下按钮就解决了。
了解和配置 SELinux
1. 获取当前 SELinux 运行状态
getenforce
可能返回结果有三种:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表仅记录安全警告但不阻止可疑行为,Enforcing 代表记录警告且阻止可疑行为。
目前常见发行版中,RHEL 和 Fedora 默认设置为 Enforcing,其余的如 openSUSE 等为 Permissive。
2. 改变 SELinux 运行状态
setenforce [ Enforcing | Permissive | 1 | 0 ]
该命令可以立刻改变 SELinux 运行状态,在 Enforcing 和 Permissive 之间切换,结果保持至关机。一个典型的用途是看看到底是不是SELinux 导致某个服务或者程序无法运行。若是在 setenforce 0 之后服务或者程序依然无法运行,那么就可以肯定不是 SELinux 导致的。
若是想要永久变更系统 SELinux 运行环境,可以通过更改配置文件 /etc/sysconfig/selinux 实现。注意当从 Disabled 切换到 Permissive 或者 Enforcing 模式后需要重启计算机并为整个文件系统重新创建安全标签(touch /.autorelabel && reboot)。
3. SELinux 运行策略
配置文件 /etc/sysconfig/selinux 还包含了 SELinux 运行策略的信息,通过改变变量 SELINUXTYPE 的值实现,该值有两种可能:targeted代表仅针对预制的几种网络服务和访问请求使用 SELinux 保护,strict 代表所有网络服务和访问请求都要经过 SELinux。
RHEL 和 Fedora 默认设置为 targeted,包含了对几乎所有常见网络服务的 SELinux 策略配置,已经默认安装并且可以无需修改直接使用。
若是想自己编辑 SELinux 策略,也提供了命令行下的策略编辑器 seedit 以及 Eclipse 下的编辑插件 eclipse-slide 。
4. coreutils 工具的 SELinux 模式
常见的属于 coreutils 的工具如 ps、ls 等等,可以通过增加 Z 选项的方式获知 SELinux 方面的信息。
如
system_u:system_r:initrc_t:s0 root 1000 8.9 0.0 3040 668 ? Ss 21:01 6:08 /usr/sbin/lldpad -d
如
-rwxr-xr-x. root root system_u:object_r:lib_t:s0 /usr/lib/xulrunner-2/libmozjs.so
以此类推,Z 选项可以应用在几乎全部 coreutils 工具里。
本文介绍Linux系统中网卡配置、DNS相关配置以及修改MAC地址的方法等。
/etc/hosts (本地主机ip地址映射,可以有多个别名)。
/etc/services (端口号与标准服务之间的对应关系)。
/etc/sysconfig/network (设置主机名,网关,域名)。
HOSTANME=Linux.com (主机名)(需要重启计算机才有效)
GATEWAY=192.168.1.1 (网关)
/etc/rc.d/init.d/network restart (脚本服务启动)
service network restart (同上,是命令执行)
DNS相关配置文件
/etc/host.conf
/etc/nsswitch.conf
设置DNS服务器地址
vim /etc/resolv.conf
网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg-interface-name
DEVICE=name name 物理设备名。
IPADDR=addr addr IP地址。
NETMASK=mask mask 网络掩码值。
NETWORK=addr addr 网络地址。
BROADCAST=addr addr 广播地址。
GATEWAY=addr addr 网关地址。
ONBOOT=answer answer yes(引导时激活设备)或no(引导时不激活设备)
USERCTL=answer answer yes(非root用户可以控制该设备)或no
BOOTPROTO=proto proto 取下列值之一:none,引导时不使用协议;static静态分配地址bootp,使用BOOTP协议,或dhcp,使用DHCP协议。
修改MAC地址
# ifconfig eth0 hw ether 00:00:0c:12:34:56
/etc/rd.d/init.d/network(上面的修改可存储在此脚本中)
# ifconfig eth0 up
上面这种方法是在内核中修改,下次开机将还原
要永久有效在网卡配置文件中加入以下这一条:
/etc/sysconfig/network-scripts/ifcfg-eth0
常用测试命令
route (对内核的ip路由表进行操作,主要对己配置的接口的主机或网络设置静态路由,如通过ifconfig程序配)
route add -net 192.168.1.0 netmask 255.255.255.0 eth0 (添加一条到192.168.1.0网络的路由条目)
route del -net 192.168.1.0 netmask 255.255.255.0 (删除路由条目)
route -C 查看缓冲表
route -n 查看本地路由表
traceroute 路由跟踪
注:netconfig、ifconfig、route三者结合使用,不用重启系统及服务。