Linux 是一种自由和开放源码的类UNIX操作系统。它以其稳定性、安全性、高效性而闻名,被广泛应用于服务器、桌面、嵌入式系统等领域。
Linux概述
历史
Linux于1991年由芬兰的业余计算机爱好者Linus Torvalds创建。它最初是一个基于Minix的类Unix操作系统,后来逐渐发展成为功能完善、应用广泛的操作系统。
特点
- 开源:Linux内核代码是公开的,任何人都可以查看、修改和发布。这使得Linux具有很强的灵活性,可以根据用户的需求进行定制。
- 免费:Linux内核是免费的,可以自由使用和传播。这使得Linux具有很高的性价比,受到了广泛的欢迎。
- 稳定:Linux内核经过了多年的测试和完善,具有很高的稳定性。
- 安全:Linux具有完善的安全机制,可以有效抵御各种安全威胁。
- 高效:Linux内核设计精巧,运行效率高。
应用
Linux被广泛应用于服务器、桌面、嵌入式系统等领域。
- 服务器:Linux是服务器领域的主流操作系统,占据了超过60%的市场份额。
- 桌面:Linux桌面系统近年来发展迅速,越来越多的用户开始使用Linux桌面系统。
- 嵌入式系统:Linux具有很强的移植性,可以运行在各种硬件平台上,因此被广泛应用于嵌入式系统领域。
目录结构
Linux系统采用了一种层次化的目录结构,每个目录都有特定的用途。
/bin 存放二进制可执行文件
/boot 存放用于系统引导时使用的各种文件
/dev 存放设备文件
/etc 存放系统配置文件
/home 存放所有用户文件的根目录
/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
/lost+found 存放意外丢失的文件
/media 存放可移动存储设备的挂载点
/mnt 临时挂载文件系统的目录
/opt 存放可选软件包的安装目录
/proc 存放虚拟文件系统,用于访问系统信息
/root 系统管理员的主目录
/sbin 存放系统管理命令
/sys 存放系统设备信息的目录
/tmp 存放临时文件
/usr 存放系统应用程序
/var 存放可变数据,如日志文件、数据库文件等
文件管理
Linux文件管理是指对Linux系统中的文件和目录进行管理的操作。Linux文件管理包括以下几个方面:
- 文件和目录的创建、删除、修改
- 文件和目录的权限设置
- 文件和目录的搜索
- 文件和目录的复制、移动
- 文件和目录的压缩和解压缩
文件和目录的创建、删除、修改
- 创建文件
touch filename
- 创建目录
mkdir dirname
- 删除文件
rm filename
- 删除目录
rmdir dirname
- 修改文件名
mv oldname newname
- 修改文件内容
vi filename
文件和目录的权限设置
Linux系统支持细粒度的文件权限控制,可以控制用户对文件的访问权限。
文件的权限包括:
- 读权限:可以读取文件内容
- 写权限:可以修改文件内容
- 执行权限:可以运行文件
可以使用ls -l
命令查看文件的权限。
-rw-r--r-- 1 root root 1234 2023-03-08 12:34 filename
第一个字符表示文件类型,- 表示普通文件,d 表示目录。
接下来的三位数字表示文件的权限,第一位表示文件所有者的权限,第二位表示文件所属用户组的权限,第三位表示其他用户的权限。
可以使用 chmod
命令修改文件的权限。
chmod 644 filename
将文件的权限修改为 644,表示文件所有者具有读写权限,文件所属用户组和其他人具有读权限。
文件和目录的搜索
可以使用 find
命令搜索文件和目录。
find . -name filename
搜索当前目录及其子目录下名为 filename 的文件。
可以使用 grep
命令搜索文件中的文本。
grep keyword filename
搜索 filename 文件中包含 keyword 的文本。
文件和目录的复制、移动
可以使用 cp
命令复制文件。
cp filename dest
将文件 filename 复制到目录 dest 下。
可以使用 mv
命令移动文件。
mv filename dest
将文件 filename 移动到目录 dest 下。
文件和目录的压缩和解压缩
可以使用 gzip
命令压缩文件。
gzip filename
将文件 filename 压缩为 filename.gz 文件。
可以使用 gunzip
命令解压缩文件。
gunzip filename.gz
将文件 filename.gz 解压缩为 filename 文件。
常用文件管理工具
- 文件管理器:提供图形化界面,用于管理文件和目录。常用的文件管理器包括 Nautilus、Konqueror、Dolphin 等。
- 命令行工具:提供命令行界面,用于管理文件和目录。常用的命令行工具包括 ls、cd、mkdir、rmdir、cp、mv、rm、cat、more、less、grep、find 等。
用户管理
Linux系统是多用户操作系统,支持多个用户同时使用系统。为了保障系统的安全性和可靠性,需要对用户进行管理。
Linux用户管理主要包括以下几个方面:
- 用户账号的添加、删除、修改
- 用户组的添加、删除、修改
- 用户权限的设置
用户账号的添加、删除、修改
- 添加用户账号
可以使用useradd
命令添加用户账号。
useradd username
添加名为 username 的用户账号。
- 删除用户账号
可以使用userdel
命令删除用户账号。
userdel username
删除名为 username 的用户账号。
- 修改用户账号
可以使用usermod
命令修改用户账号。
usermod -l newname username
将用户账号 username 的用户名修改为 newname。
用户组的添加、删除、修改
- 添加用户组
可以使用groupadd
命令添加用户组。
groupadd groupname
添加名为 groupname 的用户组。
- 删除用户组
可以使用groupdel
命令删除用户组。
groupdel groupname
删除名为 groupname 的用户组。
- 修改用户组
可以使用groupmod
命令修改用户组。
groupmod -n newname groupname
将用户组 groupname 的组名修改为 newname。
用户权限的设置
Linux系统支持细粒度的用户权限控制,可以控制用户对系统资源的访问权限。
用户权限可以通过以下方式设置:
- 修改用户账号的文件
可以使用vi
命令修改用户账号的文件 /etc/passwd。
vi /etc/passwd
在文件中找到要修改的用户账号,修改其所属用户组、主目录、登录Shell等信息。
- 修改用户组的文件
可以使用vi
命令修改用户组的文件 /etc/group。
vi /etc/group
在文件中找到要修改的用户组,修改其成员等信息。
- 使用
sudo
命令
可以使用sudo
命令临时提升用户权限。
sudo command
运行 command 命令时,将以root用户的权限运行。
常用用户管理工具
- 用户管理工具:提供图形化界面,用于管理用户和用户组。常用的用户管理工具包括 System-Config-Users、Users and Groups 等。
- 命令行工具:提供命令行界面,用于管理用户和用户组。常用的命令行工具包括 useradd、userdel、usermod、groupadd、groupdel、groupmod、passwd、sudo 等。
权限管理
权限管理是指对用户、组或其他主体对资源的访问权限进行控制。权限管理是信息安全的重要组成部分,可以有效地防止数据泄露、非法访问等安全事件。
权限管理的基本概念
- 主体:指访问资源的实体,可以是用户、组或其他应用程序。
- 客体:指被访问的资源,可以是文件、目录、设备等。
- 权限:指主体对客体的访问操作,可以是读、写、执行等。
权限管理的实现方法
权限管理可以通过以下几种方式实现:
- 基于角色的权限管理 (RBAC):根据用户角色来授予权限。
- 基于属性的权限管理 (ABAC):根据用户属性来授予权限。
- 基于资源的权限管理 (RBAC):根据资源属性来授予权限。
Linux中的权限管理
Linux系统使用基于用户、组和其它用户的权限管理机制。
- 用户:每个用户都有一个唯一的用户标识符 (UID)。
- 组:用户可以加入一个或多个组。
- 其它用户:指不属于任何组的用户。
Linux系统中的权限由以下三个部分组成: - 用户权限:指用户对文件或目录的访问权限。
- 组权限:指用户组对文件或目录的访问权限。
- 其它用户权限:指不属于任何组的用户对文件或目录的访问权限。
Linux系统中的权限可以使用以下命令来查看和修改:
ls -l
:查看文件或目录的权限。chmod
:修改文件或目录的权限。chown
:修改文件或目录的所有者。chgrp
:修改文件或目录的所属用户组。
权限管理的最佳实践
- 最小特权原则:只授予用户完成工作所需的最少权限。
- 职责分离原则:将不同的职责分配给不同的用户或组。
- 定期审计:定期检查权限设置,确保其符合安全要求。
网络管理
Linux网络管理是指对Linux系统中的网络进行配置和管理的操作。Linux网络管理包括以下几个方面:
- 网络接口配置
- IP地址配置
- 路由配置
- DNS配置
- 防火墙配置
- 网络服务配置
网络接口配置
网络接口是计算机与网络连接的物理接口。Linux系统支持多种类型的网络接口,包括以太网、无线网、虚拟网等。
可以使用 ifconfig
命令查看和配置网络接口。
ifconfig eth0 up
启用名为 eth0 的网络接口。
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
为名为 eth0 的网络接口配置IP地址和掩码。
IP地址配置
IP地址是网络中唯一标识一台主机的地址。Linux系统可以使用多种方式配置IP地址,包括静态配置和动态配置。
- 静态配置
可以使用ifconfig
命令静态配置IP地址。
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
为名为 eth0 的网络接口配置IP地址和掩码。
- 动态配置
可以使用dhcpcd
命令动态获取IP地址。
dhcpcd eth0
为名为 eth0 的网络接口动态获取IP地址。
路由配置
路由是指将数据包从源地址转发到目标地址的过程。Linux系统可以使用 route
命令配置路由。
route add default gw 192.168.1.1
添加默认路由,将所有数据包转发到网关 192.168.1.1。
DNS配置
DNS是将域名解析为IP地址的服务。Linux系统可以使用 resolv.conf 文件配置DNS服务器。
nameserver 192.168.1.1
将DNS服务器地址设置为 192.168.1.1。
防火墙配置
防火墙是用于保护网络安全的软件或硬件系统。Linux系统可以使用 iptables
命令配置防火墙。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许TCP协议的22端口(SSH服务)的入站连接。
网络服务配置
Linux系统支持多种网络服务,如Web服务、FTP服务、邮件服务等。
可以使用配置文件或命令行工具来配置网络服务。
- 配置文件
Web服务(Apache)的配置文件 /etc/httpd/conf/httpd.conf - 命令行工具
FTP服务(vsftpd)的命令行工具 vsftpd.conf
常用网络管理工具
ifconfig
: 查看和配置网络接口route
: 配置路由resolv.conf
: 配置DNS服务器iptables
: 配置防火墙netstat
: 查看网络连接状态ping
: 测试网络连接traceroute
: 跟踪网络路由
服务管理
Linux服务管理是指对Linux系统中的服务进行管理的操作。Linux服务管理包括以下几个方面:
- 服务的启动、停止、重启
- 服务的开机自启动设置
- 服务的状态查看
- 服务的日志管理
服务的启动、停止、重启
可以使用 systemctl
命令启动、停止、重启服务。
- 启动服务
systemctl start servicename
启动名为 servicename 的服务。
- 停止服务
systemctl stop servicename
停止名为 servicename 的服务。
- 重启服务
systemctl restart servicename
重启名为 servicename 的服务。
服务的开机自启动设置
可以使用 systemctl
命令设置服务的开机自启动。
- 开机自启动
systemctl enable servicename
设置名为 servicename 的服务开机自启动。
- 关闭开机自启动
systemctl disable servicename
关闭名为 servicename 的服务开机自启动。
服务的状态查看
可以使用 systemctl
命令查看服务的状态。
systemctl status servicename
查看名为 servicename 的服务的状态。
服务的日志管理
可以使用 journalctl
命令查看服务日志。
journalctl -u servicename
查看名为 servicename 的服务日志。
常用服务管理工具
● systemctl
: 管理systemd服务
● service
: 管理传统服务
● chkconfig
: 管理开机自启动服务
● sysv-rc-conf
: 管理开机自启动服务
安全管理
Linux系统的安全管理是指对Linux系统进行安全配置和管理,以防止数据泄露、非法访问等安全事件。Linux系统的安全管理包括以下几个方面:
- 用户管理
- 限制root用户的使用,使用普通用户进行日常操作。
- 使用
sudo
命令授权普通用户执行特定命令。 - 定期检查用户账号,删除不必要的用户账号。
- 权限管理
- 遵循最小特权原则,只授予用户完成工作所需的最少权限。
- 使用文件权限、目录权限、用户组权限等进行权限控制。
- 定期检查权限设置,确保其符合安全要求。
- 网络安全
- 配置防火墙,限制网络访问。
- 关闭不必要的网络服务。
- 定期更新系统补丁,修复安全漏洞。
- 审计和日志
- 启用系统审计,记录系统安全事件。
- 定期检查系统日志,分析安全威胁。
- 安全意识教育
- 提高用户安全意识,加强安全培训。
- 制定安全策略,规范用户行为。