二维码

Linux 系统的准备 (Optional)

863 人阅读 | 时间:2021年12月17日 23:40

15.1:确认 Linux Server 之操作目的

你需要 Linux 做什么呢? 以鸟哥来说,我的 Linux 大部分都用来做网络服务器、办公室防火墙系统、科学计算的基本操作系统、虚拟化的基本系统等等任务。 不同的任务所需要的硬件资源并不相同,同时,所需要提供的服务当然也差异相当大。 所以,安装 Linux 之前,先确认你的用途为宜!

15.1.1:硬件的选购与 Linux 服务器的用途

虽然说目前PC效能强大且便宜,所以PC作为Linux server的硬件资源应该是毋庸置疑的。 不过,某些特别的状况下, PC 的资源要不是不够力,就是太过头了!

举例来说,现在的物连网 (Internet Of Things) 需要很多的侦测器 (sensors), 但这些侦测器可能需要一部小型 server 来汇整资料与传输资料,这个 server 恐怕是需要放在户外的、比较恶劣的工作环境下! 此时,买一部配备完整的PC看起来是效能太好,但是维护不易啊~光是电源怎么牵到户外来,就够伤脑筋的了。 这时,如果一台小小的树莓派可以处理的话,那应该使用树莓派会比较好,又省电、又便宜、又方便抽换的维护。

所以,设计你的服务器主机硬件时,应该要考量实际的需求,这样才会有较佳的搭配应用。 底下鸟哥就自己的常见使用环境给予建议, 请读者们自行设计出适合自己的主机资源。

  • 需要'高效能运算'的主机系统

某些计算或者是服务需要较高等级的主机系统,此时可能需要购买到多核心服务器等级的CPU,搭配高性能网卡(最好内建10G网卡)会比较适合。 以鸟哥为例,鸟哥用来计算空气质量模式的系统(2020年),大多使用双CPU插槽的主机系统,目前最高阶那部用了16核心32线程两颗,一台会有总和32核心64线绪。 另一部则使用了单CPU的AMD Ryzen 3990X CPU,这个消费型市场的CPU有64核心共128线线! 只是好烫啊~得要使用水冷式散热才行。

上面这几部系统都是为了高效能运算的环境所搭配的,一般的环境中,除非要作为虚拟化系统,否则这么多的 CPU 其实对 Server 一点帮助也没有! 鸟哥的模式运算时,可以依据CPU的个数来进行平行运算,可以具有相当程度的加速效果! 因此,CPU 数量越高越好! 鸟哥甚至想要买超贵的AMD EPYC服务器产品,因为他们家的产品在2020年时,最多可以达到64核心双CPU,这样一口气就可以到达128颗实体核心,对模式计算来说,相当重要!

如果要做为数据库环境使用,那也应该要使用比较好的主机资源,因为数据库的运算通常会消耗很大量的 CPU 资源。 同时,内存最好也要大一些,可能的话,将某些数据库数据写入内存中,会更加速运算。 因此,繁重的数据库运算也需要较高性能的主机系统。

一般来说,底下的系统需要较高运算效能与较大内存容量:

  • 科学计算的cluster环境;

  • 读、写、查询相当频繁的数据库环境;

  • 提供云端虚拟化基础系统的 host 环境;

  • 需要'高磁盘容错与效能'的主机系统

某些高容量需要的服务,包括文件服务器 (如 Samba, FTP, http 等等) 以及科学计算的结果输出 (例如空品模式、大气模式等等), 还有云端虚拟机的虚拟磁盘等,都会用到很大量的磁盘容量。 这时,考量到高速还是高容量,都需要有磁盘容错的机制存在, 否则机器损坏不打紧,资料不见才烦恼。

实际上线的系统,最好还是使用较高规格的实体磁盘阵列卡来协助比较妥当,除了支持热拔插的功能,磁盘阵列卡上面的高速快取, 也对读写效能有帮助。 另外,如果只是数据存放 (如 Samba, FTP, 科学计算的结果输出) ,建议使用 RAID6 等级来处理即可, 以前鸟哥都用 RAID5,由于同时死掉两颗磁盘的机率还是存在的,因此现在都倾向于使用 RAID6 较佳

