第二天:linix入门基础---用户篇
一.登陆界面Linux的登录界面主要分为两大类纯文本命令行界面和图形化界面。如果你安装的是带有桌面环境的Linux如Ubuntu、Fedora默认看到的是图形登录界面如果是服务器版或在特殊运行级别下则会看到文本登录界面。下面我为你详细介绍这两种界面1. 文本命令行登录界面 (Console/TTY)这是Linux最传统、最基础的登录方式。当你启动系统但没有安装图形界面或者在图形界面下按Ctrl Alt F2到F6切换到的虚拟控制台时就会看到这个界面。特点纯黑底白字没有任何图形元素只有文本提示。资源占用极少运行非常稳定。输入密码时屏幕上不会有任何显示不会出现星号*这是为了安全考虑。使用场景服务器管理绝大多数Linux服务器都没有图形界面管理员通过这种方式进行本地维护。系统修复当图形界面崩溃或出问题时可以切换到文本界面进行故障排除。轻量级需求适用于资源受限的设备。2. 图形登录界面 (Graphical/Display Manager)这是我们日常使用个人电脑时最常见的登录方式。它由显示管理器Display Manager程序负责提供系统启动后直接呈现一个美观的图形化窗口。不同的桌面环境如GNOME, KDE通常有各自风格的显示管理器。这是一个美观的图形界面通常包含居中的登录框可以输入用户名和密码背景图片或壁纸可选择的桌面环境GNOME、KDE、XFCE 等右下角通常有电源、网络、音量等系统按钮不同发行版和桌面环境的图形登录界面风格各异。常见的显示管理器包括 GDMGNOME Display Manager—— GNOME 桌面环境默认使用SDDMSimple Desktop Display Manager—— KDE Plasma 默认使用LightDM—— 轻量级跨桌面显示管理器二.linux用户1.Linux 用户的核心概念在 Linux 中用户是系统进行权限管理的基本单位。每个进程、每个文件都归属于某个用户用户通过用户名和密码或其他认证方式登录系统后获得相应的操作权限。关键点Linux 是多用户、多任务操作系统多个用户可以同时登录并使用系统资源每个用户拥有独立的家目录和环境配置2.Linux 用户的三大分类用户类型英文名称典型 UID 范围说明超级用户root0系统最高权限可执行所有操作系统用户System User1-999传统 1-499为系统服务、守护进程创建一般不能登录普通用户Regular User1000传统 500日常使用的个人账户权限受限2.1. 超级用户rootUID固定为 0权限无限制可以执行任何命令、访问任何文件家目录/rootShell通常是 /bin/bash风险误操作可能导致系统崩溃或安全漏洞最佳实践日常操作应避免使用 root需要时用sudo提权2.2 系统用户UID1-999不同发行版略有差异作用运行后台服务、守护进程如 Web 服务器、数据库、SSH 等特点通常家目录为空或不可用如 /nonexistentShell 通常是 /sbin/nologin 或 /bin/false无法交互登录对系统资源只有必要的、最小化的权限2.3. 普通用户UID1000 起RHEL/CentOS 传统为 500Ubuntu 为 1000创建方式通过useradd或adduser命令权限范围完全控制自己的家目录/home/用户名部分公共目录只有读和执行权限如 /usr/bin、/etc不能修改系统配置文件、安装系统级软件提权方式通过sudo临时获得管理权限需配置3.用户实践接下来我们来把用户知识通过实际的操作命令来练习一遍。实践环境准备你需要一个正常运行的 Linux 系统物理机、虚拟机或 WSL 都可以并且能打开一个终端Terminal。练习一查看用户信息 (Who am I?)首先我们用几个简单的命令来“认识”一下当前环境和用户。查看当前登录用户名bashwho am i输出会是你当前正在使用的用户名例如alice或你的系统用户名。查看当前用户的详细身份信息 (UID/GID/组)bashid输出示例textuid1000(alice) gid1000(alice) groups1000(alice),4(adm),27(sudo)uid1000(alice)你的用户ID是1000用户名是alice。gid1000(alice)你的主组Primary GroupID是1000组名也是alice。groups...你所属的所有组。27(sudo)表示alice这个用户可以使用sudo命令。查看系统上所有登录的用户bashwho这会列出当前正在使用系统的用户名、登录终端和登录时间。练习二用户管理基础 (增、删、改)现在我们学习如何创建、设置密码和删除用户。1. 创建一个新用户---useradd使用useradd命令。为了让创建的用户有一个家目录/home/新用户名我们使用-m选项。bash# 创建一个名为 testuser 的新用户并自动创建其家目录sudo useradd -m testuser此时testuser用户已经创建但还没有密码所以无法登录。补充知识在某些发行版如 Ubuntu中adduser命令是一个更友好的交互式工具会引导你设置密码和填写信息。推荐新手使用sudo adduser testuser2⚠️ 重要提醒用户管理相关命令如useradd,userdel,usermod等都需要root 权限来执行。请在命令前加上sudo。2. 为新用户设置密码bash# 为 testuser 设置密码sudo passwd testuser系统会提示你输入两次新密码。注意输入密码时屏幕上不会显示任何字符这是正常的安全机制。3. 查看新用户的信息---idbash# 查看新用户的 UID 等信息id testuser你会看到uid很可能是 1000 的这证明它是一个普通用户。4. 修改用户属性 (以添加 sudo 权限为例)新创建的普通用户默认是无法执行sudo命令的。我们需要把它加入sudo或wheel组具体组名因发行版而异Ubuntu 为sudoRHEL/CentOS 为wheel。bash# 将 testuser 添加到 sudo 组sudo usermod -aG sudo testuser# -a 代表 append (追加)-G 指定附加组# 如果不加 -a会覆盖用户原有的所有组非常危险现在testuser就拥有了执行sudo命令的权限。5. 删除用户---userdel如果不想要这个测试用户了可以将其删除。-r选项会同时删除用户的家目录和邮箱池。bash# 删除 testuser 及其家目录sudo userdel -r testuser注意最好确保testuser没有正在运行的进程时再删除否则可能会导致一些小问题。练习三用户切换---su (Switch User)掌握了如何创建用户后我们来看看如何在不同的用户身份之间进行切换。1. 切换到另一个用户bash# 方式一切换到 testuser环境保持不变su testuser# 方式二切换到 testuser同时模拟登录读取目标用户的环境变量 (推荐)su - testuser当使用su -切换后你会发现当前目录变成了/home/testuser环境也变成了testuser的。执行whoami验证一下。2. 以另一个用户的身份执行单条命令bash# 以 testuser 的身份查看自己的家目录sudo -u testuser whoami3. 退出当前用户切换当你完成在testuser下的操作想回到原来的用户时bashexit4.实战练习大家可以按照下面的顺序自己动手操作一遍巩固学习效果用whoami和id查看自己当前的用户身份。用sudo adduser student1创建一个新用户student1并设置密码。用su - student1切换到student1。在student1下执行whoami和id观察输出。尝试在student1下执行sudo whoami观察是否被提示“不在 sudoers 文件中”。用exit退出student1回到你自己的账号。用sudo usermod -aG sudo student1将student1加入sudo组。再次切换到student1重新尝试sudo whoami现在应该能成功了。最后用sudo userdel -r student1删除这个测试用户。