Linux中的用户管理

2023-05-16

目录

  • 目录
  • 概述
  • 关于用户组的配置文件
  • 关于用户的配置文件
  • 用户和用户组的基本命令
    • 用户组操作
    • 用户操作
  • 用户和用户组的进阶命令
    • 主要组与附属组
  • 其他命令

概述

  使用操作系统的人,我们称之为用户。在Linux中允许多个不同用户同时登录同一个Linux系统并进行使用。而拥有相同系统权限的一组用户,称为一个用户组。下面将讲解一下用户或用户组相关的配置文件。

关于用户组的配置文件

  • /etc/group存储当前系统中所有用户组信息,如:
- Group:    x     : 123 :user1,user2,user3
- 组名称:组密码占位符:组编号:组中用户名列表
注意:
  组中用户名列表为空时,不代表当前组没有用户。在Linux中如果该组只有一个用户且用户名同组名一样时用户名在“组中用户名列表”中可以省略。
规定:
(1)root用户组的编号为0;
(2)1~499的编号是系统预留给安装在系统中的软件或服务的;
(3)用户创建的用户组的编号将会从500开始;
(4)组密码占位符都用x表示。(为什么呢?)
  • /etc/gshadow存储当前系统中用户组的密码信息,如:
- Group:  *  :       :user1,user2,user3
- 组名称:组密码:组管理者:组中用户名列表

其中:
(1)组密码为*或者!或者为空时,表示组密码为空(没有设置)。
(2)如果组管理者为空,表示该组没有管理者,该组中的用户均可管理该用户组。一般情况下都是空的。

关于用户的配置文件

  • /etc/passwd存储当前系统中所有用户的信息,如:
- user :   x    :  123  :   456  :   xxxx   :/home/user:/bin/bash
- 用户名:密码占位符:用户编号:用户组编号:用户注释信息: 用户主目录 :shell类型
  • /etc/shadow存储当前系统中所有用户的密码信息,如:
root:$6$zWv7m5tAJF3Q4LwC$R.4pdIC4vGBzqASdDUQU6IP3jHLWJEPwVrIqkKuGns9nVArbedRxC0ePprGVwjSlJNgsBfG35TiLdQzv8RPRw0:::::::
- 用户名:被加密的密码:……

用户和用户组的基本命令

用户组操作

  • groupadd 组名:添加一个新的用户组。如:
groupadd gg
  • groupadd -g 组编号 组名:添加一个新的用户组,并指定组编号。如:
groupadd -g 888 group8
  • groupmod -n 新的组名 旧的组名:修改用户组的名称。如:
groupmod -n gg1 gg
  • groupmod -g 新的组编号 组名:修改某个组的组编号。如:
groupmod -g 666 gg1
  • groupdel 组名:删除用户组。如:(当然,删除用户组之前,要求我们先删除该用户组中的所有用户,否则这些用户在后续的操作中将受到一些权限的影响。)
groupdel gg1

用户操作

  • useradd命令,将某个用户添加到某个用户组中。如:
useradd -g group1 user1 // 表示将用户user1添加到group1中,系统默认为该用户创建家目录为/home/用户名,这里为/home/user1。
useradd -d /home/mydocu user2 // 表示自动创建一个与用户名同名的用户组,且添加用户user2到组中,并指定该用户的家目录为/home/mydocu。
  • usermod -c 注释 用户名:为某个用户添加注释。如:
usermod -c "这是注释" user1
  • usermod -l 新的用户名称 旧的用户名称:修改某个用户的用户名称。如:
usermod -l newname user1
  • usermod -d home目录 用户名:修改某个用户的home目录。如:
usermod -d /home/newname newname
  • usermod -g 组名 用户名:切换用户到其他用户组。如:
usermod -g group2 user1
  • userdel 用户名:删除用户,但是不会删除该用户的home目录,如果需要的话,则需要加入-r的选项。如:
userdel user1
userdel -r user1
  • 暂时禁止普通用户登录服务器(除root用户外),操作如下:
