Ubuntu系统下的用户管理

Ubuntu系统下的用户管理

  • 一、ubuntu介绍
    • 1.1 ubuntu简介
    • 1.2 主要特点
  • 二、创建新用户
    • 2.1 查看当前Ubuntu版本
    • 2.2 创建新用户
    • 2.3 修改密码
    • 2.4 查看用户id
  • 三、新建用户组
    • 3.1 新建用户组
    • 3.2 查询用户组
    • 3.3 加入某个用户组
  • 四、赋予sudo权限
    • 4.1 将用户添加到 sudo 组
    • 4.2 查看admin用户的用户组
    • 4.3 切换admin用户登录
  • 五、查看passwd文件
  • 六、总结

在这里插入图片描述

一、ubuntu介绍

1.1 ubuntu简介

Ubuntu 是一个基于 Debian 的开源 Linux 操作系统,由 Canonical Ltd. 公司及其全球社区共同开发和维护。自 2004 年首次发布以来,Ubuntu 已经成为最受欢迎的 Linux 发行版之一,被广泛应用于个人电脑、服务器以及云计算等领域。

1.2 主要特点

  • 易用性:Ubuntu 设计为对新手用户友好,提供图形化安装界面和直观的桌面环境(默认使用 GNOME 桌面环境),使得即使是第一次接触 Linux 的用户也能快速上手。
  • 免费且开源:遵循自由软件和开源的原则,Ubuntu 及其所有组件都是免费提供的,并且源代码开放给公众查阅和修改。
  • 定期更新与支持:Ubuntu 有规律地每六个月发布一次新版本,每个版本都提供至少九个月的支持。长期支持(LTS)版本则每隔两年发布一次,提供长达五年的安全更新和技术支持。
  • 庞大的软件库:通过 APT 包管理系统,用户可以方便地访问成千上万种软件包,涵盖了从办公软件到游戏娱乐的各种应用。
  • 社区支持:Ubuntu 拥有一个活跃的国际社区,成员们不仅贡献代码,也帮助解答其他用户的问题,促进了知识共享和技术交流。

二、创建新用户

2.1 查看当前Ubuntu版本

查看Ubuntu系统版本,当前版本为22.04.1 LTS

root@jeven01:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

2.2 创建新用户

使用 adduser 命令来创建一个新的用户。这个命令会询问一些信息,如用户的密码、全名等。

adduser admin

在这里插入图片描述

2.3 修改密码

可以使用passwd命令修改新建用户admin的密码

root@jeven01:~# passwd admin
New password:
Retype new password:
passwd: password updated successfully

2.4 查看用户id

使用以下命令,查看admin用户的id信息。

root@jeven01:~# id admin
uid=1001(admin) gid=1001(admin) groups=1001(admin)

三、新建用户组

3.1 新建用户组

使用addgroup命令,新建IT用户组。

