920 lines
489 KiB
HTML
920 lines
489 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html><head><title>Linux 用户和权限</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Linux 用户和权限"/><meta property="og:description" content="Linux 用户和权限."/><meta property="og:image" content="https://wiki.7wate.com/static/og-image.png"/><meta property="og:width" content="1200"/><meta property="og:height" content="675"/><link rel="icon" href="../../../../static/icon.png"/><meta name="description" content="Linux 用户和权限."/><meta name="generator" content="Quartz"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><script async src="https://umami.7wate.com/script.js" data-website-id="c061efdc-95dd-4d21-9d04-a1ffda0a85b9"></script><script>
|
|||
|
var _hmt = _hmt || [];
|
|||
|
(function() {
|
|||
|
var hm = document.createElement("script");
|
|||
|
hm.src = "https://hm.baidu.com/hm.js?94d8ccb156eb7c65abf317e6e01cdba9";
|
|||
|
var s = document.getElementsByTagName("script")[0];
|
|||
|
s.parentNode.insertBefore(hm, s);
|
|||
|
})();
|
|||
|
</script><script async src="https://www.googletagmanager.com/gtag/js?id=G-MHMEL0F832"></script><script>
|
|||
|
(function() {
|
|||
|
window.dataLayer = window.dataLayer || [];
|
|||
|
function gtag() {
|
|||
|
window.dataLayer.push(arguments);
|
|||
|
}
|
|||
|
gtag('js', new Date());
|
|||
|
gtag('config', 'G-MHMEL0F832');
|
|||
|
})();
|
|||
|
</script><link href="../../../../index.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://fonts.googleapis.com/css2?family=IBM Plex Mono&family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&display=swap" rel="stylesheet" type="text/css" spa-preserve/><script src="../../../../prescript.js" type="application/javascript" spa-preserve></script><script type="application/javascript" spa-preserve>const fetchData = fetch(`../../../../static/contentIndex.json`).then(data => data.json())</script></head><body data-slug="Tech/operating-system/Linux/2.基础操作/Linux-用户和权限"><div id="quartz-root" class="page"><div id="quartz-body"><div class="left sidebar"><h1 class="page-title "><a href="../../../..">📚 X·Eden</a></h1><div class="spacer mobile-only"></div><div class="search "><div id="search-icon"><p>Search</p><div></div><svg tabIndex="0" aria-labelledby="title desc" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title id="title">Search</title><desc id="desc">Search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"></path><circle cx="8" cy="8" r="7"></circle></g></svg></div><div id="search-container"><div id="search-space"><input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search for something" placeholder="Search for something"/><div id="results-container"></div></div></div></div><div class="darkmode "><input class="toggle" id="darkmode-toggle" type="checkbox" tabIndex="-1"/><label id="toggle-label-light" for="darkmode-toggle" tabIndex="-1"><svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" version="1.1" id="dayIcon" x="0px" y="0px" viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xmlSpace="preserve"><title>Light mode</title><path d="M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5 S0.672,19,1.5,19h3C5.328,19,6,18.328,6,17.5z M7.5,26c-0.414,0-0.789,0.168-1.061,0.439l-2,2C4.168,28.711,4,29.086,4,29.5 C4,30.328,4.671,31,5.5,31c0.414,0,0.789-0.168,1.06-0.44l2-2C8.832,28.289,9,27.914,9,27.5C9,26.672,8.329,26,7.5,26z M17.5,6 C18.329,6,19,5.328,19,4.5v-3C19,0.672,18.329,0,17.5,0S16,0.672,16,1.5v3C16,5.328,16.671,6,17.5,6z M27.5,9 c0.414,0,0.789-0.168,1.06-0.439l2-2C30.832,6.289,31,5.914,31,5.5C31,4.672,30.329,4,29.5,4c-0.414,0-0.789,0.168-1.061,0.44 l-2,2C26.168,6.711,26,7.086,26,7.5C26,8.328,26.671,9,27.5,9z M6.439,8.561C6.711,8.832,7.086,9,7.5,9C8.328,9,9,8.328,9,7.5 c0-0.414-0.168-0.789-0.439-1.061l-2-2C6.289,4.168,5.914,4,5.5,4C4.672,4,4,4.672,4,5.5c0,0.414,0.168,0.789,0.439,1.06 L6.439,8.561z M33.5,16h-3c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5h3c0.828,0,1.5-0.672,1.5-1.5S34.328,16,33.5,16z M28.561,26.439C28.289,26.168,27.914,26,27.5,26c-0.828,0-1.5,0.672-1.5,1.5c0,0.414,0.168,0.789,0.439,1.06l2,2 C28.711,30.832,29.086,31,29.5,31c0.828,0,1.5-0.672,1.5-1.5c0-0.414-0.168-0.789-0.439-1.061L28.561,26.439z M17.5,29 c-0.829,0-1.5,0.672-1.5,1.5v3c0,0.828,0.671,1.5,1.5,1.5s1.5-0.672,1.5-1.5v-3C19,29.672,18.329,29,17.5,29z M17.5,7 C11.71,7,7,11.71,7,17.5S11.71,28,17.5,28S28,23.29,28,17.5S23.29,7,17.5,7z M17.5,25c-4.136,0-7.5-3.364-7.5-7.5 c0-4.136,3.364-7.5,7.5-7.5c4.136,0,7.5,3.364,7.5,7.5C25,21.636,21.636,25,17.5,25z"></path></svg></label><label id="toggle-label-dark" for="darkmode-toggle" tabIndex="-1"><svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" version="1.1" id="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background='new 0 0 100 100'" xmlSpace="preserve"><title>Dark mode</title><path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,
|
|||
|
<p>Linux 多用户系统的历史可以追溯到 1960 年代的 Unix 系统,Unix 是一种多用户、多任务的操作系统,被广泛应用于大型计算机和服务器上。随着 Linux 的发展,它也成为了一种强大的多用户操作系统,并被广泛应用于服务器、个人电脑和移动设备等领域。</p>
|
|||
|
<p>Linux 多用户系统的设计基于以下原则:</p>
|
|||
|
<ul>
|
|||
|
<li>每个用户都有一个唯一的标识符(UID),用于标识其身份。</li>
|
|||
|
<li>每个用户可以分配到一个或多个用户组(Group),用户组也有一个唯一的标识符(GID)。</li>
|
|||
|
<li>每个文件和目录都有一个所有者(Owner)和一个所属用户组(Group),用于控制访问权限。</li>
|
|||
|
<li>每个用户都有一个主目录(Home Directory),用于存储其个人文件和设置。</li>
|
|||
|
<li>系统管理员可以创建、删除和管理用户和用户组,以及控制用户的权限和访问权限。</li>
|
|||
|
</ul>
|
|||
|
<p>Linux 多用户系统的实现基于以下机制:</p>
|
|||
|
<ul>
|
|||
|
<li>用户和用户组的信息存储在特定的配置文件中,如 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow。</li>
|
|||
|
<li>用户登录时需要进行身份验证,通常使用用户名和密码进行认证。</li>
|
|||
|
<li>系统管理员可以使用命令行工具或图形界面来创建、删除和管理用户和用户组,以及配置用户的权限和访问权限。</li>
|
|||
|
<li>Linux 系统提供了许多安全机制,如访问控制列表(ACL)、文件系统权限和 SELinux 等,用于保护系统和用户的数据安全。</li>
|
|||
|
</ul>
|
|||
|
<p>目前随着云计算、容器化和虚拟化技术的发展,Linux 多用户系统的方向也在不断发展。未来的趋势包括:</p>
|
|||
|
<ul>
|
|||
|
<li>更加丰富和灵活的权限管理机制,如更细粒度的 ACL 和更灵活的访问控制策略。</li>
|
|||
|
<li>更加集成和自动化的用户和权限管理工具,如自动化用户创建和删除、自动化权限管理和集成用户和权限管理工具等。</li>
|
|||
|
<li>更加安全和可靠的身份验证机制,如双因素身份验证和基于生物识别的身份验证等。</li>
|
|||
|
<li>更加简单和易用的图形界面和命令行工具,以方便用户进行用户和权限管理操作。</li>
|
|||
|
</ul>
|
|||
|
<p>Linux 多用户系统具有强大的用户和权限管理功能,可以帮助管理员有效地管理系统和保护用户数据的安全。管理员可以使用命令行工具或图形界面来创建、删除和管理用户和用户组,以及配置用户的权限和访问权限。</p>
|
|||
|
<p>在使用 root 用户时,应注意系统的安全性,并使用 <code>sudo</code> 或 <code>su</code> 命令以普通用户身份执行命令。文件和目录的权限由三个组件组成,每个组件可以设置为读取、写入和执行权限,这些权限用数字表示。</p>
|
|||
|
<p>在 Linux 系统中,有多个配置文件存储用户和权限信息,包括 <code>/etc/passwd</code>、<code>/etc/shadow</code>、<code>/etc/group</code>、<code>/etc/gshadow</code>、<code>/etc/login.defs</code> 和 <code>/etc/adduser.conf</code> 等文件。</p>
|
|||
|
<h2 id="用户">用户<a aria-hidden="true" tabindex="-1" href="#用户" class="internal"> §</a></h2>
|
|||
|
<h3 id="创建">创建<a aria-hidden="true" tabindex="-1" href="#创建" class="internal"> §</a></h3>
|
|||
|
<h4 id="useradd">Useradd<a aria-hidden="true" tabindex="-1" href="#useradd" class="internal"> §</a></h4>
|
|||
|
<p><code>useradd</code> 命令是 Linux 系统中的一个命令行工具,用于创建新用户帐户。通过 <code>useradd</code> 命令,可以指定新用户的用户名、用户 ID(UID)、主目录、默认 shell 和密码等信息。</p>
|
|||
|
<p>在大多数 Linux 系统中,只有管理员用户(如 root 用户)可以创建新用户。通常情况下,管理员用户需要使用 <code>sudo</code> 命令或以 root 用户身份登录系统,才能使用 <code>useradd</code> 命令创建新用户。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 创建一个新用户</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">useradd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">john</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-c, --comment COMMENT</code></td><td>指定用户的注释字段。</td><td><code>sudo useradd -c "John Smith" john</code></td></tr><tr><td><code>-d, --home-dir HOME_DIR</code></td><td>指定用户的家目录。</td><td><code>sudo useradd -d /home/john john</code></td></tr><tr><td><code>-e, --expiredate EXPIRE_DATE</code></td><td>指定用户的账户过期日期。</td><td><code>sudo useradd -e 2023-06-30 john</code></td></tr><tr><td><code>-f, --inactive INACTIVE</code></td><td>设置密码过期后的不活动期限为 INACTIVE,以禁用账户。</td><td><code>sudo useradd -f 30 john</code></td></tr><tr><td><code>-g, --gid GROUP</code></td><td>指定用户的主用户组。</td><td><code>sudo useradd -g staff john</code></td></tr><tr><td><code>-G, --groups GROUPS</code></td><td>指定用户所属的其他用户组。</td><td><code>sudo useradd -G staff,developer john</code></td></tr><tr><td><code>-m, --create-home</code></td><td>创建用户的家目录。</td><td><code>sudo useradd -m john</code></td></tr><tr><td><code>-p, --password PASSWORD</code></td><td>指定用户的加密密码。</td><td><code>sudo useradd -p password_hash john</code></td></tr><tr><td><code>-s, --shell SHELL</code></td><td>指定用户的默认 shell。</td><td><code>sudo useradd -s /bin/bash john</code></td></tr><tr><td><code>-u, --uid UID</code></td><td>指定用户的 UID。</td><td><code>sudo useradd -u 1001 john</code></td></tr></tbody></table>
|
|||
|
<h3 id="管理">管理<a aria-hidden="true" tabindex="-1" href="#管理" class="internal"> §</a></h3>
|
|||
|
<h4 id="chfn">Chfn<a aria-hidden="true" tabindex="-1" href="#chfn" class="internal"> §</a></h4>
|
|||
|
<p><code>chfn</code>(Change Finger)命令用于修改用户信息。该命令可以用来更改用户的全名、办公室电话、家庭电话、其他说明等信息。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 更改当前用户信息</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">debian@SevenWate-PC:$</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">chfn</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">Password:</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">Changing</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">the</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">user</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">information</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">for</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">debian</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">Enter</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">the</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">new</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">value,</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">or</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">press</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">ENTER</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">for</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">the</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">default</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">Full</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Name:</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">Room</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Number</span><span style="color:var(--shiki-color-text);"> []:</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">Work</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Phone</span><span style="color:var(--shiki-color-text);"> []:</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">Home</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Phone</span><span style="color:var(--shiki-color-text);"> []:</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-f, --full-name</code></td><td>更改用户的全名。</td><td><code>chfn --full-name "John Doe" [username]</code></td></tr><tr><td><code>-h, --home-phone</code></td><td>更改用户的家庭电话号码。</td><td><code>chfn --home-phone "123-456-7890" [username]</code></td></tr><tr><td><code>-o, --other</code></td><td>更改用户的其他说明。</td><td><code>chfn --other "这是一个测试用户" [username]</code></td></tr><tr><td><code>-r, --room-number</code></td><td>更改用户的办公室电话号码。</td><td><code>chfn --room-number "555-1234" [username]</code></td></tr><tr><td><code>-u, --uid</code></td><td>更改用户的 UID。</td><td><code>chfn --uid 1001 [username]</code></td></tr><tr><td><code>-c, --comment</code></td><td>更改用户的注释字段。</td><td><code>chfn --comment "这是一个测试用户" [username]</code></td></tr></tbody></table>
|
|||
|
<h4 id="chsh">Chsh<a aria-hidden="true" tabindex="-1" href="#chsh" class="internal"> §</a></h4>
|
|||
|
<p><code>chsh</code> (Change Shell)命令是 Linux 系统中的一个命令行工具,用于更改用户的默认 shell。默认情况下,用户登录后会进入一个特定的 shell 环境,该环境定义了用户与系统交互的方式。<code>chsh</code> 命令可用于更改用户的默认 shell,从而改变用户与系统交互的方式。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 查看当前系统 shell</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">cat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">/etc/shells</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 更改当前用户的默认 shell</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">chsh</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">/bin/bash</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 更改其他用户的默认 shell</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">chsh</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">/bin/bash</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">john</span></span></code></pre></div>
|
|||
|
<h4 id="passwd">Passwd<a aria-hidden="true" tabindex="-1" href="#passwd" class="internal"> §</a></h4>
|
|||
|
<p><code>passwd</code> (Password)命令是 Linux 系统中的一个命令行工具,用于更改用户的密码或口令。默认情况下,每个 Linux 用户都有一个口令或密码来保护其账户的安全性。<code>passwd</code> 命令可用于更改密码或口令。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 更改当前用户的</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">passwd</span><span style="color:var(--shiki-color-text);"> </span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 更改其他用户的密码</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">passwd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">john</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-l, --lock</code></td><td>锁定用户的账户,禁止用户登录。</td><td><code>sudo passwd --lock john</code></td></tr><tr><td><code>-u, --unlock</code></td><td>解锁用户的账户,允许用户登录。</td><td><code>sudo passwd --unlock john</code></td></tr><tr><td><code>-d, --delete</code></td><td>删除用户的密码或口令,允许无密码登录。</td><td><code>sudo passwd --delete john</code></td></tr><tr><td><code>-e, --expire</code></td><td>强制用户在下一次登录时更改密码或口令。</td><td><code>sudo passwd --expire john</code></td></tr><tr><td><code>-S, --status</code></td><td>显示用户密码或口令的状态。</td><td><code>passwd --status john</code></td></tr></tbody></table>
|
|||
|
<h4 id="usermod">Usermod<a aria-hidden="true" tabindex="-1" href="#usermod" class="internal"> §</a></h4>
|
|||
|
<p><code>usermod</code>(User Modify)命令是 Linux 系统中的一个命令行工具,用于修改用户的属性或配置。<code>usermod</code> 命令允许您更改现有用户的用户名、UID、主目录、默认 shell 等信息,还可以将用户添加到其他用户组中。</p>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-c, --comment COMMENT</code></td><td>指定用户的注释字段。</td><td><code>sudo usermod -c "John Smith" john</code></td></tr><tr><td><code>-d, --home HOME_DIR</code></td><td>指定用户的家目录。</td><td><code>sudo usermod -d /home/newhome john</code></td></tr><tr><td><code>-e, --expiredate EXPIRE_DATE</code></td><td>指定用户的账户过期日期。</td><td><code>sudo usermod -e 2023-06-30 john</code></td></tr><tr><td><code>-f, --inactive INACTIVE</code></td><td>设置密码过期后的不活动期限为 INACTIVE,以禁用账户。</td><td><code>sudo usermod -f 30 john</code></td></tr><tr><td><code>-g, --gid GROUP</code></td><td>指定用户的主用户组。</td><td><code>sudo usermod -g staff john</code></td></tr><tr><td><code>-aG, --add-subgroups</code></td><td>将用户添加到附加组</td><td><code>sudo usermod -aG audio john</code></td></tr><tr><td><code>-l, --login NEW_LOGIN</code></td><td>更改用户的登录名。</td><td><code>sudo usermod -l newname john</code></td></tr><tr><td><code>-p, --password PASSWORD</code></td><td>指定用户的加密密码。</td><td><code>sudo usermod -p password_hash john</code></td></tr><tr><td><code>-s, --shell SHELL</code></td><td>指定用户的默认 shell。</td><td><code>sudo usermod -s /bin/bash john</code></td></tr><tr><td><code>-u, --uid UID</code></td><td>指定用户的 UID。</td><td><code>sudo usermod -u 1001 john</code></td></tr></tbody></table>
|
|||
|
<h3 id="删除">删除<a aria-hidden="true" tabindex="-1" href="#删除" class="internal"> §</a></h3>
|
|||
|
<h4 id="userdel">Userdel<a aria-hidden="true" tabindex="-1" href="#userdel" class="internal"> §</a></h4>
|
|||
|
<p><code>userdel</code>(User Delete)命令是 Linux 系统中的一个命令行工具,用于删除现有用户帐户。默认情况下,<code>userdel</code> 命令仅删除用户的帐户,而不删除用户的主目录和邮件箱。如果需要删除用户的主目录和邮件箱,可以使用 <code>-r</code> 选项。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 删除一个用户</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">userdel</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">john</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-f, --force</code></td><td>强制删除用户,即使用户当前已登录或有未完成的进程。</td><td><code>sudo userdel -f john</code></td></tr><tr><td><code>-r, --remove</code></td><td>删除用户及其主目录。</td><td><code>sudo userdel -r john</code></td></tr></tbody></table>
|
|||
|
<h2 id="用户组">用户组<a aria-hidden="true" tabindex="-1" href="#用户组" class="internal"> §</a></h2>
|
|||
|
<h3 id="创建-1">创建<a aria-hidden="true" tabindex="-1" href="#创建-1" class="internal"> §</a></h3>
|
|||
|
<h4 id="groupadd">Groupadd<a aria-hidden="true" tabindex="-1" href="#groupadd" class="internal"> §</a></h4>
|
|||
|
<p><code>groupadd</code> 命令是 Linux 系统中的一个命令行工具,用于创建新的用户组。管理员用户(如 root 用户)可以使用 <code>groupadd</code> 命令创建新组。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 创建一个新组</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">groupadd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newgroup</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-g, --gid GID</code></td><td>指定新组的 GID。如果未指定,系统会自动分配一个未使用的 GID。</td><td><code>sudo groupadd -g 1001 newgroup</code></td></tr><tr><td><code>-K, --key KEY=VALUE</code></td><td>指定要应用于新组的 SELinux 标签。</td><td><code>sudo groupadd -K "type=staff_u" newgroup</code></td></tr><tr><td><code>-r, --system</code></td><td>创建一个系统组,该组的 GID 小于 1000,且不会在登录屏幕上显示。</td><td><code>sudo groupadd -r newgroup</code></td></tr></tbody></table>
|
|||
|
<h3 id="管理-1">管理<a aria-hidden="true" tabindex="-1" href="#管理-1" class="internal"> §</a></h3>
|
|||
|
<h4 id="groups">Groups<a aria-hidden="true" tabindex="-1" href="#groups" class="internal"> §</a></h4>
|
|||
|
<p><code>groups</code> 命令是 Linux 系统中的一个命令行工具,用于显示当前用户所属的用户组。如果没有指定用户名,则 <code>groups</code> 命令将显示当前用户所属的用户组。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 显示当前用户所属的用户组</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">groups</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 显示指定用户所属的用户组</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">groups</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">john</span></span></code></pre></div>
|
|||
|
<h4 id="gpasswd">Gpasswd<a aria-hidden="true" tabindex="-1" href="#gpasswd" class="internal"> §</a></h4>
|
|||
|
<p><code>gpasswd</code> (Group Password)命令是 Linux 系统中的一个命令行工具,用于管理用户组的密码和成员列表。管理员用户(如 root 用户)可以使用 <code>gpasswd</code> 命令来添加或删除用户组的成员,或者设置或删除用户组的密码。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 设置组密码</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">gpasswd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newgroup</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-a, --add USER</code></td><td>将指定的用户添加到指定的用户组中。</td><td><code>sudo gpasswd -a john newgroup</code></td></tr><tr><td><code>-d, --delete USER</code></td><td>从指定的用户组中删除指定的用户。</td><td><code>sudo gpasswd -d john newgroup</code></td></tr><tr><td><code>-M, --members USER1,USER2,...</code></td><td>将指定的用户列表设置为指定组的成员。</td><td><code>sudo gpasswd -M john,jane newgroup</code></td></tr><tr><td><code>-r, --remove-password</code></td><td>从指定的用户组中删除密码。</td><td><code>sudo gpasswd -r newgroup</code></td></tr><tr><td><code>-R, --restrict</code></td><td>启用限制模式。在此模式下,只有组的所有者和管理员才能更改组成员身份。</td><td><code>sudo gpasswd -R newgroup</code></td></tr></tbody></table>
|
|||
|
<h4 id="groupmod">Groupmod<a aria-hidden="true" tabindex="-1" href="#groupmod" class="internal"> §</a></h4>
|
|||
|
<p><code>groupmod</code> (Group Modify)命令是 Linux 系统中的一个命令行工具,用于修改已有用户组的属性,例如组 ID、组名称和组密码等。管理员用户(如 root 用户)可以使用 <code>groupmod</code> 命令来更改用户组的属性。</p>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-g, --gid GID</code></td><td>将组的 GID 设置为指定的值。</td><td><code>sudo groupmod -g 1001 newgroup</code></td></tr><tr><td><code>-n, --new-name NEW_GROUP</code></td><td>将组的名称更改为指定的名称。</td><td><code>sudo groupmod -n newgroup2 newgroup</code></td></tr><tr><td><code>-o, --non-unique</code></td><td>允许使用非唯一 GID 创建组。</td><td><code>sudo groupmod -o newgroup</code></td></tr><tr><td><code>-p, --password PASSWORD</code></td><td>将组密码设置为指定的密码。</td><td><code>sudo groupmod -p mypassword newgroup</code></td></tr></tbody></table>
|
|||
|
<h3 id="删除-1">删除<a aria-hidden="true" tabindex="-1" href="#删除-1" class="internal"> §</a></h3>
|
|||
|
<h4 id="groupdel">Groupdel<a aria-hidden="true" tabindex="-1" href="#groupdel" class="internal"> §</a></h4>
|
|||
|
<p><code>groupdel</code> (Group Delete)是 Linux 系统中的一个命令行工具,用于删除一个用户组。删除用户组时,系统会自动将该组的所有成员从该组中删除,并将文件和目录中的组 ID 更改为其他组。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 删除一个用户组</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">groupdel</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newgroup</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-f, --force</code></td><td>强制删除用户组,即使该组仍有成员。</td><td><code>sudo groupdel -f newgroup</code></td></tr><tr><td><code>-h, --help</code></td><td>显示命令帮助信息。</td><td><code>groupdel -h</code></td></tr><tr><td><code>-R, --root CHROOT_DIR</code></td><td>在指定的 chroot 环境中运行命令。</td><td><code>sudo groupdel --root /mnt/newroot newgroup</code></td></tr><tr><td><code>-v, --verbose</code></td><td>显示命令详细输出。</td><td><code>sudo groupdel -v newgroup</code></td></tr></tbody></table>
|
|||
|
<h2 id="root-超级用户">Root 超级用户<a aria-hidden="true" tabindex="-1" href="#root-超级用户" class="internal"> §</a></h2>
|
|||
|
<p>在 Linux 系统中,root 是超级用户,具有完全的系统管理权限。root 用户可以执行任何命令,并访问系统中的所有文件和资源。在默认情况下,root 用户的密码是空的,因此在安全性方面需要额外注意。</p>
|
|||
|
<h3 id="su">Su<a aria-hidden="true" tabindex="-1" href="#su" class="internal"> §</a></h3>
|
|||
|
<p><code>su</code>(Switch User)命令是 Linux 系统中的一个命令行工具,它允许您在不注销当前用户的情况下切换到其他用户帐户。默认情况下,<code>su</code> 命令切换到超级用户帐户(root)。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 默认切换 root</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">su</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 切换到 debian</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">su</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">debian</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-c, --command COMMAND</code></td><td>在切换到另一个用户后执行指定的命令或脚本。</td><td><code>su -c "ls -l" user1</code></td></tr><tr><td><code>-s, --shell SHELL</code></td><td>指定要使用的 shell,而不是默认 shell。</td><td><code>su -s /bin/bash user1</code></td></tr><tr><td><code>-l, --login</code></td><td>在切换用户时模拟完整的登录过程,包括加载环境变量、切换工作目录等。</td><td><code>su -l user</code></td></tr></tbody></table>
|
|||
|
<h3 id="sudo">Sudo<a aria-hidden="true" tabindex="-1" href="#sudo" class="internal"> §</a></h3>
|
|||
|
<p>在 Unix 和类 Unix 系统中,<code>sudo</code> 是一个强大的工具,允许普通用户以超级用户(root)的权限来执行特定的命令或访问受限资源。<code>sudo</code> 命令的行为是由一个配置文件来定义的,这个文件通常称为 <code>sudoers</code> 文件。</p>
|
|||
|
<p><code>sudoers</code> 文件位于 <code>/etc/sudoers</code> 或 <code>/etc/sudoers.d</code> 目录中,并且只有超级用户(root)有权限进行编辑。下面是一个 <code>sudoers</code> 文件的示例内容:</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 允许 `sudo` 组的成员以任何用户身份(ALL:ALL)执行任何命令(ALL)。</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">%sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">ALL=</span><span style="color:var(--shiki-color-text);">(</span><span style="color:var(--shiki-token-string);">ALL:ALL</span><span style="color:var(--shiki-color-text);">) ALL</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 允许 `admin` 组的成员以任何用户身份(ALL:ALL)执行任何命令(ALL)。</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">%admin</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">ALL=</span><span style="color:var(--shiki-color-text);">(</span><span style="color:var(--shiki-token-string);">ALL:ALL</span><span style="color:var(--shiki-color-text);">) ALL</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 允许 `root` 用户以任何用户身份(ALL:ALL)执行任何命令(ALL)。</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">root</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">ALL=</span><span style="color:var(--shiki-color-text);">(</span><span style="color:var(--shiki-token-string);">ALL:ALL</span><span style="color:var(--shiki-color-text);">) ALL</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 允许 `sudo` 组的成员以任何用户身份(ALL:ALL)执行任何命令(ALL),并且无需输入密码(NOPASSWD)。</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">%sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">ALL=</span><span style="color:var(--shiki-color-text);">(</span><span style="color:var(--shiki-token-string);">ALL:ALL</span><span style="color:var(--shiki-color-text);">) NOPASSWD: ALL</span></span></code></pre></div>
|
|||
|
<p>在 <code>sudoers</code> 文件中,每个规则的一般格式如下:</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">user/group</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">hosts=</span><span style="color:var(--shiki-color-text);">(</span><span style="color:var(--shiki-token-string);">users:groups</span><span style="color:var(--shiki-color-text);">) commands</span></span></code></pre></div>
|
|||
|
<ul>
|
|||
|
<li><code>user/group</code>:指定用户或用户组,可以使用用户名或组名。</li>
|
|||
|
<li><code>hosts</code>:指定可以使用 <code>sudo</code> 命令的主机列表,可以是主机名、IP 地址或特殊的通配符。</li>
|
|||
|
<li><code>users:groups</code>:指定要执行命令的用户和组,以冒号分隔。</li>
|
|||
|
<li><code>commands</code>:指定允许执行的命令。</li>
|
|||
|
</ul>
|
|||
|
<p><code>sudoers</code> 文件中的规则可以使用特殊符号和关键字来增加灵活性。例如:</p>
|
|||
|
<ul>
|
|||
|
<li><code>ALL</code>:表示匹配所有主机、用户或命令。</li>
|
|||
|
<li><code>ALL=(ALL:ALL)</code>:表示以任何用户身份在任何主机上执行任何命令。</li>
|
|||
|
<li><code>NOPASSWD</code>:表示无需输入密码。</li>
|
|||
|
</ul>
|
|||
|
<p><strong>需要注意的是,对 <code>sudoers</code> 文件的修改应当谨慎进行,并且建议使用 <code>visudo</code> 命令来编辑 <code>sudoers</code> 文件,以确保语法正确并避免意外的访问限制。</strong><code>visudo</code> 会对文件进行验证并在保存前进行检查,以防止可能导致系统故障的错误配置。</p>
|
|||
|
<p>以下是创建 <code>sudo</code> 用户的步骤:</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">1.创建用户</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">adduser</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">username</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">2.将用户添加到</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">组</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">usermod</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-aG</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">username</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">3.检查用户是否已成功添加到</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">组</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">groups</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">username</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">4.确认用户可以使用</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">命令</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-l</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-U</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">username</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-u, --user USER</code></td><td>指定要切换到的用户。</td><td><code>sudo -u user1 ls -l</code></td></tr><tr><td><code>-g, --group GROUP</code></td><td>指定要切换到的组。</td><td><code>sudo -g group1 ls -l</code></td></tr><tr><td><code>-k, --reset-timestamp</code></td><td>重置 <code>sudo</code> 命令的时间戳。</td><td><code>sudo -k</code></td></tr><tr><td><code>-v, --validate</code></td><td>验证 <code>sudo</code> 命令的权限,但不执行任何命令。</td><td><code>sudo -v</code></td></tr><tr><td><code>-l, --list [COMMAND]</code></td><td>显示 <code>sudo</code> 命令当前用户的授权信息,或显示指定命令的授权信息。</td><td><code>sudo -l</code> 或 <code>sudo -l /usr/bin/apt-get</code></td></tr><tr><td><code>-h, --help</code></td><td>显示 <code>sudo</code> 命令的帮助信息。</td><td><code>sudo -h</code></td></tr><tr><td><code>-V, --version</code></td><td>显示 <code>sudo</code> 命令的版本信息。</td><td><code>sudo -V</code></td></tr></tbody></table>
|
|||
|
<h3 id="newusers">Newusers<a aria-hidden="true" tabindex="-1" href="#newusers" class="internal"> §</a></h3>
|
|||
|
<p><code>newusers</code> 是一个 Linux 系统命令,用于批量创建新的用户账号。</p>
|
|||
|
<p>该命令可以从指定的文件中读取一组用户信息,每行包括用户名、密码、用户 ID、主组 ID、全名、主目录、默认 shell 等字段。<code>newusers</code> 会自动创建这些用户账号,并设置相应的密码、主目录和 shell。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">--------------------</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">user.txt</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">--------------------</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">user1:x:1001:1001:User</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">One:/home/user1:/bin/bash</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">user2:x:1002:1002:User</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Two:/home/user2:/bin/bash</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">user3:x:1003:1003:User</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Three:/home/user3:/bin/bash</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">--------------------------------------------------</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 读取 user.txt 批量创建用户</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">newusers</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">user.txt</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-u, --uid</code></td><td>指定起始用户 ID</td><td><code>newusers -u 1000 users.txt</code></td></tr><tr><td><code>-g, --gid</code></td><td>指定起始组 ID</td><td><code>newusers -g 1000 users.txt</code></td></tr><tr><td><code>-c, --comment</code></td><td>指定用户的注释信息</td><td><code>newusers -c "User One" users.txt</code>, <code>newusers --comment "User One" users.txt</code></td></tr><tr><td><code>-s, --shell</code></td><td>指定新用户的默认 shell</td><td><code>newusers -s /bin/bash users.txt</code>, <code>newusers --shell /bin/bash users.txt</code></td></tr><tr><td><code>-H, --no-create-home</code></td><td>禁止创建用户主目录</td><td><code>newusers -H users.txt</code>, <code>newusers --no-create-home users.txt</code></td></tr><tr><td><code>-N, --no-user-group</code></td><td>禁止创建与用户名同名的主组</td><td><code>newusers -N users.txt</code>, <code>newusers --no-user-group users.txt</code></td></tr></tbody></table>
|
|||
|
<h3 id="chpasswd">Chpasswd<a aria-hidden="true" tabindex="-1" href="#chpasswd" class="internal"> §</a></h3>
|
|||
|
<p><code>chpasswd</code> 命令用于批量修改用户的密码,可以一次性修改多个用户的密码,而不需要逐个输入密码。它可以从标准输入、文件或命令行参数中读取用户密码信息,并将其应用于指定的用户账户。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">--------------------</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">users.txt</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">--------------------</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">user1:password1</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">user2:password2</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">--------------------------------------------------</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 将 user1 的密码修改为 password1</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">echo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string-expression);">'user1:password1'</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-keyword);">|</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">chpasswd</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 批量更新,使用 md5 加密方式</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">chpasswd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-m</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-keyword);"><</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">users.txt</span></span></code></pre></div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-e, --encrypted</code></td><td>指定密码已加密</td><td><code>chpasswd -e < users.txt</code></td></tr><tr><td><code>-h, --help</code></td><td>显示帮助信息并退出</td><td><code>chpasswd --help</code></td></tr><tr><td><code>-m, --md5</code></td><td>指定密码以 MD5 格式加密</td><td><code>chpasswd -m < users.txt</code></td></tr><tr><td><code>-c, --crypt-method</code></td><td>指定密码加密方法</td><td><code>chpasswd --crypt-method SHA512 < users.txt</code></td></tr><tr><td><code>-R, --root</code></td><td>以 root 权限运行命令</td><td><code>sudo chpasswd --root</code></td></tr><tr><td><code>-u, --update</code></td><td>仅更新现有用户的密码</td><td><code>chpasswd -u < users.txt</code></td></tr><tr><td><code>-I, --inactive</code></td><td>指定密码失效时间,单位为天</td><td><code>chpasswd --inactive 7 < users.txt</code></td></tr></tbody></table>
|
|||
|
<h3 id="pwckgrpck">pwck、grpck<a aria-hidden="true" tabindex="-1" href="#pwckgrpck" class="internal"> §</a></h3>
|
|||
|
<p><code>pwck</code> (Password Check)和 <code>grpck</code> (Group Check)命令是 Linux 系统中用于检查 <code>/etc/passwd</code>、<code>/etc/shadow</code> 和 <code>/etc/group</code> 等文件的格式和完整性的工具。这些命令可以帮助系统管理员查找和修复这些文件中的错误,以确保系统的安全性和稳定性。</p>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<p>用户配置文件:<code>/etc/passwd</code> 文件是 Linux 系统中存储用户信息的文件之一。该文件包含每个用户的用户名、用户 ID、主目录、登录 shell 等信息。</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>用户密码配置文件:<code>/etc/shadow</code> 文件是 Linux 系统中存储用户密码信息的文件之一。该文件包含每个用户的密码哈希值、最后一次更改密码的日期等信息。</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>用户组配置文件:<code>/etc/group</code> 文件是 Linux 系统中存储用户组信息的文件之一。该文件包含每个用户组的名称、组 ID 和组成员列表等信息。</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>用户组密码配置文件:<code>/etc/gshadow</code> 文件是 Linux 系统中存储用户组密码信息的文件之一。该文件包含每个用户组的密码哈希值、管理员列表和成员列表等信息。</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>默认配置文件:<code>/etc/login.defs</code> 文件是 Linux 系统中存储默认登录选项的文件之一。该文件包含默认的密码长度、最大尝试登录次数等信息。</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>配置文件:<code>/etc/adduser.conf</code> 文件是 Linux 系统中存储新用户默认配置选项的文件之一。该文件包含新用户的默认主目录、默认 shell 等信息。</p>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<table><thead><tr><th>选项</th><th>描述</th><th>示例</th></tr></thead><tbody><tr><td><code>-r, --root DIR</code></td><td>指定要检查的根目录</td><td><code>pwck/grpck -r /mnt</code></td></tr><tr><td><code>-s, --silent</code></td><td>安静模式,只输出错误信息</td><td><code>pwck/grpck -s /etc/passwd /etc/shadow</code></td></tr><tr><td><code>-q, --quiet</code></td><td>安静模式,不输出信息</td><td><code>pwck/grpck -q /etc/passwd /etc/group</code></td></tr><tr><td><code>-n, --nocheck</code></td><td>不检查用户主目录和组文件</td><td><code>pwck/grpck -n /etc/passwd /etc/shadow</code></td></tr></tbody></table>
|
|||
|
<h3 id="pwconvpwunconvgrpconvgrpunconv">pwconv、pwunconv、grpconv、grpunconv<a aria-hidden="true" tabindex="-1" href="#pwconvpwunconvgrpconvgrpunconv" class="internal"> §</a></h3>
|
|||
|
<p><code>pwconv</code>(Password Conversion)、<code>pwunconv</code>(Password unConversion)、<code>grpconv</code> (Group Conversion)和 <code>grpunconv</code>(Group unConversion) 命令是 Linux 系统中的用于转换密码文件和组文件格式的工具。这些工具可以帮助系统管理员将 <code>/etc/passwd</code>、<code>/etc/shadow</code> 和 <code>/etc/group</code> 等文件的格式转换为其他格式或者将已转换的文件恢复为原始格式。</p>
|
|||
|
<p>这些工具的作用如下:</p>
|
|||
|
<ul>
|
|||
|
<li><code>pwconv</code> 命令:将 <code>/etc/passwd</code> 和 <code>/etc/shadow</code> 文件的格式从标准格式(包括用户名、密码和 UID 等信息)转换为 shadow 格式(将密码单独存储在 <code>/etc/shadow</code> 文件中)。</li>
|
|||
|
<li><code>pwunconv</code> 命令:将 <code>/etc/passwd</code> 和 <code>/etc/shadow</code> 文件的格式从 shadow 格式转换为标准格式。</li>
|
|||
|
<li><code>grpconv</code> 命令:将 <code>/etc/group</code> 文件的格式从标准格式(包括组名、组密码和 GID 等信息)转换为 Gshadow 格式(将组密码单独存储在 <code>/etc/gshadow</code> 文件中)。</li>
|
|||
|
<li><code>grpunconv</code> 命令:将 <code>/etc/group</code> 文件的格式从 Gshadow 格式转换为标准格式。</li>
|
|||
|
</ul>
|
|||
|
<p>这些工具的用途包括但不限于:</p>
|
|||
|
<ul>
|
|||
|
<li>提高系统的安全性:使用 shadow 格式将用户密码单独存储在 <code>/etc/shadow</code> 文件中,可以防止未经授权的用户访问密码信息,提高系统的安全性。</li>
|
|||
|
<li>管理用户和组的身份验证:通过转换和恢复密码和组文件格式,可以更轻松地管理用户和组的身份验证信息,例如更改密码、添加或删除用户和组等操作。</li>
|
|||
|
</ul>
|
|||
|
<h2 id="其他">其他<a aria-hidden="true" tabindex="-1" href="#其他" class="internal"> §</a></h2>
|
|||
|
<h3 id="w">W<a aria-hidden="true" tabindex="-1" href="#w" class="internal"> §</a></h3>
|
|||
|
<p><code>w</code> 命令在 Unix 和 Unix 类操作系统中用于显示有关系统活动的信息。这个命令可以显示当前系统中登录的用户、他们所做的事情、从哪里登录、他们登录的时间以及系统负载等。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">w</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">14:16:51</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">up</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">22</span><span style="color:var(--shiki-token-string);">:16,</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">2</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">users,</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">load</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">average:</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.00</span><span style="color:var(--shiki-token-string);">,</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.00</span><span style="color:var(--shiki-token-string);">,</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.00</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">USER</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">TTY</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">来自</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">LOGIN@</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">IDLE</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">JCPU</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">PCPU</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">WHAT</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">tty1</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">二16</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">22</span><span style="color:var(--shiki-token-string);">:15m</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.16</span><span style="color:var(--shiki-token-string);">s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.05</span><span style="color:var(--shiki-token-string);">s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-bash</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">13</span><span style="color:var(--shiki-token-string);">:55</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.00</span><span style="color:var(--shiki-token-string);">s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.51</span><span style="color:var(--shiki-token-string);">s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">0.13</span><span style="color:var(--shiki-token-string);">s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">sshd:</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">sevenwate</span><span style="color:var(--shiki-color-text);"> [priv]</span></span></code></pre></div>
|
|||
|
<h3 id="id">Id<a aria-hidden="true" tabindex="-1" href="#id" class="internal"> §</a></h3>
|
|||
|
<p><code>id</code> 命令用于显示用户和用户组的标识信息。它可以用于查看当前用户或指定用户的 UID(用户标识符)、GID(组标识符)和所属用户组的名称。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">sevenwate@LinuxTest:~$</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">id</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">用户id</span><span style="color:var(--shiki-color-text);">=1000(sevenwate) 组id=1000(</span><span style="color:var(--shiki-token-function);">sevenwate</span><span style="color:var(--shiki-color-text);">) 组=1000(</span><span style="color:var(--shiki-token-function);">sevenwate</span><span style="color:var(--shiki-color-text);">),24(</span><span style="color:var(--shiki-token-function);">cdrom</span><span style="color:var(--shiki-color-text);">),25(</span><span style="color:var(--shiki-token-function);">floppy</span><span style="color:var(--shiki-color-text);">),27(</span><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);">),29(</span><span style="color:var(--shiki-token-function);">audio</span><span style="color:var(--shiki-color-text);">),30(</span><span style="color:var(--shiki-token-function);">dip</span><span style="color:var(--shiki-color-text);">),44(</span><span style="color:var(--shiki-token-function);">video</span><span style="color:var(--shiki-color-text);">),46(</span><span style="color:var(--shiki-token-function);">plugdev</span><span style="color:var(--shiki-color-text);">),108(</span><span style="color:var(--shiki-token-function);">netdev</span><span style="color:var(--shiki-color-text);">),1001(</span><span style="color:var(--shiki-token-function);">grpdemo</span><span style="color:var(--shiki-color-text);">)</span></span></code></pre></div>
|
|||
|
<h3 id="whoami">Whoami<a aria-hidden="true" tabindex="-1" href="#whoami" class="internal"> §</a></h3>
|
|||
|
<p><code>whoami</code> 命令用于显示当前登录用户的用户名。它是一个非常简单的命令,通常用于 shell 脚本和命令行中,以便在需要当前用户的用户名时快速获取它。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">sevenwate@LinuxTest:~$</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">whoami</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwate</span></span></code></pre></div>
|
|||
|
<h3 id="last">Last<a aria-hidden="true" tabindex="-1" href="#last" class="internal"> §</a></h3>
|
|||
|
<p><code>last</code> 命令在 Linux 中用于显示系统的登录记录。这个命令列出了系统登录和启动的详细信息,如登录用户、登录的 IP 地址、登录时间以及登录持续的时间。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">last</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Wed</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">31</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">13</span><span style="color:var(--shiki-token-string);">:55</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">still</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">logged</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">in</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/1</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Wed</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">31</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">11</span><span style="color:var(--shiki-token-string);">:07</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">11</span><span style="color:var(--shiki-token-string);">:21</span><span style="color:var(--shiki-color-text);"> (00:14)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Wed</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">31</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">11</span><span style="color:var(--shiki-token-string);">:07</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">13</span><span style="color:var(--shiki-token-string);">:00</span><span style="color:var(--shiki-color-text);"> (01:53)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Wed</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">31</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">10</span><span style="color:var(--shiki-token-string);">:55</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">11</span><span style="color:var(--shiki-token-string);">:04</span><span style="color:var(--shiki-color-text);"> (00:09)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Wed</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">31</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">10</span><span style="color:var(--shiki-token-string);">:49</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">10</span><span style="color:var(--shiki-token-string);">:51</span><span style="color:var(--shiki-color-text);"> (00:02)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">17</span><span style="color:var(--shiki-token-string);">:03</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">17</span><span style="color:var(--shiki-token-string);">:35</span><span style="color:var(--shiki-color-text);"> (00:32)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:03</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:53</span><span style="color:var(--shiki-color-text);"> (00:50)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/2</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:02</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:02</span><span style="color:var(--shiki-color-text);"> (00:00)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/1</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:02</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:02</span><span style="color:var(--shiki-color-text);"> (00:00)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:02</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:02</span><span style="color:var(--shiki-color-text);"> (00:00)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">tty1</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:01</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">still</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">logged</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">in</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">reboot</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">system</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">boot</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">5.10</span><span style="color:var(--shiki-token-string);">.0-23-amd64</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:00</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">still</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">running</span></span>
|
|||
|
<span data-line> </span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">wtmp</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">begins</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">Tue</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">May</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">30</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">16</span><span style="color:var(--shiki-token-string);">:00:47</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">2023</span></span></code></pre></div>
|
|||
|
<h3 id="lastlog">Lastlog<a aria-hidden="true" tabindex="-1" href="#lastlog" class="internal"> §</a></h3>
|
|||
|
<p><code>lastlog</code> 命令用于查看所有用户最后一次登录的时间和登录的终端。这个命令检查 <code>/var/log/lastlog</code> 文件以确定每个用户的最后一次登录信息。此命令的输出包含用户名、最后登录的端口和最后登录的时间。</p>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">lastlog</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">用户名</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">端口</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">来自</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">最后登录时间</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">root</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">**从未登录过**</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">……</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">sevenwate</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">pts/0</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">172.17</span><span style="color:var(--shiki-token-string);">.0.100</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">三</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">5</span><span style="color:var(--shiki-token-string);">月</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">31</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">13</span><span style="color:var(--shiki-token-string);">:55:15</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">+0800</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-constant);">2023</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">newuser</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">**从未登录过**</span></span></code></pre></div>
|
|||
|
<h2 id="实例">实例<a aria-hidden="true" tabindex="-1" href="#实例" class="internal"> §</a></h2>
|
|||
|
<pre><code class="mermaid">graph LR
|
|||
|
SwitchToRoot[切换到 root 用户]
|
|||
|
SwitchToRoot --> CreateUser[创建新用户]
|
|||
|
CreateUser --> SetPassword[设置新用户的密码]
|
|||
|
SetPassword --> ChangeUserInfo{更新新用户信息?}
|
|||
|
ChangeUserInfo -- Yes --> RunChfn[chfn]
|
|||
|
ChangeUserInfo -- No --> AssignHomeDir{指定用户目录?}
|
|||
|
RunChfn --> AssignHomeDir
|
|||
|
AssignHomeDir -- Yes --> RunUseraddWithD[useradd -d]
|
|||
|
AssignHomeDir -- No --> SetLoginShell{指定登录 shell?}
|
|||
|
RunUseraddWithD --> SetLoginShell
|
|||
|
SetLoginShell -- Yes --> RunUseraddWithS[useradd -s]
|
|||
|
SetLoginShell -- No --> AddToExtraGroups{添加到额外的组?}
|
|||
|
RunUseraddWithS --> AddToExtraGroups
|
|||
|
AddToExtraGroups -- Yes --> RunUsermod[usermod -aG]
|
|||
|
AddToExtraGroups -- No --> End(结束)
|
|||
|
RunUsermod --> End
|
|||
|
</code></pre>
|
|||
|
<ol>
|
|||
|
<li><strong>打开终端</strong>:快捷键 Ctrl+Alt+T 打开终端。</li>
|
|||
|
<li><strong>切换到 root 用户</strong>:使用 <code>su -</code> 命令切换到 root 用户。</li>
|
|||
|
<li><strong>使用 useradd 命令创建新用户</strong>:使用 <code>useradd</code> 命令和新用户的用户名来创建新用户。例如创建一个名为 <code>newuser</code> 的新用户:</li>
|
|||
|
</ol>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">useradd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span></code></pre></div>
|
|||
|
<ol>
|
|||
|
<li><strong>设置新用户的密码</strong>:使用 <code>passwd</code> 命令和新用户的用户名来设置密码。</li>
|
|||
|
</ol>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">passwd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">新的</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">密码:</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">重新输入新的</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">密码:</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">passwd:已成功更新密码</span></span></code></pre></div>
|
|||
|
<ol>
|
|||
|
<li><strong>更改新用户的信息</strong>(可选):可以使用 <code>chfn</code> 命令更改新用户的全名、房间号、工作电话和家庭电话。</li>
|
|||
|
</ol>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">chfn</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">正在改变</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">的用户信息</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">请输入新值,或直接敲回车键以使用默认值</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">全名</span><span style="color:var(--shiki-color-text);"> []: newuser</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">房间号码</span><span style="color:var(--shiki-color-text);"> []: 888</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">工作电话</span><span style="color:var(--shiki-color-text);"> []: 18688888888</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">家庭电话</span><span style="color:var(--shiki-color-text);"> []: 0371</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">其它</span><span style="color:var(--shiki-color-text);"> []: </span></span></code></pre></div>
|
|||
|
<ol>
|
|||
|
<li><strong>给新用户分配家目录</strong>(可选):默认情况下 <code>useradd</code> 命令会为新用户创建一个在 <code>/home</code> 下的家目录。<code>usermod</code> 可以使用 <code>-d</code> 选项为新用户指定一个不同的家目录。例如,指定 <code>newuser</code> 的家目录是 <code>/opt/newuser</code>:</li>
|
|||
|
</ol>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">usermod</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-d</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">/opt/newuser</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-m</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span></code></pre></div>
|
|||
|
<ol>
|
|||
|
<li><strong>指定不同的登录 shell</strong>(可选):<code>usermod</code> 可以使用 <code>-s</code> 选项指定一个不同的登录 shell。例如为 <code>newuser</code> 指定 <code>/bin/sbin/noligin</code> 作为登录 shell,你可以运行:</li>
|
|||
|
</ol>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-comment);"># 使用 usermod 命令</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">usermod</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">/usr/bin/nologin</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 使用 chsh 命令</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">chsh</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-s</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">/bin/bash</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span></code></pre></div>
|
|||
|
<ol>
|
|||
|
<li><strong>将新用户添加到一个或多个额外的组</strong>(可选):可以使用 <code>usermod</code> 命令的 <code>-G</code> 选项将新用户添加到一个或多个额外的组。例如将 <code>newuser</code> 添加到 <code>sudo</code> 和 <code>users</code> 组,你可以运行:</li>
|
|||
|
</ol>
|
|||
|
<div data-rehype-pretty-code-fragment><pre style="background-color:var(--shiki-color-background);" tabindex="0" data-language="shell" data-theme="default"><code data-language="shell" data-theme="default"><span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">usermod</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">-aG</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">sudo,users</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">id</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">用户id</span><span style="color:var(--shiki-color-text);">=1003(newuser) 组id=1003(</span><span style="color:var(--shiki-token-function);">newuser</span><span style="color:var(--shiki-color-text);">) 组=1003(</span><span style="color:var(--shiki-token-function);">newuser</span><span style="color:var(--shiki-color-text);">),27(</span><span style="color:var(--shiki-token-function);">sudo</span><span style="color:var(--shiki-color-text);">),100(</span><span style="color:var(--shiki-token-function);">users</span><span style="color:var(--shiki-color-text);">)</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-comment);"># 用户最终信息</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">root@LinuxTest:~#</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">cat</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">/etc/passwd</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-keyword);">|</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-function);">grep</span><span style="color:var(--shiki-color-text);"> </span><span style="color:var(--shiki-token-string);">newuser</span></span>
|
|||
|
<span data-line><span style="color:var(--shiki-token-function);">newuser:x:1003:1003:newuser,888-1,18688888888,0371-88888888:/opt/newuser2:/usr/bin/nologin</span></span></code></pre></div></article></div><div class="right sidebar"><div class="graph "><h3>Graph View</h3><div class="graph-outer"><div id="graph-container" data-cfg="{"drag":true,"zoom":true,"depth":1,"scale":1.1,"repelForce":0.5,"centerForce":0.3,"linkDistance":30,"fontSize":0.6,"opacityScale":1,"showTags":true,"removeTags":[]}"></div><svg version="1.1" id="global-graph-icon" xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 55 55" fill="currentColor" xmlSpace="preserve"><path d="M49,0c-3.309,0-6,2.691-6,6c0,1.035,0.263,2.009,0.726,2.86l-9.829,9.829C32.542,17.634,30.846,17,29,17
|
|||
|
s-3.542,0.634-4.898,1.688l-7.669-7.669C16.785,10.424,17,9.74,17,9c0-2.206-1.794-4-4-4S9,6.794,9,9s1.794,4,4,4
|
|||
|
c0.74,0,1.424-0.215,2.019-0.567l7.669,7.669C21.634,21.458,21,23.154,21,25s0.634,3.542,1.688,4.897L10.024,42.562
|
|||
|
C8.958,41.595,7.549,41,6,41c-3.309,0-6,2.691-6,6s2.691,6,6,6s6-2.691,6-6c0-1.035-0.263-2.009-0.726-2.86l12.829-12.829
|
|||
|
c1.106,0.86,2.44,1.436,3.898,1.619v10.16c-2.833,0.478-5,2.942-5,5.91c0,3.309,2.691,6,6,6s6-2.691,6-6c0-2.967-2.167-5.431-5-5.91
|
|||
|
v-10.16c1.458-0.183,2.792-0.759,3.898-1.619l7.669,7.669C41.215,39.576,41,40.26,41,41c0,2.206,1.794,4,4,4s4-1.794,4-4
|
|||
|
s-1.794-4-4-4c-0.74,0-1.424,0.215-2.019,0.567l-7.669-7.669C36.366,28.542,37,26.846,37,25s-0.634-3.542-1.688-4.897l9.665-9.665
|
|||
|
C46.042,11.405,47.451,12,49,12c3.309,0,6-2.691,6-6S52.309,0,49,0z M11,9c0-1.103,0.897-2,2-2s2,0.897,2,2s-0.897,2-2,2
|
|||
|
S11,10.103,11,9z M6,51c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S8.206,51,6,51z M33,49c0,2.206-1.794,4-4,4s-4-1.794-4-4
|
|||
|
s1.794-4,4-4S33,46.794,33,49z M29,31c-3.309,0-6-2.691-6-6s2.691-6,6-6s6,2.691,6,6S32.309,31,29,31z M47,41c0,1.103-0.897,2-2,2
|
|||
|
s-2-0.897-2-2s0.897-2,2-2S47,39.897,47,41z M49,10c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S51.206,10,49,10z"></path></svg></div><div id="global-graph-outer"><div id="global-graph-container" data-cfg="{"drag":true,"zoom":true,"depth":-1,"scale":0.9,"repelForce":0.5,"centerForce":0.3,"linkDistance":30,"fontSize":0.6,"opacityScale":1,"showTags":true,"removeTags":[]}"></div></div></div><div class="toc desktop-only"><button type="button" id="toc" class><h3>Table of Contents</h3><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="toc-content"><ul class="overflow"><li class="depth-0"><a href="#概述" data-for="概述">概述</a></li><li class="depth-0"><a href="#用户" data-for="用户">用户</a></li><li class="depth-1"><a href="#创建" data-for="创建">创建</a></li><li class="depth-1"><a href="#管理" data-for="管理">管理</a></li><li class="depth-1"><a href="#删除" data-for="删除">删除</a></li><li class="depth-0"><a href="#用户组" data-for="用户组">用户组</a></li><li class="depth-1"><a href="#创建-1" data-for="创建-1">创建</a></li><li class="depth-1"><a href="#管理-1" data-for="管理-1">管理</a></li><li class="depth-1"><a href="#删除-1" data-for="删除-1">删除</a></li><li class="depth-0"><a href="#root-超级用户" data-for="root-超级用户">Root 超级用户</a></li><li class="depth-1"><a href="#su" data-for="su">Su</a></li><li class="depth-1"><a href="#sudo" data-for="sudo">Sudo</a></li><li class="depth-1"><a href="#newusers" data-for="newusers">Newusers</a></li><li class="depth-1"><a href="#chpasswd" data-for="chpasswd">Chpasswd</a></li><li class="depth-1"><a href="#pwckgrpck" data-for="pwckgrpck">pwck、grpck</a></li><li class="depth-1"><a href="#pwconvpwunconvgrpconvgrpunconv" data-for="pwconvpwunconvgrpconvgrpunconv">pwconv、pwunconv、grpconv、grpunconv</a></li><li class="depth-0"><a href="#其他" data-for="其他">其他</a></li><li class="depth-1"><a href="#w" data-for="w">W</a></li><li class="depth-1"><a href="#id" data-for="id">Id</a></li><li class="depth-1"><a href="#whoami" data-for="whoami">Whoami</a></li><li class="depth-1"><a href="#last" data-for="last">Last</a></li><li class="depth-1"><a href="#lastlog" data-for="lastlog">Lastlog</a></li><li class="depth-0"><a href="#实例" data-for="实例">实例</a></li></ul></div></div><div class="backlinks "><h3>Backlinks</h3><ul class="overflow"><li>No backlinks found</li></ul></div><div class="explorer mobile-only"><button type="button" id="explorer" data-behavior="collapse" data-collapsed="collapsed" data-savestate="true" data-tree="[{"path":"Basics","collapsed":true},{"path":"Basics/english","collapsed":true},{"path":"Blog","collapsed":true},{"path":"Book","collapsed":true},{"path":"Book/个人成长","collapsed":true},{"path":"Book/医学健康","collapsed":true},{"path":"Book/历史","collapsed":true},{"path":"Book/哲学宗教","collapsed":true},{"path":"Book/心理","collapsed":true},{"path":"Book/政治军事","collapsed":true},{"path":"Book/教育学习","collapsed":true},{"path":"Book/文学","collapsed":true},{"path":"Book/生活百科","collapsed":true},{"path":"Book/社会文化","collapsed":true},{"path":"Book/科学技术","collapsed":true},{"path":"Book/经济理财","collapsed":true},{"path":"Book/
|
|||
|
function toggleCallout() {
|
|||
|
const outerBlock = this.parentElement;
|
|||
|
outerBlock.classList.toggle(`is-collapsed`);
|
|||
|
const collapsed = outerBlock.classList.contains(`is-collapsed`);
|
|||
|
const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight;
|
|||
|
outerBlock.style.maxHeight = height + `px`;
|
|||
|
let current = outerBlock;
|
|||
|
let parent = outerBlock.parentElement;
|
|||
|
while (parent) {
|
|||
|
if (!parent.classList.contains(`callout`)) {
|
|||
|
return;
|
|||
|
}
|
|||
|
const collapsed2 = parent.classList.contains(`is-collapsed`);
|
|||
|
const height2 = collapsed2 ? parent.scrollHeight : parent.scrollHeight + current.scrollHeight;
|
|||
|
parent.style.maxHeight = height2 + `px`;
|
|||
|
current = parent;
|
|||
|
parent = parent.parentElement;
|
|||
|
}
|
|||
|
}
|
|||
|
function setupCallout() {
|
|||
|
const collapsible = document.getElementsByClassName(
|
|||
|
`callout is-collapsible`
|
|||
|
);
|
|||
|
for (const div of collapsible) {
|
|||
|
const title = div.firstElementChild;
|
|||
|
if (title) {
|
|||
|
title.removeEventListener(`click`, toggleCallout);
|
|||
|
title.addEventListener(`click`, toggleCallout);
|
|||
|
const collapsed = div.classList.contains(`is-collapsed`);
|
|||
|
const height = collapsed ? title.scrollHeight : div.scrollHeight;
|
|||
|
div.style.maxHeight = height + `px`;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
document.addEventListener(`nav`, setupCallout);
|
|||
|
window.addEventListener(`resize`, setupCallout);
|
|||
|
</script><script type="module">
|
|||
|
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
|
|||
|
const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark'
|
|||
|
mermaid.initialize({
|
|||
|
startOnLoad: false,
|
|||
|
securityLevel: 'loose',
|
|||
|
theme: darkMode ? 'dark' : 'default'
|
|||
|
});
|
|||
|
document.addEventListener('nav', async () => {
|
|||
|
await mermaid.run({
|
|||
|
querySelector: '.mermaid'
|
|||
|
})
|
|||
|
});
|
|||
|
</script><script src="https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/copy-tex.min.js" type="application/javascript"></script><script src="../../../../postscript.js" type="module"></script></html>
|