系统用户篇
1.1 密码恢复
1.1.1 方法 1:通过单用户模式重置 root 密码
重启系统并进入 GRUB 菜单:
重启系统时,按下 Esc 键(或 Shift 键)以进入 GRUB 菜单。
编辑 GRUB 启动项:
在 GRUB 菜单中,选择你要启动的内核版本,按 e 键进入编辑模式。
找到以 linux 开头的行,通常包含内核参数。在这行末尾添加 rd.break 或 init=/bin/bash。
linux ... rd.break
按 Ctrl + X 或 F10 以启动带有修改的内核。
挂载根文件系统:
系统会进入紧急模式(Emergency Mode)或单用户模式(Single User Mode)。如果使用 rd.break,需要重新挂载根文件系统为读写模式:
mount -o remount,rw /sysroot
进入 chroot 环境:
切换到 chroot 环境以访问实际的文件系统:
chroot /sysroot
重置 root 密码:
现在你可以设置 root 密码:
passwd
输入新密码并确认。
更新 SELinux 相关文件上下文(如果启用了 SELinux,建议执行):
touch /.autorelabel
退出并重新启动系统:
exit
exit
系统会重新启动,并应用新的 root 密码。
1.1.2 方法 2:通过 Live CD/DVD 或 USB 重置 root 密码
使用 Live CD/DVD 或 USB 启动系统:
使用 CentOS Live CD/DVD 或 USB 启动你的系统。
挂载根文件系统:
打开终端,查找根文件系统所在的分区(例如,/dev/sda1):
fdisk -l
挂载根文件系统:
mkdir /mnt/sysroot
mount /dev/sda1 /mnt/sysroot
进入 chroot 环境:
切换到挂载的文件系统:
chroot /mnt/sysroot
重置 root 密码:
设置 root 密码:
passwd
输入新密码并确认。
更新 SELinux 相关文件上下文(如果启用了 SELinux):
touch /.autorelabel
退出并重新启动系统:
exit
reboot
1.1.3 方法 3:使用 sudo 提升权限(前提是现有用户有 sudo 权限)
如果当前用户已经具有 sudo 权限,可以使用 sudo 命令获取 root 权限:
sudo -i
或者
sudo su -
如果现有用户没有 sudo 权限并且你没有设置 root 密码,你只能通过前述的方法 1 或方法 2 获取 root 权限。
通过上述步骤,你应该能够成功设置 root 密码并获取 root 权限。
1.2 用户组
要查看当前用户所属的用户组,可以使用以下命令:
groups
这个命令会列出当前用户所属的所有用户组。例如,如果当前用户是 test,输出可能如下:
test : test wheel
这表示用户 test 属于 test 和 wheel 两个组。
如果你想查看特定用户(比如 test)所属的用户组,可以使用以下命令:
groups test
或者使用 id 命令查看详细信息:
id
对于特定用户 test:
id test
这将输出类似以下的信息:
uid=1001(test) gid=1001(test) groups=1001(test),10(wheel)
uid 是用户的用户 ID。
gid 是用户的主要组 ID。
groups 列出了用户所属的所有组,组名和组 ID 一并列出。
这些命令都可以用来查看当前用户或任何指定用户所属的组。
加入用户组
要将用户加入一个用户组,可以使用 usermod 命令。以下是详细步骤:
将用户加入一个新组
假设你有一个用户 test,你想将其加入组 wheel,可以使用以下命令:
sudo usermod -aG wheel test
-a:表示追加用户到新组而不从现有组中删除。
-G:指定要加入的组。
检查用户是否加入了新组
运行以下命令来验证用户 test 是否已被成功加入到 wheel 组:
groups test
或者:
id test
示例
将用户 test 加入 wheel 组:
sudo usermod -aG wheel test
验证用户 test 的组:
groups test
输出类似:
test : test wheel
或者:
id test
输出类似:
uid=1001(test) gid=1001(test) groups=1001(test),10(wheel)
注意事项
确保你有足够的权限(通常需要 root 权限或具有 sudo 权限的用户)来运行 usermod 命令。
使用 -aG 参数时,要特别注意 -a 参数,它表示追加用户到新组。如果省略 -a,用户将只会加入指定的新组,并从其他组中删除。
完整步骤
以下是从查看当前用户组到将用户加入新组的完整示例:
查看当前用户组:
groups test
将用户 test 加入 wheel 组:
sudo usermod -aG wheel test
验证用户 test 的组:
groups test
通过这些步骤,你可以成功将用户 test 加入到新的用户组中,并验证其组成员身份。
1.2 用户注销
在 Linux 系统中,强行注销某个用户可以通过以下步骤实现。这涉及到查找并终止该用户的所有活动会话。可以使用 pkill 或 kill 命令来终止用户的会话。
方法 1:使用 pkill 命令pkill 命令可以终止与指定用户名相关的所有进程。
查找并终止用户的所有进程:
假设你想强行注销用户 test:
sudo pkill -KILL -u test
验证用户是否已注销:
可以使用 who 或 w 命令查看当前登录的用户:
who
w
方法 2:使用 kill 命令
如果你想手动选择要终止的进程,可以使用 kill 命令来逐个终止。
查找用户的进程:
使用 ps 或 pgrep 命令查找用户 test 的所有进程:
ps -u test
或者:
pgrep -u test
终止用户的进程:
使用 kill 命令逐个终止用户 test 的进程。例如,假设你要终止进程 ID 为 1234 的进程:
sudo kill -KILL 1234
也可以使用 killall 命令终止用户的所有进程:
sudo killall -u test
示例步骤
以下是强行注销用户 test 的完整示例:
使用 pkill 命令强行注销用户:
sudo pkill -KILL -u test
验证用户是否已注销:
who
w
使用 ps 和 kill 命令手动终止进程(可选):
查找用户的进程:
ps -u test
终止进程:
sudo kill -KILL <process_id>
通过这些步骤,你可以强行注销指定的用户,终止其所有活动会话。如果你需要更精细地控制哪些进程被终止,可以使用 ps 和 kill 命令逐个选择进程进行终止。
为一个用户设置home目录
在 Linux 系统中,为一个用户设置或更改其 home 目录,可以使用 usermod 命令。以下是详细步骤,包括创建新用户并设置 home 目录,以及更改现有用户的 home 目录。
创建新用户并设置 home 目录
如果你要创建一个新用户并设置其 home 目录,可以使用 useradd 命令。例如,创建一个名为 testuser 的新用户,并将其 home 目录设置为 /home/testuser:
sudo useradd -m -d /home/testuser testuser
sudo passwd testuser
-m:自动创建用户的 home 目录。-d /home/testuser:指定用户的 home 目录路径。passwd testuser:为新用户设置密码。
更改现有用户的 home 目录
如果你要更改现有用户的 home 目录,可以使用 usermod 命令。例如,将用户 testuser 的 home 目录更改为 /newhome/testuser:
创建新的 home 目录(如果尚不存在):
sudo mkdir -p /newhome/testuser
将现有的 home 目录内容复制到新的 home 目录:
sudo rsync -a /home/testuser/ /newhome/testuser/
-a:归档模式,表示递归复制,并保持文件权限、所有权和时间戳等信息。
更改用户的 home 目录:
sudo usermod -d /newhome/testuser -m testuser
-d /newhome/testuser:指定新的 home 目录路径。-m:自动将旧的 home 目录内容移动到新的 home 目录。
更新用户的权限(确保用户对新目录有正确的权限):
sudo chown -R testuser:testuser /newhome/testuser
示例步骤
以下是更改现有用户 testuser 的 home 目录到 /newhome/testuser 的完整步骤:
创建新的 home 目录:
sudo mkdir -p /newhome/testuser
复制现有的 home 目录内容:
sudo rsync -a /home/testuser/ /newhome/testuser/
更改用户的 home 目录:
sudo usermod -d /newhome/testuser -m testuser
更新用户的权限:
sudo chown -R testuser:testuser /newhome/testuser
验证更改:
echo $HOME
确认用户的 home 目录已经更新。
通过这些步骤,你可以为一个用户设置或更改其 home 目录。无论是创建新用户还是更改现有用户的 home 目录,这些步骤都可以帮助你完成任务。
磁盘分区管理
要查看系统上的所有分区,可以使用以下命令之一:
使用 lsblk 命令:lsblk
这会显示系统上的所有块设备(包括硬盘和分区),以树形结构展示。
使用 fdisk 命令:
sudo fdisk -l
这会列出系统上的所有硬盘和分区的详细信息,包括分区类型、起始位置、大小等。
使用 parted 命令:
sudo parted -l
这会显示系统上的所有硬盘和分区的详细信息,包括分区类型、起始位置、大小等。
以上任何一种方法都可以让你查看系统上的所有分区,并且你可以根据需要选择其中一种来使用。