如果是云端虚拟机所需要的磁盘,由于这些磁盘系统可能需要用在虚拟机的作业上,而不是单纯的数据存放, 因此如果能有SSD作为进一步快取是最好,若没有的话,个人建议使用锯齿状的RAID10效果最好。 例如有八颗磁盘时,两两成对做成四个RAID1的系统,再将4个RAID1整合成一组RAID0,实际使用的经验,这样的读写效率会比RAID5好些,尤其是在随机存取的环境上。

此外,在目前 2020 年,市面上有许多容量、效能与使用寿命都还不错的 SSD 磁盘,因此,使用 SSD 磁盘作为磁盘阵列的子元件也是可行的方案! 不过还是得要注意数据的备份,总之,数据的重要性还是比硬件来的需要注意!

  • 普通性能即可的主机系统

一般的服务,包括 WWW 服务,以及非频繁读写的数据库环境(包含在 WWW 系统内),或者是一般小型办公室的文件服务器, 大多使用 CPU 为 4 核 8 绪的 PC 等级产品即可。 也就是说,绝大部分的中小企业,需要的就是一部 PC server 啦!

  • 便宜且可抽换的主机系统

以物连网为例,一部树莓派就可以做很多事情,根本无须使用到x86架构的PC。 此外,若单纯作为客户端的接收设备, 树莓派或其他 Xapple pi 都可以符合这样的需求。 最近学校单位若经费不足,在电脑教室内似乎也能够透过这种环境,搭配共享的云端虚拟系统来组建一整间电脑教室,不但维护较为容易,经费支出应该也会比较节省。

15.1.2:磁盘分割与档案系统的选择

不要怀疑,无论你是使用什么系统,有办法处理磁盘分割格式为 GPT,就以 GPT 为主! 不要再用 MSDOS 的 MBR 模式。 再者,需要做什么样的分割,要分割成哪些目录的挂载,这就与你服务器的使用有关了。

如果是作为众多帐号使用的文件服务器 (一般中小型企业比较容易使用到的环境),建议 /home 一定要独自切出来,此外,若可能的话,将这个/home做成LVM也是可行的方案(但是备份方面请自行考量! ),这样文件系统的缩放才有弹性。 而如果考量到未来可能会放大或缩小,那最好选用 EXT4 文件系统,因此目前 XFS 并不支持缩小文件系统的

若有特殊需求需要用在非正规的目录底下,例如鸟哥经常介绍的 /data 目录,那么也请自行制作分割与档案系统的处置。

针对比较大容量的磁盘或分割,确实建议使用 XFS 文件系统,格式化会比较快,另外,XFS 在错误救援方面也颇为成熟, 对大档案来说,效能也不错,是可以考虑使用的档案系统。

若考虑都使用CentOS 8原本提供的服务与预设的目录配置,则/var最好独自分割出来,因为很多服务的数据产出都放置于/var/lib里面(包括数据库系统),而邮件资料也是放置于/var/spool/mail里面的。

虽然磁盘分割还是依据服务器的用途而定,不过通常必须要有的分割大致有这些:

  • /

  • /boot

  • /var

  • /home

  • 其它非正文件夹( 例如 /srv 或 /opt 或 /data 等)

  • 多操作系统的分数和文件系统考虑(for MSDOS MBR环境)

以学校的教学环境而言,若在无还原卡的环境下,要达到最大化资源应用,通常会在一个磁盘内进行多个磁盘分割,然后安装不同的操作系统, 最终以开机菜单来进入各个不同的操作系统,此即为多重开机环境的设计依据。

以前CentOS 6以前的Linux系统,默认使用EXT3/EXT4这种EXT家族的文件系统,因此在进行chainloader的时候是不会出事的,因为CentOS 6以前的系统,使用的EXT档案系统家族,都会预留出可以安装开机管理软件的区块(boot sector)。 不过新的 XFS 文件系统并没有预留! 所以 XFS 文件系统的 superblock 预留区块并没有包含 boot sector 的,因此无法安装启动管理程序。