root@jeven01:~# addgroup it
Adding group `it' (GID 1002) ...
Done.

3.2 查询用户组

  • 查看系统所有用户组
root@jeven01:~# getent group |head
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,jeven
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
  • group_name 是用户组的名字。
  • password 通常是占位符 x 或者空的,因为现代 Linux 系统通常将密码存储在影子文件中。
  • GID 是用户组的 ID。
  • user_list 列出了属于该组的所有用户,用逗号分隔。
  • 查询个特定用户的所属组
root@jeven01:~# groups admin
admin : admin

3.3 加入某个用户组

  • 加入IT用户组
usermod -aG it admin
  • 查询admin用户的所属用户组
root@jeven01:~# groups admin
admin : admin it
  • 新建用户时加入用户组
useradd -m -G it zhangsan

四、赋予sudo权限

4.1 将用户添加到 sudo 组

. 将admin用户添加到 sudo 组

usermod -aG sudo admin

4.2 查看admin用户的用户组

验证用户是否已成功添加到 sudo 组

root@jeven01:~# groups admin
admin : admin sudo it

4.3 切换admin用户登录

  • 切换admin用户登录
root@jeven01:~# su - admin
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

admin@jeven01:~$

执行以下命令,如果一切正常,命令应该返回 root,并且可能会提示输入用户的密码。

admin@jeven01:~$ sudo whoami
root

五、查看passwd文件

  • 查看/etc/passwd密码文件
admin@jeven01:~$ cat /etc/passwd |head
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

/etc/passwd 文件中的每一行代表一个用户,并且每行由七个字段组成,这些字段用冒号(:)分隔。

  • /etc/passwd 文件字段解释
字段编号字段名称说明
1用户名用户的登录名。
2密码占位符实际密码存储在 /etc/shadow 文件中,这里通常是一个 x
3用户 ID (UID)每个用户的唯一标识符。root 用户的 UID 是 0。
4组 ID (GID)用户的主要组 ID。
5用户信息通常是用户的全名或描述信息。
6主目录用户登录时的初始工作目录。
7登录 shell用户登录时使用的 shell,默认通常是 /bin/bash

六、总结

  • 使用 sudo 而不是直接以 root 用户身份进行操作:尽量使用 sudo 来执行需要超级用户权限的命令,以减少安全风险。
  • 定期审查用户和组:定期检查 /etc/passwd/etc/group 文件,确保所有用户和组都是必要的,并删除不再需要的账户。
  • 设置强密码策略:确保所有用户都设置了强密码,并启用密码复杂性和过期策略。
  • 禁用不必要的系统账户:禁用或删除不需要的系统账户(如 daemonbin 等),并确保它们没有登录权限。
  • 限制 sudo 权限:仅授予真正需要 sudo 权限的用户,并根据最小权限原则配置具体的 sudo 规则。
  • 使用 visudo 编辑 /etc/sudoers 文件:使用 visudo 命令编辑 /etc/sudoers 文件,以防止语法错误导致系统无法使用 sudo
  • 备份重要文件:在进行任何用户管理操作之前,备份重要的配置文件如 /etc/passwd/etc/shadow/etc/sudoers
  • 记录和审计用户活动:启用日志记录并定期检查日志文件,以便跟踪用户的活动,特别是 sudo 命令的使用情况。
  • 使用 PAM 模块增强安全性:利用 Pluggable Authentication Modules (PAM) 模块来增强认证机制,例如启用双因素认证。
  • 更新和打补丁:定期更新系统和相关软件包,以修复已知的安全漏洞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/890976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NFTScan | 10.07~10.13 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2024.10.07~ 2024.10.13 NFT Hot News ​01/ 数据&#xff1a;9 月份加密市场大多数指标均出现下降&#xff0c;链上总交易量下降 13% 10 月 7 日&#xff0c;据 The Block 研究总监 la…

【C#网络编程】基础概念2

文章目录 网络、数据包和协议网络数据包协议TCP、UDP 地址客户端和服务器套接字 网络、数据包和协议 计算机网络通过通信通道互连的机器组成&#xff0c;通常把这些机器称为主机和路由器&#xff0c;主机是是运行应用程序&#xff08;如 Web 浏览器&#xff09;的计算机。路由器…

同三维T80001HK4 四路4K30HDMI H.264编码器

4路同时编码&#xff0c;带4路3.5外置音频 同三维T80001HK4四路4K30HDMI H.264编码器 同三维T80001HK4用于高清视频信号&#xff08;4K30Hz&#xff09;编码及网络传输的硬件设备&#xff0c;采用最新高效H.264高清数字视频压缩技术&#xff0c;具备稳定可靠、高清晰度、低码率…

CyberRt实践之Hello Apollo(Apollo 9.0版本)

apollo9.0环境安装参考官方网站 apollo.baidu.com/community/Apollo-Homepage-Document?docBYFxAcGcC4HpYIbgPYBtXIHQCMEEsATAV0wGNkBbWA5UyRFdZWVBEAU0hFgoIH0adPgCY%2BADwCiAVnEAhAILiAnABZxEgOzK1Y%2BQA51M3ROUnJBsbK2WZoyUdkBhcXoAMhlwDFlARnUXZdzE9AGY%2BbFINADYpUhCEFW…

JavaEE 多线程第二节 (多线程的简单实现Thread/Runable)

1. 创建线程&#xff08;继承 Thread 类&#xff09;步骤&#xff1a; 继承 Thread 类&#xff1a; 创建一个类并继承 Thread 类&#xff0c;然后重写 run() 方法&#xff0c;在该方法中写入线程执行的代码 class MyThread extends Thread {Overridepublic void run()…

SpringBoot 之 配置 RestTemplate + 跳过https 验证

上截图 目录文件结构 在配置文件下创建下面两个文件 文件内容 HttpsClientHttpRequestFactory.java package org.fri.config;import org.apache.http.ssl.SSLContexts; import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Configur…

重学SpringBoot3-安装Spring Boot CLI

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-安装Spring Boot CLI 1. 什么是 Spring Boot CLI&#xff1f;2. Spring Boot CLI 的安装2.1. 通过 SDKMAN! 安装2.2. 通过 Homebrew 安装&#xff08;适…

SpringCloud-OpenFeign-服务接口调用

是什么 把需要暴露的api使用接口来暴露&#xff0c;客户端需要调用的时候&#xff0c;直接查看这个接口中有没有就可以了 通用步骤 架构说明 common模块 common 引入 openfeign 新建服务接口类 FeignClient(value "cloud-payment-service") // 服务名 public i…

【C语言】动态内存管理及相关笔试题

文章目录 一、为什么有动态内存分配二、malloc和free1.malloc函数的使用2.free函数的使用 三、calloc和realloc1.calloc函数的使用2.realloc函数的使用 四、常见动态内存分配的错误五、动态内存经典笔试题题1题2题3 六、总结C/C中程序内存区域划分 一、为什么有动态内存分配 我…

SpringBoot基础(四):bean的多种加载方式

SpringBoot基础系列文章 SpringBoot基础(一)&#xff1a;快速入门 SpringBoot基础(二)&#xff1a;配置文件详解 SpringBoot基础(三)&#xff1a;Logback日志 SpringBoot基础(四)&#xff1a;bean的多种加载方式 目录 一、xml配置文件二、注解定义bean1、使用AnnotationCon…

SCRM呼叫中心高保真Axure原型 源文件分享

在数字化时代&#xff0c;客户关系管理&#xff08;CRM&#xff09;对于企业的成功至关重要。SCRM呼叫中心后台作为一款专为CRM设计的软件原型&#xff0c;致力于为企业提供高效、智能的客户沟通解决方案。本文将详细介绍该产品的核心功能及其对企业提升客户满意度和销售业绩的…

C++,STL 030(24.10.14)

stack容器&#xff08;栈&#xff09;的基本概念&#xff1a; 1.stack容器是一种先进后出的数据结构&#xff0c;它只有一个出口。 2.图例&#xff1a; 注意&#xff1a; (1)进栈顺序&#xff1a;a1 -> a2 -> a3 -> a4 -> a5 (2)出栈顺序&#xff1a;a5 -> …

机器学习-决策树详解

决策树 决策树简介 学习目标 1.理解决策树算法的基本思想 2.知道构建决策树的步骤 【理解】决策树例子 决策树算法是一种监督学习算法&#xff0c;英文是Decision tree。 决策树思想的来源非常朴素&#xff0c;试想每个人的大脑都有类似于if-else这样的逻辑判断&#xff…

12.1-基础柱状图构建

Python基础综合案例——数据可视化 动态柱状图 通过Bar构建基础柱状图 反转x和y轴 调用 bar.reversal_axis() 我们现在所看到的数值是从下到上的&#xff0c;当我们反转之后数据是从左向右的&#xff0c;我们现在把数据放到柱的右边。即数值标签在右侧 添加y轴数据的时候&am…

oceanbase的日志量太大,撑爆磁盘,修改下日志级别

oceanbase的日志量太大&#xff0c;撑爆磁盘&#xff0c;修改下日志级别&#xff1a; [adminlnpg ~]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123 Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221561020 Server version: O…

Android基于gradle task检查各个module之间资源文件冲突情况

做组件化开发的时候&#xff0c;我们经常会遇到各个不同的module之间资源文件冲突的问题&#xff0c;运行也不报错&#xff0c;但是会出现覆盖的问题&#xff0c;导致运行之后发送错误的效果。 所以我们需要利用一个gradlke 脚本task&#xff0c;来自动化检查资源文件冲突。 …

CST学习笔记(二)Floquet模式激励设置

CST学习笔记&#xff08;二&#xff09;Floquet模式激励设置 在CST中我们常常使用Floquet模式来仿真频率选择表面(FSS)或者超材料等&#xff0c;但是我们设置好Zmax的floquet模式数量后&#xff0c;启动仿真&#xff0c;会发现S参数一栏中有很多我们不想要看的S参数&#xff0…

OpenAI Canvas:提升编程与写作效率的全新工作界面

随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;不仅限于生成文本&#xff0c;还能逐步扩展至编程、设计等任务的支持。近期&#xff0c;OpenAI 推出了一个名为 Canvas 的全新功能&#xff0c;专门用于协助用户进行编程和写作。这一功能与 Claud…

【React】使用脚手架或Vite包两种方式创建react项目

1.使用脚手架搭建React项目&#xff1a; 在终端窗口运行如下命令即可&#xff1a; npx create-react-app react-basic(创建的文件目录) npx&#xff1a;Node.js工具命令&#xff0c;用于查找并执行后续的包命令。 2.使用Vite包创建React项目&#xff1a; 在终端窗口运行如…

【STM32 Blue Pill编程实例】-OLED显示DHT22传感器数据

OLED显示DHT22传感器数据 文章目录 OLED显示DHT22传感器数据1、DHT22介绍2、硬件准备与接线3、模块配置3.1 定时器配置3.2 DHT22引脚配置3.3 OLED配置4、代码实现在本文中,我们将介绍如何将 DHT22 温度和湿度传感器与 STM32 Blue Pill 开发板连接,并使用 HAL 库在 STM32CubeI…