本文档是有关Archlinux系统配置的学习笔记,参考和学习的是Archlinux官方网站上的相应文档:General Recommendations。
这里的配置主要是针对按照官方网站上的文档刚刚完成安装的基本的Arch Linux系统,其中首要的两个环节就是系统管理(System Administration)和软件包管理(Package Management)。
系统管理(System Administration):
这里主要是对系统管理有一个简单的介绍。
用户和组(Users and Groups):
在刚刚安装完Archlinux的基本系统之后,我们所能使用的用户只有一个超级用户:root,但是长时间地使用root账户或者是在通过SSH访问的时候将root用户暴露出去都是非常不安全的。这样一来,我们就需要为自己建立一个没有那么多特权的、用于管理日常大多数事物的一般的用户,root用户则仅仅留作系统管理之用。当然,用户和组(Users and Groups)也是一个单独的需要讨论的章节,这个留作之后研究。
批注:在UNIX/Linux类操作系统中,有着一切皆文件(Everything is a file)的概念。每一个文件都从属于某个用户和某个组,且存在着三种控制权限:读(read)、写(write)和执行(execute)。一般可以使用ls或是stat来查看文件的访问权限和从属关系等信息。示例如下:
其中访问权限被分为三组,分别表示所属用户的访问权限、所属组的访问权限和其他人的访问权限,第一个字节则指代的是文件的类型。我们可以在使用find时添加限定的用户或是组,如下:
find / -group [group]
find / -user [user]
我们也能够通过chown(change owner)来改变文件所从属的用户和组,能通过chmod(change mode)来改变文件的访问权限,更为详细的使用方法可以参考手册。
File list:
File | Purpose |
/etc/shadow | Secure user account information |
/etc/passwd | User account information |
/etc/gshadow | Contains the shadowed information for group accounts |
/etc/group | Defines the groups to which users belong |
/etc/sudoers | List of who can run what by sudo |
/home/* | Home directories |
总的来说,用户和组(Users and Groups)是一种适用于访问控制的机制,管理员能够通过调整组的成员关系以及所有权来允许或是拒绝用户和服务(Services)访问相应的系统资源。
权限升级(Privilege Escalation):
su(substitute user)指令能够在不同的用户之间进行切换(一般是为了切换到root用户),而sudo则是能够针对特定的命令,对当前的用户进行暂时的权限升级。
服务管理(Service Management):
Arch Linux使用systemd作为初始化进程,而systemd是Linux的系统和服务管理员,为了能够维护我们的Arch Linux系统,了解一些systemd的基础知识是很有必要的。用户可以通过systemctl命令来和systemd进行交互,更为详细的内容留作以后研究,链接为:systemd。
系统维护(System Maintenance):
Arch Linux是一种滚动更新的操作系统,软件包的周转也是十分得迅速,因此用户必须花费一些时间来进行系统的维护,为了能够使Arch Linux系统尽可能的稳定,这里有一份文档留作以后研究:Enhance system stability。
软件包管理(Package Management):
这部分主要介绍的是软件包管理的基本内容,更多的信息也可以参考FAQ和Category。
Pacman:
Pacman是Arch Linux的软件包管理者,每一个Arch Linux的用户都必须要非常熟悉这一软件。它也是可以单独分出一个章节:pacman,另有一些tips可以用于提升我们和pacman以及软件包管理方面的交互。
资源库(Repositories):
Official Repositories详细阐述了每个官方维护的资源库(Repository)的作用。对于安装了64位操作系统的用户,可能有的时候需要用到32位的应用程序,这个时候就需要激活multilib资源库。当然,也有一些非官方支持的用户自己编写的一些资源库:Unofficial user repositories。
Arch Build System(ABS):
Ports是最初被BSD发行版使用的系统,它是本地系统中包含很多编译脚本的目录树。简单地说,每一个port内包含了以第三方应用程序命名的文件内的编译脚本。
ABS树提供给Arch Linux的就是类似的功能,而在Arch Linux内,编译脚本被称作PKGBUILD,PKGBUILD中包含有哈希验证、软件主页、版本号、协议和编译步骤等信息。随后,我们可以通过makepkg来处理这些编译脚本,并将生成的洁净的软件包用pacman来安装。
事实上,每一个软件包,包括在AUR中的软件包都是由makepkg编译而成的。
Arch User Repository(AUR):
既然ABS提供了编译官方资源库中软件包的能力,那么对应的,AUR提供的是编译用户自定义软件包的能力。我们可以在这个网址找到所有AUR内的软件包,AUR Helper也能帮助我们更好地管理AUR中的软件包。
Mirrors:
这部分主要是介绍一些有关镜像管理的内容,这里只是附上一些链接,留作以后研究:Mirrors,Mirror status。