提权权限与磁盘管理
文章目录
提权权限与磁盘管理前言一、 提权权限1. sudo机制介绍2. sudoers 文件基础语法3. 免密登录配置
二、磁盘管理与系统1 磁盘结构与分区2 分区表类型3. 文件系统4 .分区管理命令5. 格式化与挂载6. 实现开机自动挂载7. 查看磁盘使用情况六、LVM(逻辑卷管理)概述与管理
1 LVM 基本概念2. LVM 管理命令汇总3 .LVM 实战操作
总结
前言
在Linux系统管理与运维的征途中,权限控制与存储管理是两大核心支柱,直接关系到系统的安全性、稳定性和可扩展性。
一、 提权权限
1. sudo机制介绍
目的:允许普通用户在不获取root密码的情况下,以超级用户(或其他用户)的身份安全地执行特定的管理命令。这遵循了“最小权限原则”,既完成了管理任务,又降低了直接使用root账户的风险。核心配置文件:。此文件默认权限为440(只读),必须使用
/etc/sudoers 命令编辑,因为它会在保存时进行语法检查,防止配置错误导致所有sudo操作失效。
visudo
2. sudoers 文件基础语法
基本格式:
user host=(runas_user) command
:授权的用户名。
user:授权的主机名(通常设为
host 或本地主机名)。
ALL:以哪个用户的身份运行(通常为
(runas_user))。
(root):允许执行的命令(必须使用绝对路径)。
command
常用命令:
# 切换用户(带-会加载目标用户的环境变量)
su - username
# 以root身份执行命令(后跟要提权执行的命令)
sudo command
# 列出当前用户被授予的sudo权限
sudo -l
# 验证用户的时间戳,延长免密码时间
sudo -v
# 删除用户的时间戳,下次使用sudo需要重新输入密码
sudo -k
. 配置示例与详解
示例1:授权单个用户执行特定命令
# 在/etc/sudoers文件中添加:
wangliu ALL=(root) /usr/sbin/useradd, /usr/sbin/usermod
解释:用户 可以在任何主机(
wangliu)上以
ALL 身份执行
root 和
useradd 命令。执行时需输入
usermod 自己的密码。
wangliu
示例2:无密码执行与命令取反
# 在/etc/sudoers文件中添加:
Tom yjs=(root) NOPASSWD: /usr/sbin/ifconfig
解释:用户 在主机
Tom 上可以免密码以
yjs 身份执行
root 命令。
ifconfig 是关键,表示免去密码验证。
NOPASSWD:
# 授权一个目录下大部分命令,但排除少数危险命令
syrianer localhost=/sbin/*, !/sbin/ifconfig, !/sbin/route
解释:用户 可以执行
syrianer 目录下除了
/sbin/ 和
ifconfig 之外的所有命令。
route 符号表示“取反”或“禁止”。
!
** 使用别名简化管理**
目的:当需要授权的用户、命令或主机很多时,使用别名可以使配置更清晰、易于管理。
别名类型:
:用户别名(可以包含用户、用户组
User_Alias)。
%groupname:主机别名。
Host_Alias:命令别名。
Cmnd_Alias:身份别名(定义以谁的身份运行)。
Runas_Alias
示例:使用别名进行复杂授权
# 定义用户别名
User_Alias MYUSERS = zhangsan, wangwu, lisi, %wheel
# 定义命令别名
Cmnd_Alias MYCMDS = /sbin/*, !/sbin/reboot, !/sbin/poweroff
# 应用别名进行授权
MYUSERS MYHOSTS = NOPASSWD: MYCMDS
解释:用户 ,
zhangsan,
wangwu 以及
lisi 组的所有成员,可以在
wheel 定义的主机上,免密码执行
MYHOSTS 下除
/sbin/ 和
reboot 外的所有命令。
poweroff
** 启用Sudo日志审计**
目的:记录所有sudo命令的执行情况,便于审计和故障排查。配置:在 文件中添加:
/etc/sudoers
Defaults logfile="/var/log/sudo"
解释:所有通过sudo执行的命令都会被记录到 文件中。此外,默认的系统日志
/var/log/sudo 也会记录sudo的认证过程。
/var/log/secure
3. 免密登录配置
目的:通过SSH密钥对认证,实现从一台Linux服务器到另一台的免密码安全登录。
1. 生成SSH密钥对
命令:
ssh-keygen -t rsa -b 4096
解释:
:指定密钥类型为RSA。
-t rsa:指定密钥长度为4096位,更安全。命令执行后,会提示输入密钥的保存路径(默认为
-b 4096)和密码(可直接回车设为空)。这将生成两个文件:私钥
~/.ssh/id_rsa(需妥善保管)和公钥
id_rsa。
id_rsa.pub
2. 分发公钥到目标服务器
方法一(推荐):使用 工具自动完成。
ssh-copy-id
ssh-copy-id user@hostname
解释:此命令会自动将本地的公钥内容追加到目标服务器对应用户家目录下的 文件中。
~/.ssh/authorized_keys
方法二(手动):如果目标服务器没有 ,可以手动操作。
ssh-copy-id
# 在本地执行,将公钥内容输出到目标服务器的authorized_keys文件
cat ~/.ssh/id_rsa.pub | ssh user@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
3. 设置正确的文件权限
目的:SSH协议对密钥文件的权限非常严格,权限不当会导致认证失败。
命令(在目标服务器上执行):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
解释:
目录权限应为
~/.ssh (drwx——)。
700 文件权限应为
authorized_keys (-rw——-)。
600
*4. 测试免密登录
命令:
ssh user@hostname
解释:如果配置正确,此命令将直接登录到目标服务器,无需输入密码。
5. (可选)增强安全性 – 禁用密码登录
目的:彻底杜绝通过密码暴力破解的风险,只允许密钥登录。配置:编辑目标服务器的 文件。
/etc/ssh/sshd_config
PubkeyAuthentication yes # 确保启用公钥认证
PasswordAuthentication no # 禁用密码认证
重启SSH服务:
sudo systemctl restart sshd
注意:在禁用密码登录前,务必确保公钥登录测试成功,否则可能把自己锁在服务器外面。
二、磁盘管理与系统
1 磁盘结构与分区
Linux设备命名:
:SCSI, SATA, USB, NVMe 硬盘。分区号:主分区1-4(如
/dev/sd[a-z]),逻辑分区从5开始(如
/dev/sda1)。
/dev/sda5
2 分区表类型
MBR:
位于磁盘第一个扇区(512字节)。限制:最大支持2TB磁盘,最多4个主分区(或3主+1扩展+无数逻辑)。 GPT:
优势:支持超大磁盘(ZB级),最多128个分区,可靠性更高。现代操作系统和新硬件优先选择。
3. 文件系统
XFS:高性能日志文件系统,擅长处理大文件,是CentOS/RHEL 7及之后的默认文件系统。EXT4:稳定可靠的日志文件系统,是许多其他Linux发行版的默认选择。SWAP:交换分区,用作虚拟内存。
4 .分区管理命令
查看磁盘信息:
fdisk -l # 列出所有磁盘和分区详情
lsblk # 以树形结构列出块设备(更直观)
使用 进行分区(适用于MBR):
fdisk
fdisk /dev/sdb
常用交互命令:
:新建分区
n:打印分区表
p:更改分区类型(例如,将Linux分区
t 改为LVM
83)
8e:删除分区
d:写入并退出
w:不保存退出
q
使用 进行分区(适用于GPT):
gdisk
gdisk /dev/sdb
交互命令与 类似。
fdisk
5. 格式化与挂载
创建文件系统(格式化):
mkfs.xfs /dev/sdb1 # 格式化为XFS
mkfs.ext4 /dev/sdb1 # 格式化为EXT4
mkswap /dev/sdb5 # 格式化为SWAP交换分区
挂载文件系统:
# 临时挂载
mount /dev/sdb1 /mnt/data
# 挂载ISO文件
mount -o loop /path/to/image.iso /mnt/iso
# 启用交换分区
swapon /dev/sdb5
卸载文件系统:
umount /dev/sdb1 # 通过设备卸载
umount /mnt/data # 通过挂载点卸载
swapoff /dev/sdb5 # 禁用交换分区
6. 实现开机自动挂载
目的:避免每次重启后手动重新挂载分区。
配置文件:
/etc/fstab
文件格式(6个字段):
<设备标识> <挂载点> <文件系统类型> <挂载选项> <dump备份> <fsck检查顺序>
示例:
UUID=1234-abcd-... /data xfs defaults 0 0
/dev/sdb1 /data xfs defaults 0 0
字段解释:
设备标识:推荐使用 (可通过
UUID 命令查看),因为它比设备名(如
blkid)更稳定。挂载点:必须是一个已存在的目录。文件系统类型:如
/dev/sdb1,
xfs,
ext4。挂载选项:
swap 代表默认选项(包含rw, suid, dev, exec, auto, nouser, async)。dump备份:是否被
defaults 备份工具使用,
dump 表示不备份。fsck检查顺序:系统启动时
0 检查磁盘的顺序。
fsck 不检查,根分区
0 应为
/,其他分区可为
1。
2
验证配置:编辑完 后,执行
/etc/fstab 来测试所有配置是否正确,不会报错即可。
mount -a
7. 查看磁盘使用情况
命令:
df -h # 以人类易读格式显示已挂载磁盘空间使用情况
df -i # 显示inode的使用情况
lsblk # 查看块设备树状结构
六、LVM(逻辑卷管理)概述与管理
1 LVM 基本概念
目的:提供一种比传统磁盘分区更灵活的磁盘管理方式,允许动态调整磁盘容量而无需重启或移动数据。核心组件:
PV:物理卷,可以是整个硬盘或分区,是LVM的基本存储块。VG:卷组,由一个或多个PV组成,形成一个大的存储池。LV:逻辑卷,从VG中划分出来,相当于传统分区,可以在其上创建文件系统。 注意: 启动分区不能使用LVM。
/boot
2. LVM 管理命令汇总
| 功能 | 物理卷(PV) | 卷组(VG) | 逻辑卷(LV) |
|---|---|---|---|
| 扫描 | |
|
|
| 创建 | |
|
|
| 显示 | |
|
|
| 删除 | |
|
|
| 扩展 | – | |
|
| 缩减 | – | |
|
3 .LVM 实战操作
1. 创建LVM逻辑卷流程
# 1. 准备物理磁盘或分区,并使用fdisk/gdisk将其类型标记为 'Linux LVM' (8e)
fdisk /dev/sdb # 在分区时使用 't' 命令修改类型
# 2. 创建物理卷(PV)
pvcreate /dev/sdb1 /dev/sdc1
# 3. 创建卷组(VG),并指定PE大小(可选)
vgcreate -s 16M myvg /dev/sdb1 /dev/sdc1 # -s 指定PE大小
# 4. 创建逻辑卷(LV)
lvcreate -L 20G -n mylv myvg # -L 指定大小,-n 指定名称
# 5. 格式化逻辑卷
mkfs.xfs /dev/myvg/mylv
# 6. 挂载使用
mkdir /data
mount /dev/myvg/mylv /data
2. 扩展LVM逻辑卷(核心优势)
# 1. 首先扩展逻辑卷(LV)的大小
lvextend -L +10G /dev/myvg/mylv # 增加10G
# 或者扩展到全部剩余空间
lvextend -l +100%FREE /dev/myvg/mylv
# 2. 然后扩展文件系统,使其识别新空间
# 对于XFS文件系统:
xfs_growfs /data
# 对于EXT4文件系统:
resize2fs /dev/myvg/mylv
解释: 只是扩大了LV的“容器”,而
lvextend 或
xfs_growfs 才是真正扩大里面的“文件系统”。
resize2fs
3. 扩展卷组(VG)
目的:当VG空间不足时,可以添加新的PV来扩展。
# 假设有新磁盘 /dev/sdd1
pvcreate /dev/sdd1
vgextend myvg /dev/sdd1
4. 删除LVM
操作顺序与创建相反:
# 1. 卸载LV
umount /data
# 2. 删除LV
lvremove /dev/myvg/mylv
# 3. 删除VG
vgremove myvg
# 4. 删除PV
pvremove /dev/sdb1 /dev/sdc1
总结
总而言之,将严谨的权限控制与灵活的存储管理相结合,是构建和维护一个稳定、安全、可扩展的Linux系统的基石。 掌握 sudo 让您能够安全地掌控系统,而精通LVM则让您能够游刃有余地管理不断增长的数据。这两项技能,是每一位Linux专业人士武器库中不可或缺的利器。




















暂无评论内容