touch /etc/nologin // 文件内容无关紧要

用户和用户组的进阶命令

  • passwd -l 用户名:锁定账号。
  • passwd -u 用户名:解锁账号。
  • passwd -d 用户名:清除某个用户的密码。

主要组与附属组

  用户可以同时属于多个组,其中一个主要组,多个附属组。

  • gpasswd -a 用户名 附属组名[,附属组名1,附属组名2,....]:给用户添加一个或多个附属组。
  • gpasswd -d 用户名 附属组名:将用户从某个附属组中删除。
  • newgrp 组名:临时切换附属组。(这时需要某个用户登录,进行组的切换操作。对于root用户而言,该意义没有什么意义。在切换时如果附属组设有组密码,则要求用户输入组密码。)
    (未完待续)
  • 此前添加用户时可以指定所属的用户组,那么可否也同时指定附属组呢?useradd -g 主要组名 -G 附属组[,附属组名1,附属组名2,....] 用户名
  • gpasswd 组名:设置组密码。

其他命令

  • su [用户名]:切换用户身份,不指定用户名时表示切换到root用户。切换到其他用户时需要目标用户的密码。
  • whoami:显示当前登录的用户名。
  • id 用户名:显示指定用户信息,包括用户编号、用户名;主要组编号及名称,附属组列表。
  • groups 用户名:显示某一用户所在的所有组。
  • chfn 用户名:设置用户资料,依次输入用户资料。
  • finger 用户名:显示用户详细资料。(这个命令可能找不到~)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux中的用户管理 的相关文章

  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4