因此,针对学校的一机多用途环境而言,若需要安装Linux操作系统与Windows操作系统共存的环境,建议CentOS的预设档案系统最好修订为EXT4较佳。 而且较为有趣的是,CentOS 7 以后的系统,因为使用了 XFS 文件系统,因此开机过程中已经取消自动安装 boot loader 到 boot sector 的区块, 只会将 boot loader 安装到 MBR 区块而已。 所以在安装完CentOS 8之后,可能需要手动安装 grub2 到 EXT4 的 boot sector 才行。

另外,读者应该知道安装操作系统的'顺序'是有关系的,因为最后安装的操作系统之开机管理程序会更新 MBR,因此最终的 MBR 是最后安装的那个操作系统所管理的。 而在教学环境中,Linux 操作系统的开机管理程序可能会被胡乱修改, 因此可能造成无法顺利进入其他操作系统的窘境。 根据经验,最好的方式是这样的:

  1. /dev/sda1, 整个磁盘的最前面 3G 左右的区块,安装一套最小的 Linux ,作为菜单管理的用途 (这个系统不可删除)

  2. /dev/sda2, 再安装 Windows 操作系统

  3. /dev/sda3, 再安装 Linux 操作系统,且务必选择 EXT4 文件系统

  4. /dev/sdaX, 其他共享区块或其他操作系统 (若为 Linux 还是务必使用 EXT4 文件系统)

其中,/dev/sda1 那个小 Linux 系统的目的是要维护整个单机系统的开机菜单,因此该系统一经安装就不要在更动他。 而根据上述流程的安排,最终开机菜单会被第三个 (也就是最后一个, /dev/sda3) 操作系统所管理。 请依据正常流程开机, 然后在纯文本界面 (例如 tty2) 用 root 登录系统,之后使用底下的方法将 boot loader 安装到 boot setor 上面去。

  • grub2-install /dev/sda3 (前提条件,你必须是在 /dev/sda3 这个系统里面才行! )

若出现错误,可加入'--force --recheck --skip-fs-probe'等参数来处理看看。 务必记得不要使用 XFS 文件系统才好。 处理完这部份之后,请拿出CentOS的原版光盘,进入本课程之前章节谈到的救援模式,然后 chroot 到第一个 /dev/sda1 的操作系统环境,接下来进行救援:

  1. 先修改 /etc/grub.d/40_custom 的设定,增加两个 chainloader 分别到 /dev/sda2 与 /dev/sda3 两个系统。

  2. 使用 grub2-install /dev/sda 覆盖 MBR 的 boot loader

这样就可以完成整个多重操作系统的环境设定了。

  • 服务器初始环境的考量

读者会发现这个小章节中,无论是硬件还是初始环境的设置(包括分割、档案系统选择、挂载资源的设计等等), 全部都与 Server 的用途有关。 而无论硬件资源与初始环境设定,几乎都是一经确认就无法修改 (当然! ),因此,读者们在学习 Linux 之后,若有架设 Linux server 的需求,应该就您服务器的用途来考量, 将经费花在刀口上,会比较妥当。

此外,就如同 CentOS 每个版本的支持度都长达 5~7 年之久,你 Server 硬件的使用年限,最好也能够是 5~7 年以上。 所以,读者在设计这些硬件资源与初始环境配置时,需要预设考量 5 年内的使用情况,预留升级空间(包括LVM档案系统、硬件的内存插槽是否有剩余、磁盘是否能够后续加挂、额外的插槽是否足够未来的设备使用等等),这样才是较为完整的规划。

15.2:系统安装与初始环境设定

一般建议强迫系统用 GPT 分割格式,然后使用最小安装模式,安装完毕之后,再以文字模式的方式建立好网络, 持续使用纯文本模式进行各项设定工作,初始环境设定完成后,就能够开始处理你的服务器架设了。

15.2.1:服务器的假设前提设定

