Shell命令切换root用户、管理配置文件、检查硬件
- 切换root用户
- 两种方法
- su命令详细介绍
- sudo命令详细介绍
- /etc/passwd文件
- /etc/passwd文件里为什么有乱七八糟的用户?
- /etc/shadow文件
- 管理配置文件
- 检查硬件命令
- 查看CPU
- 查看GPU
与其他基于UNIX的系统一样,Linux也可以被多个人同时使用。多用户功能能够让多人在单个Linux系统上拥有账户,并且保护自己的数据不被他人破坏。
如果想要完成大多数管理任务,则需要以root用户(也被称为超级用户)的身份进行登录,或者临时获取 root权限(通常使用sudo命令)。没有root权限的普通用户不能更改,甚至在某些情况下不能查看Linux系统的某些配置信息。特别是诸如密码之类的安全功能更是受到了特别的保护。
本篇还将介绍如何监视Linux系统的设备。
切换root用户
两种方法
作为一名Linux系统的系统管理员,通常以普通用户账户登录到系统,并且想要在需要时请求管理权限,可以选择使用两种不同的方法来实现这一目标:su命令和sudo命令。
su命令(切换用户): su(切换用户)命令是一种常见的方法,用于暂时切换到另一个用户的身份,通常是root用户,以获取完全的系统管理权限。当使用su命令时,管理员需要输入目标用户(通常是root)的密码以验证身份。一旦成功切换到目标用户,管理员将拥有该用户的所有权限,并可以执行各种系统命令和配置更改。su命令的一个特点是,在切换到目标用户身份后,管理员将一直保持在该用户下,直到手动退出或注销。这意味着需要谨慎处理以避免不必要的特权操作。
sudo命令(以特权方式执行命令): sudo(以特权方式执行命令)命令提供了一种更灵活和安全的方法,以在需要时获取管理权限,而不必完全切换到root用户。使用sudo命令时,管理员需要输入自己的密码(而不是目标用户的密码),以验证身份。管理员可以在需要时使用sudo来运行特定命令,而不必长时间保持特权状态。这有助于降低潜在的安全风险,因为管理员只能在必要时获取特权,并在命令执行后立即返回到普通用户身份。此外,通过sudoers文件,系统管理员可以精确控制哪些用户或用户组可以使用sudo以及可以运行哪些命令,从而提高了安全性和可管理性。
su命令详细介绍
su
命令(Switch User的缩写)是在Linux系统中用于切换用户身份的命令。它通常用于切换到另一个用户,通常是root用户,以便执行需要特权访问的任务。以下是关于su
命令的详细介绍:
基本语法:
su [选项] [用户]
- 选项:
-
(连字符)用于完全模拟目标用户的环境,包括环境变量和工作目录。 - 用户:要切换到的目标用户。如果未指定用户,通常默认为root用户。
使用权限:
- 通常,只有系统管理员(或具有sudo权限的用户)才能使用
su
命令切换到root用户或其他用户的身份。 - 在默认情况下,普通用户可以使用
su
切换到root用户,但需要知道root用户的密码。
切换到root用户: 使用su
命令切换到root用户,管理员需要输入root用户的密码。例如:
su
切换到其他用户: 管理员也可以使用su
命令切换到其他用户的身份,需要指定目标用户的用户名。例如,切换到用户"john":
su john
完全模拟用户环境: 使用-
选项可以模拟目标用户的完整环境,包括用户的工作目录和环境变量。这对于执行与用户环境相关的任务很有用。例如,切换到root用户并模拟其环境:
su -
退出su会话: 要退出su
会话,可以使用exit
命令或Ctrl+D
组合键。这将返回到先前的用户身份。
sudo命令详细介绍
sudo
(superuser do的缩写)是在Linux和Unix系统中用于以特权方式执行命令的命令。它允许授权的用户执行以root权限或其他特定用户权限运行的命令,而无需完全切换到特权用户的身份。以下是关于sudo
命令的详细介绍:
基本语法: sudo [选项] [命令]
- 选项:
-u
用于指定要以哪个用户的身份运行命令,通常是root用户。 - 命令:要以特权方式执行的命令及其参数。
使用权限:
- 只有在sudoers文件中列出的用户或用户组才有权使用
sudo
命令。 - sudoers文件通常位于
/etc/sudoers
,并且只能由具有特权的用户(如root用户)编辑。
执行命令: 要以特权方式执行命令,用户需要在命令前加上sudo
,然后输入自己的密码以进行身份验证。例如,以root权限列出目录内容:
sudo ls /root
切换用户执行: 使用-u
选项可以指定以特定用户的身份执行命令。例如,以"john"用户的身份编辑文件:
sudo -u john nano /path/to/file
特权提升持续性: 一旦用户输入了密码,通常在一段时间内(默认为5分钟)不需要再次验证密码。这意味着在该时间窗口内,用户可以连续运行多个需要特权的命令,而无需反复输入密码。
sudoers文件配置: sudoers文件包含了哪些用户可以使用sudo以及可以运行哪些命令的规则。可以使用visudo
命令来编辑sudoers文件,它会检查语法错误,以避免损坏文件。
退出sudo会话: 在执行特权命令后,用户会自动返回到其普通用户身份。不需要手动退出sudo
会话。
/etc/passwd文件
/etc/passwd
文件是Linux和Unix系统中存储用户账户信息的文本文件之一。它包含了系统中每个用户的基本信息,但并不包含用户的密码。以下是关于/etc/passwd
文件的详细介绍:
文件位置: /etc/passwd
文件通常位于Linux和Unix系统的根目录下。
文件格式: /etc/passwd
文件的格式是用冒号(:)分隔的字段。每一行代表一个用户账户,字段的含义如下:
- 用户名:用户的登录名。
- 密码字段:在过去,此字段存储了用户的密码哈希值,但现在通常被
x
或*
替代,实际密码信息存储在/etc/shadow
文件中,以增加安全性。 - 用户ID(UID):每个用户都有一个唯一的数字标识符,用于系统内部标识用户。
- 组ID(GID):与用户关联的主要用户组的数字标识符。
- 用户描述信息(gecos):通常包括用户的全名、联系信息等。
- 主目录:用户登录后的起始目录。
- 登录Shell:用户登录后默认使用的Shell。
例如,以下是/etc/passwd
文件中的一行示例:
john:x:1001:1001:John Smith:/home/john:/bin/bash
密码信息的分离: 用户密码不再存储在/etc/passwd
文件中,而是分离存储在/etc/shadow
文件中。这是为了增加密码安全性,因为/etc/passwd
文件通常对系统中的所有用户可读,而/etc/shadow
文件只对root用户可读。
访问权限: /etc/passwd
文件通常对系统中的所有用户可读,因为它包含了用户账户的基本信息,但只有root用户才能编辑此文件。
/etc/passwd
文件是Linux和Unix系统中存储用户基本信息的重要文件之一。它包含了用户的用户名、UID、GID、用户描述、主目录和登录Shell等信息,但密码信息已分离存储在/etc/shadow
文件中,以提高安全性。
/etc/passwd文件里为什么有乱七八糟的用户?
/etc/passwd
文件中包含了系统中所有用户的基本信息,包括系统用户和服务账户。这些用户不仅用于普通用户登录,还用于系统进程和服务的运行。以下是为什么/etc/passwd
文件中包括系统用户的一些原因:
1. 系统进程和服务:许多系统进程和服务需要运行在特定的用户或用户组权限下,以增加安全性和隔离性。这些用户账户通常称为系统用户或服务账户,它们负责运行特定的服务,如Web服务器、数据库服务器、邮件服务器等。这些用户账户通常是系统自动创建的。
2. 权限控制:系统用户和服务账户通常受到严格的权限控制。它们的主要目的是运行系统进程和服务,而不是用于用户登录。因此,它们的Shell字段通常设置为/sbin/nologin
或/usr/sbin/nologin
,这样任何尝试登录到这些账户的操作都会被拒绝。
3. 隔离:将系统进程和服务运行在特定的用户账户下有助于隔离它们的操作。这样,如果某个服务出现漏洞,攻击者将受到限制,无法直接访问系统的关键部分。
一些常见的系统用户和服务账户,如root
、bin
、sys
等,是系统默认创建的,用于运行系统进程和服务。它们的存在是为了确保系统的正常运行和安全性。
尽管这些系统用户不用于人工登录,但它们的存在对于系统的正常操作和管理是必不可少的。如果怀疑某个用户账户是否应该存在或需要删除,务必小心,因为删除系统关键用户可能会导致系统不稳定或不可用。一般情况下,只有有经验的系统管理员才应该对这些用户账户进行操作。
/etc/shadow文件
/etc/shadow
文件是Linux系统中用于存储用户密码哈希值和与密码策略相关的其他安全信息的文件。这个文件对于保护用户密码的安全性至关重要,因为它通常只能由具有足够权限的用户(通常是root用户)访问,普通用户不能直接读取或修改它。
/etc/shadow
文件的常见格式和字段:
每一行代表一个用户账户,字段之间用冒号(:)分隔。
- 用户名:用户的登录名。
- 密码哈希值:用户密码的哈希值。密码通常被哈希后存储,而不是以明文形式存储。
- 上次修改密码日期:表示密码最后一次更改的日期,通常是从1970年1月1日开始计算的天数。
- 密码最短有效期:指定密码必须保持不变的最短天数。
- 密码最长有效期:指定密码允许保持不变的最长天数。
- 密码警告期限:指定在密码即将到期前多少天发出警告通知用户更改密码。
- 密码失效期限:表示密码过期的日期,通常也是从1970年1月1日开始计算的天数。过期后,用户将无法使用该密码登录。
- 密码不活动期限:指定密码在用户不活动多少天后失效,即如果用户在此期限内未登录系统,则密码将失效。
- 账户失效日期:表示用户账户的失效日期,通常也是从1970年1月1日开始计算的天数。失效后,用户将无法登录。
- 保留字段:这些字段通常为空,保留供将来使用。
管理配置文件
/etc
—该目录包含大部分基础Linux系统配置文件。
/etc/cron*
——该组中的目录所包含的文件定义了crond 实用工具如何按照每天(cron.daily)、每小时(cron.hourly)、每月(cron.monthly)或每周(cron.weekly)计划运行程序。
etc/httpd
——包含用来配置 Apache Web服务器行为(特别是 httpd守护进程)的各种文件(在Ubuntu和其他Linux系统上,使用的是/etc/apache 或/etclapache2).
/etc/mail
—包含用来配置sendmail 邮件传输代理的文件。
/etc/ppp
——包含几个用来设置点对点协议(PPP)的配置文件,以便可以让计算机拨号到Intermet(在拨号调制解调器非常流行时,PPP经常被使用)。
/etc/security
——包含为计算机设置多种默认安全条件的文件(主要是定义如何完成身份验正)。这些文件是pam包(一种插入式身份验证模块)的一部分。
crontab
——为运行与cron实用工具相关联的自动化任务和变量而设置时间(比如与cron相关联的SHELL和PATH)。
hostname
—包含本地系统的主机名。
hosts
——包含计算机上可用的IP地址和主机名(通常使用该文件保存LAN或者小型私人网络上的计算机名)。
passwd
——存储本地系统中所有有效用户的账户信息。其外,还包括其他信息,比如主目录和默认Shell(但很少包括用户密码,通常用户密码保存在/etc/shadow文件中)。
rpc
——定义远程过程调用名称和编号。
services
——定义TCP/IP和UDP服务名及其端口分配。
shadow
——包含passwd文件所定义用户的加密密码(相对于直接在passwd文件中存储原始加密密码,这种方法更安全。passwd文件必须是公开可读,但shadow文件只能由root用户读取)。
shells
——列举系统中可用的Shell命令行解释器(比如 bash、sh、csh等)及其位置。
sudoers
——该文件设置了那些没有权限运行某些命令的用户通过使用sudo命令可以运行的命令。特别是使用该文件为所选择的用户提供root权限。
检查硬件命令
查看CPU
查看CPU信息和性能统计,可以使用不同的命令:
1. 使用 lscpu
命令: lscpu
命令可以显示CPU的详细信息,包括CPU型号、架构、核心数、线程数等。
lscpu
2. 使用 cat /proc/cpuinfo
命令: /proc/cpuinfo
文件包含了有关CPU的信息。使用 cat
命令查看该文件的内容,如下所示:会显示每个核心的详细情况。
cat /proc/cpuinfo
3. 使用 top
命令: top
命令是一个实时的系统性能监视工具,可以在终端中查看系统的CPU利用率以及其他性能指标。运行以下命令启动 top
:
top
要退出 top
可以按下 q
键。
查看GPU
查看系统中的GPU(图形处理单元)信息,可以使用以下方法:
1. 使用 lspci
命令: lspci
命令用于列出系统上的PCI设备,包括GPU。在终端中运行以下命令以查看GPU信息:
lspci | grep -i vga
显示与图形设备(GPU)相关的信息,包括制造商、型号和PCI标识符。
2. 使用 nvidia-smi
命令(仅适用于NVIDIA GPU): 如果使用的是NVIDIA显卡,使用 nvidia-smi
命令来查看GPU信息和性能统计。在终端中运行以下命令:
nvidia-smi
显示与NVIDIA GPU相关的详细信息,包括GPU型号、驱动程序版本、GPU利用率和温度等。