随机推荐

  • Struts2框架自学之路——轻松入门

    目录 目录简介Struts2中的Action Action类的配置webxml中Struts2的过滤器 Struts2的核心配置文件 标签package 标签package的属性 标签action 标签action的属性 标签result
  • 重拾Hibernate框架——入门

    目录 目录Hibernate入门 第一个Hibernate程序 实现数据库操作 Hibernate配置文件详解 Hibernate映射配置文件Hibernate核心配置文件 Hibernate的核心API ConfigurationSess
  • 重拾Hibernate框架——实体类、主键生成策略、session绑定本地线程

    目录 目录实体类持久化类的编写规则Hibernate主键生成策略实体类操作 案例准备对实体类CRUD操作 添加操作查询操作修改操作删除操作saveOrUpdate方法 实体类对象状态Hibernate一级缓存Hibernate事务操作 规范
  • 重拾Hibernate框架——一对多关联

    目录 目录前言一对多映射配置 创建实体类让两个实体类之间相互表示配置映射关系配置核心配置文件Hibernate工具类 一对多关联操作 级联保存级联删除修改操作 inverse属性 前言 这里将以公司和员工为例 xff0c 其中公司与员工是一
  • Visual C++2010学习版详细安装教程

    获取该资源花了本人很长时间 xff0c 为了你们需要VC2010系列的编程软件更容易 xff0c 本人把我找到VC2010系列安装包放在了我的百度网盘分享 xff0c 该资源来之不易 xff0c 请广大朋友们好好珍惜 xff01 由于我换了
  • 重拾Hibernate框架——多对多关联

    目录 目录前言多对多映射配置 创建实体类让两个实体类之间相互表示配置映射关系配置核心配置文件Hibernate工具类 多对多关联操作 级联保存级联删除一般不使用 维护第三张表关系 前言 这里将以用户和角色为例 xff0c 其中用户与角色是多
  • 重拾Hibernate框架——查询操作

    目录 目录前言OID查询对象导航查询HQL查询 查询所有条件查询排序查询分页查询投影查询聚合函数的使用 QBC查询 查询所有条件查询 Restrictions类的常用方法 排序查询 Order类的常用方法 分页查询统计查询 Projecti
  • Struts2框架自学之路——结果页面的配置

    目录 目录Struts2中结果页面的配置 全局结果页面局部结果页面result标签的type属性 Struts2中结果页面的配置 在struts xml核心配置文件中 xff0c 我们可以配置Action类的URL访问路径 xff0c 以及
  • Struts2框架自学之路——Action获取表单数据的方式以及表单数据的封装

    目录 目录Action获取表单数据的方式 通过ActionContext类获取使用ServletActionContext类获取通过特定接口访问在Action中操作域对象 Action中原始方式封装表单数据Struts2中表单数据的封装 属
  • Struts2框架自学之路——值栈

    目录 目录Servlet和Action的区别什么是值栈获取值栈对象值栈的内部结构向值栈存放数据 向值栈存放对象向值栈存放List集合 从值栈获取数据 获取字符串获取对象获取List集合其他操作 EL表达式获取值栈数据 Servlet和Act
  • Struts2框架自学之路——拦截器

    目录 目录Struts2拦截器概述重要知识点自定义拦截器 拦截器的结构自定义登录拦截器 创建登录访问的首页登录页面以及登录操作添加登录拦截器功能 Struts2拦截器概述 Struts2框架封装了很多功能 xff0c 而这些功能大多在拦截器
  • Linux简介及系统安装

    目录 目录Linux简介 Linux的应用Linux与Windows的不同字符界面的优势 Linux系统安装 VMware简介虚拟机的新建与设置注意点Linux的系统分区安装Linux系统Linux系统的安装日志 Linux简介 Linux
  • Linux常用命令

    目录 目录命令基本格式文件处理命令 目录或文件处理Linux中常见目录链接命令 搜索命令 文件搜索命令命令搜索命令字符串搜索命令find命令与grep命令的区别 帮助命令压缩与解压缩命令关机和重启命令其他常用命令 挂载命令用户登录查看和用户
  • 对php-fpm的理解重述

    目录 目录CGI的出现FastCGIphp fpm摘录 FPM的请求处理流程nginx转发请求给FPM 参考 CGI的出现 早期的Web服务器只能处理HTML等静态文件 xff0c 随着PHP等动态语言的出现 xff0c Web Serve
  • Shell编程——基础入门

    目录 目录Shell概述 Shell是什么Shell的分类 脚本执行方式 echo输出命令第一个脚本 Bash的基本功能 命令别名与快捷键历史命令 history命令历史命令的调用命令与文件补全 输入输出重定向 输出重定向输入重定向 多命令
  • Linux命令之<cp命令>

    cp命令用来复制文件或者目录 xff0c 是Linux系统中最常用的命令之一 一般情况下 xff0c shell会设置一个别名 xff0c 在命令行下复制文件时 xff0c 如果目标文件已经存在 xff0c 就会询问是否覆盖 xff0c 不
  • PHPer的进阶探索之旅

    目录 目录前言魔术常量PHP常量详解define和const的区别PHP中的闭包PSR 规范PHP命令空间Web性能优化与HTTP2 前言 作为一个PHPer xff0c 一直认为Java与PHP都 差不多 xff0c 尽管身边的人会说大型
  • Linux下的VIM编辑器

    目录 目录VIM编辑器的概述VIM编辑器的操作模式vim命令的使用操作模式的命令 底行模式的常用指令命令模式的常用指令VIM键位指令图 VIM编辑器的概述 VIM其实VI编辑器的升级版本 VIM相对于VI xff0c 增强的功能 xff1a
  • Linux中的磁盘管理

    目录 目录磁盘管理命令向服务器添加硬盘磁盘分区 分区模式之MBR分区分区模式之GPT分区 分区操作 Linux中的MBR分区Linux中的GPT分区 分区格式化操作挂载分区Linux中的swap分区 磁盘管理命令 xff08 1 xff09
  • Linux中的用户管理

    目录 目录概述关于用户组的配置文件关于用户的配置文件用户和用户组的基本命令 用户组操作用户操作 用户和用户组的进阶命令 主要组与附属组 其他命令 概述 使用操作系统的人 xff0c 我们称之为用户 在Linux中允许多个不同用户同时登录同一