假设这是一部通过网络芳邻提供的文件服务器,同时提供个性化网页设置的网页服务器,两者分别使用 Samba 与 httpd 服务。 另外,该服务器预计提供这些功能:

  • 提供大约 20 ~ 50 人的账号

  • 每个用户的使用容量是有受限制的

  • 公司内部还提供一个共享的主网页功能菜单

  • 公司内部也提供一个共享的档案目录分享在 /srv 底下

分析上面的数据,我们大概可以知道磁盘分割时,最好能够分割的目录应该有哪些?

  • /

  • /boot (普通启动都要有的)

  • /home (针对帐号的用途)

  • /var (针对 /var/www/html 主网页用途)

  • /srv (针对 Samba 的共享目录用途)

目前可以使用的虚拟机硬件资源中,CPU 有两颗、内存仅有 2GB,磁盘也只有 40G 的容量而已,根据这样的系统,我们大致拟定了这样的分割:

  • /boot, 实体分割槽, 1GB

  • /, LVM, 10GB

  • /home, LVM, 所有剩余 VG 的值

  • /var, LVM, 5GB

  • /srv, LVM, 5GB

之所以使用LVM是考量到未来的容量扩充之故。 至于档案系统则除了 /boot 使用 ext4 之外,其他通通使用 XFS (因为不是多重操作系统之故)。

15.2.2:安装程序与注意事项

根据本章节的规划需求,在整体安装流程中,读者比较需要注意的安装流程项目有底下几个点:

  • 进入安装程序之前,强迫系统使用 GPT 分割的功能

  • 磁盘分割一定要选择自定义分割,并依据上述规划处理

  • 软件安装请勿必选择最小安装

  • 强迫使用 GPT 分割方式

要进入安装模式的话,你需要: (1)将原版光盘放入光盘或 USB 之后,系统重新开机,并选择光盘开机,如此则会进入安装模式。 (2)在此安装模式下会有 60 秒的等待时间,你在时间内请选择'Install CentOS Linux 8'的菜单, (3)按下 [tab] 按钮后,在出现的更改核心参数画面中,最后方加入 inst.gpt 的参数即可按下 [enter] 继续。

Linux 系统的准备 (Optional)
图15.2.2-1、强迫使用 GPT 分割表
  • 其他杂项注意事项

完成 GPT 的强迫使用后,准备进入图形界面的安装,我们先选择语系资料,你可以选择左侧最下方'中文', 右侧的'繁体中文(台湾)'之后,即可按下右下角'继续',就可以进入到如下的安装主画面:

Linux 系统的准备 (Optional)
图15.2.2-2、图形界面安装主画面环境一览

上图中主要分为三个直行状态,左侧是本地化设定,包括键盘、语系与日期,中间是软件资料的部份,右侧则是系统设定。 本地化的设置上,语系支持与日期可能需要重新调整一下,软件选择也需要处理一下,还有一些系统配置份也处理一下:

  • 点选'语言支持'之后,左右加上'English',右侧则选择'English(United States)'项目,如果还要其他的语系支持,请自行挑选。 选择完毕后按下左上角'完成'即可。

  • 点选'时间和日期'项目,在世界地图上面点选'台湾'后,上方会自动选择成为'亚洲/台北'项目,即可按下'完成'。

  • 中间的软件部份,安装来源不会改变,那个不理他,下方的'软件选择'请点击,然后勾选左侧'最小型安装'那个项目,右侧不要选择任何额外的软件项目, 之后就按下'完成'即可! 这样的系统可以安装到最小的容量!

  • 回到安装主屏幕后,观察最右侧的系统项目,由于我们不是核心开发者,所以可以将核心出错时的错误侦测信息功能关闭,请关闭掉 KDUMP 服务, 点击 KDUMP 按钮,将'启用 kdump '的按钮取消后,即可按下完成~

  • 磁盘分割注意事项

回到安装主屏幕后,按下'安装目的地'选项,你会发现有一个 30~40G 左右的磁盘在虚拟机器上,请勾选该磁盘,之后左下方会出现自动配置与自行配置, 请选择自行配置的项目,最终再按下左上角的完成,即可进入磁盘分割的画面了。

Linux 系统的准备 (Optional)
图 15.2.2-3、进入用户自行配置磁盘分割的必要动作

依序选择标准分割与《LVM》来建立起15.2.1小节所讨论的磁盘分割格式。 最终磁盘分割完毕应该如下所示:

Linux 系统的准备 (Optional)
图 15.2..2-4、本章节所要求的分割格式

若一切都顺利处理完毕,则回到安装主画面,并且按下'开始安装'之后,就可以进入安装的阶段了! 在安装阶段时,可以选择创建 root 密码以及建立一个平时操作的一般帐号! 请务必让 root 的密码变得严格一点! 不要随便设定! 养成良好的习惯啊! 最后很快的安装完毕,就会出现如下的画面,等待你重新开机了!

Linux 系统的准备 (Optional) Linux 系统的准备 (Optional)
图 15.2.2-5、最终安装完毕的示意图

15.2.3:初始化设定-网络、升级机制、防火墙系统、其他设定等

因为我们选择最小安装,因此在第一次安装妥当之后,并不会出现授权画面! 直接就可以使用一般账号登录系统操作了! 相当方便! 此外,读者会发现,本章特意不在安装过程中设定好网络,原因是网络的设定还是需要一定的经验,因此建议还是安装完毕后再来设定, 印象会比较深刻。

  • 网络环境的设置 :

假设这部服务器所在的环境之网络设定要求如下:

  • IP/Netmask: 172.16.60.XX/16

  • Gateway: 172.16.200.254

  • DNS: 172.16.200.254

  • Hostname: stationXX.book.vbird

  • XX 为你的上课座号尾数,例如 200 号

在你使用一般帐号登录此新安装的系统,并且 sudo su - 切换成为 root 之后,依旧可以使用 nmcli 指令来完成各项设定。 只是最小安装默认并没有安装 bash-completion,因此无法使用 [tab] 来补齐各项参数,因此你得要自行手动输入参数才行。

Linux 系统的准备 (Optional)
图 15.2.3-1、网络的设定与观察

最后也要记得让系统自动启动就启动的功能要加上去:

[root@station200 ~]# nmcli connection modify ens3 connection.autoconnect yes
  • 操作习惯的环境重建

本课程大多使用 vim 以及选项会自动补齐的功能,该功能主要通过 vim-enhanced 以及 bash-completion 软件所提供, 因此读者可以自行安装这两个软件来恢复自己常用的工作环境。

[root@station200 ~]# yum install vim-enhanced bash-completion[root@station200 ~]# source /etc/profile.d/bash_completion.sh[root@station200 ~]# yum install net-tools

此时 vim 立即可以使用了,但如果要在不注销的情况下立即让 bash-completion 生效,那就得要 source /etc/profile.d/bash_completion.sh 来加载环境才行。 不过还是建议可以注销再登入来刷新操作环境较佳。 另外,探索网络的工具如 netstat 等,是由 net-tools 所提供的, 所以也得要安装才好。

  • 升级方案 :

安装好系统的第一个动作,就是升级你的系统! 要升级系统最好依据第 12 堂课的建议,选择最近的 yum server 设定, 这样软件安装速度才会快速。 因此请自行处理如下的动作:

  • 修改 /etc/yum.repos.d/CentOS-{AppStream,Base,Extras}.repo 的設定值 (例如以昆山科大为例)

  • 使用 yum clean all

  • 使用 yum -y update 全系统升级

  • 使用 vim /etc/crontab 增加每日凌晨 2:00 自动升级的动作

  • 重新启动一次,因为第一次升级完毕,几乎一定要重新启动(因为几乎 kernel 都有更新过)

  • 关闭服务与设定防火墙

由于我们使用了最小安装,所以预设有启动的网络服务相对少很多! 不过,近期以来因为主机域名查询系统变得比较复杂, 因此CentOS 8默认帮我们启用了 systemd-resolvd 这个服务! 这个服务可以提供DNS的解析。 不过,我们目前似乎不太用的到, 所以暂时先予以关闭,等到未来使用到之后,再来处理即可。 因此,最终网络服务应该只会剩下 port 22 这个 ssh 而已!

[root@station200 ~]# systemctl stop systemd-resolved.service[root@station200 ~]# systemctl disable systemd-resolved.service[root@station200 ~]# netstat -tlunpActive Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      991/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      991/sshd

由于CentOS 8取消了 ntpdate 这个指令的支持,建议我们使用 chronyd 来进行网络校时啦! 所以,请依据你的环境来设计好 chrony.conf 文件, 之后启动 chronyd 服务吧! 只是,这个服务是客户端的功能,所以防火墙不需要放行 port 123 喔!

[root@station200 ~]# yum install chrony[root@station200 ~]# vim /etc/chrony.conf#pool 2.centos.pool.ntp.org iburstserver ntp.ksu.edu.tw iburst[root@station200 ~]# systemctl start chronyd[root@station200 ~]# systemctl enable chronyd

sshd 毕竟还是不要对整个 internet 放行会比较好! 所以请依据第 11 章介绍的 rich rule 进行设计,让 ssh 仅放行到 172.16.0.0/16 这个区网即可。 此外,将放行的服务减少到只剩下 http 与 https 即可! 其他都不要喔!

[root@station200 ~]# firewall-cmd --permanent --remove-service=cockpit[root@station200 ~]# firewall-cmd --permanent --remove-service=dhcpv6-client[root@station200 ~]# firewall-cmd --permanent --remove-service=ssh[root@station200 ~]# firewall-cmd --permanent --add-service=http[root@station200 ~]# firewall-cmd --permanent --add-service=https[root@station200 ~]# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='172.16.0.0/16' service name='ssh' accept"[root@station200 ~]# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='172.16.0.0/16' service name='samba' accept"[root@station200 ~]# systemctl restart firewalld.service[root@station200 ~]# firewall-cmd --list-allpublic (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens3
  sources:
  services: http https
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:        rule family="ipv4" source address="172.16.0.0/16" service name="ssh" accept
        rule family="ipv4" source address="172.16.0.0/16" service name="samba" accept

请读者不要忘记了,firewall-cmd 的使用上,主要分为立即性与永久的设置 (--permanent),读者们必须要将所有的设定写入设置才行。

  • 确认分割与档案系统状态

最后再来确认一下分割的状态是否吻合当初设计的情况:

[root@station200 ~]# df -Th -t xfs -t ext4檔案系統                類型  容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root xfs    10G  1.4G  8.7G   14% /
/dev/mapper/centos-var  xfs   5.0G  263M  4.8G    6% /var
/dev/mapper/centos-home xfs    17G  154M   17G    1% /home
/dev/mapper/centos-srv  xfs   5.0G   68M  5.0G    2% /srv
/dev/vda2               ext4  976M  161M  749M   18% /boot

这应该是没问题的情况。 不过,由于未来用户的档案容量是有限制的,因此在 /home 的档案系统挂载参数中,应该要加入 usrquota 才对。 因此最终使用 mount 去查阅 /home 的资料时,应该要出现如下的情况才对。

[root@station200 ~]# vim /etc/fstab/dev/mapper/centos-home /home xfs defaults,usrquota,grpquota  0 0

[root@station200 ~]# umount /home[root@station200 ~]# mount -a[root@station200 ~]# mount | grep '/home'/dev/mapper/centos-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

15.3:简易服务器设定与相关环境建置

如前所述,这里假设你的服务器为一般企业内部的文件服务器及个性化首页之网页服务器,且为多人共享的服务器系统。 同时因应档案系统的适当分配,因此会加上磁盘配额的限制。 因此这里就得要有一些账号建置的相关注意事项才行。

15.3.1:服务器软件安装与设定

本服务器假设要提供 http 的网络服务,同时提供区网内网芳服务。 不过由于网芳 (Samba) 的设定较为复杂, 因此本章主要以 http 网页服务器作为简易的说明。

  • Web service: httpd

Web 服务使用的是 httpd 这只程式,请安装,然后启动即可顺利提供服务。

[root@station200 ~]# yum -y install httpd[root@station200 ~]# systemctl start httpd[root@station200 ~]# systemctl enable httpd

由于本服务器并没有安装任何的图形界面,因此无法使用图形界面的浏览器。 不过CentOS上面有提供多种文字界面浏览器,例如elinks就是其中一个颇为知名的文字界面浏览器之一。

[root@station200 ~]# yum --enablerepo=PowerTools install elinks[root@station ~]# yum -y install elinks[root@station ~]# links http://localhost
Linux 系统的准备 (Optional)
图15.3.1-1、文字界面浏览器 links 示意图

你可以在 links 的画面中,按下 [q] 来离开,方向键上下为在超链接项目中移动,左右键为前一个、后一个页面, [esc] 可以呼叫 links 菜单。

关于 httpd 你应该还需要知道的是:

  • 网页首页的目录位于 /var/www/html/ 底下

  • 首页的文件名为 index.html

  • 所有的网页应该放置于 /var/www/html/ 目录中才行。

假设 student 这个帐号需要管理 http://localhost/student/ 时,最简单的方法为使用如下的方式建置妥当:

  1. 创建 /var/www/html/student 目录

  2. 修改上述权限,让 student 可以读写 (可以考虑 chown 即可)

  3. 尝试帮 student 建立 index.html ,内容只要写上 "I am student" 即可

  4. 使用 links http://localhost/student 确认是否可以读取到该页面即可。

[root@station200 ~]# useradd student[root@station200 ~]# passwd student[root@station200 ~]# cd /var/www/html[root@station200 html]# mkdir student[root@station200 html]# echo "I am student" > student/index.html[root@station200 html]# chown -Rv student studentchanged ownership of 'student/index.html' from root to student
changed ownership of 'student' from root to student

[root@station200 html]# ll -d student student/*drwxr-xr-x. 2 student root 24  6月 22 16:06 student
-rw-r--r--. 1 student root 13  6月 22 16:06 student/index.html

[root@station200 html]# links http://localhost/studnet

最终你应该会在 links 的画面中看到 I am student 的字样,那就代表成功了。

15.3.2:账号建置设定

帐号的建置相当的简单,本训练教材第 10 堂课已有相当多的范例可以参考。 现在本服务器除了要建置帐号之外,该账号必须要能拥有 http://localhost/username/ 的网页子目录才行。 同时,每个账号在家目录最多仅能有 200MB 的容量,且超过 180MB 就需要提供警告。 此时,你可以使用底下的脚本来建立好每个用户,且提供用户预设的帐密资料,同时强迫用户第一次使用系统时,需要变更密码才行。

[root@station200 ~]# vim account.sh#!/bin/bash
for i in $(seq 1 20)
do
        username="user${i}"
        password="${username}"
        useradd ${username}
        echo ${password} | passwd --stdin ${username}
        chage -d 0 ${username}

        xfs_quota -x -c "limit -u bsoft=180M bhard=200M ${username}" /home

        mkdir /var/www/html/${username}
        echo "I am ${username}" > /var/www/html/${username}/index.html
        chown ${username}:${username} -R /var/www/html/${username}
done

[root@station200 ~]# sh account.sh

同时,在不考虑资安的情境下,将整个用户的 quota 信息贴出于 /var/www/html/quota.html 底下, 同时列出目前每个用户在网页目录的磁盘使用量,最简易的方法可以这样做:

[root@station200 ~]# (echo "<pre>"; date; xfs_quota -x -c "report -ubh" /home; \
> du -sm /var/www/html/user*; echo "</pre>" ) > /var/www/html/quota.html[root@station ~]# links http://localhost/quota.html

顺利的话,你就能够看到系统上面每个用户的信息使用量。 如果需要逐时分析该信息,请将上面的脚本写入 /etc/crontab 即可让系统自行更新。 最后,再考虑备份机制,这部简易的服务器就大致在可运作的情境下了。


©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×