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中的用户管理 的相关文章

  • 在 64 位 RHEL 上安装 32 位库 (glibc),而不使用 yum

    我试图让 32 位应用程序在 64 位 RHEL 6 1 上运行 但该计算机无法访问互联网 有没有办法在 64 位 RHEL 上安装 32 位 glibc 而不使用 yum 即仅使用 RPM 安装 我从 RHEL 6 1 ISO 中获取了
  • Symfony 权限被拒绝

    谁能帮我解决我收到的以下错误消息 我终于在虚拟机上安装了 Symfony 它似乎工作正常 除了我偶尔收到这样的消息 1 2 ContextErrorException Warning SessionHandler read open var
  • 如何在Linux下生成系统范围的唯一ID

    我正在使用多进程 Linux 系统 需要生成唯一的 ID 安全性不是考虑因素 因此 ID 生成器从零开始递增就可以了 而且它只是在本地计算机内 不涉及网络 显然 实现这一点并不难 但我只是想知道是否已经提供了任何东西 最好是轻量级的 这听起
  • 如何从存储在 char* 指针中的 name 调用 c 函数?

    我想通过函数的名称动态调用函数 例如 假设有以下函数和字符串 void do fork printf Fork called n char pFunc do fork 现在我需要打电话do fork 就在 pFunc 那么这可能吗 欢迎 C
  • IPC:在两个程序之间使用 C++ 中的命名管道

    我试图在同一台机器上运行的两个不同程序之间实现IPC 在我的例子中是CentOS7 为了实现一种松散耦合 我决定对 IPC 使用命名管道 因此 我正在使用以下示例并遇到了不同的问题 创建并写入管道 include
  • 如何在 Flutter 中创建类似 Telegram 或 WhatsApp 聊天页面的富文本输入?

    How can I create a Rich Text Input like a Telegram chat page without displaying reserved characters such as bold italic
  • python os.path.exists() 对于存在的 nfs 挂载目录文件失败

    我基本上有一个用于网站的网络服务器和另一个仅存储文件的网络服务器 文件服务器通过安装其目录之一连接到主服务器 该网站运行 Django 所以我主要处理 python 不管怎样 我似乎遇到了一些问题 文件被报告为不存在 即使它们实际上存在 基
  • 何时调用setsockopt?在bind()和connect()之前?

    我继承了一些 TCP 代码 调用 bind tcpSocket struct sockaddr server addr sizeof server addr 在致电之前 setsockopt tcpSocket SOL SOCKET SO
  • 为什么不使用 sshrc 中设置的 $PATH?

    我正在尝试在 OS X 服务器上通过 ssh 设置 svn 为了做到这一点 我读到我需要一个包装器来设置 umask 并 在我的例子中 设置存储库根 一种快速而肮脏的方法是重命名 usr bin svnserve并将包装器脚本放置在该位置
  • Linux 上共享内存的生命周期是多长

    我正在使用 ftok shmget shmat shmdt 函数在 Linux 上创建 写入和读取共享段 如果我写入一个程序中的段 然后退出 然后稍后从另一个程序中读取该段 我会惊讶地发现数据仍然存在 我预计当共享一个段的最后一个进程执行
  • 有人可以解释一下以下内存分配 C 程序的性能行为吗?

    在我的机器上 时间 A 和时间 B 交换取决于是否A是 定义或未定义 这会改变两个的顺序 callocs 被称为 我最初将此归因于寻呼系统 奇怪的是 当mmap被用来代替calloc 情况更加奇怪 两个循环花费的时间相同 正如预期的那样 作
  • Python select() 行为很奇怪

    我在理解 select select 的行为时遇到一些困难 请考虑以下 Python 程序 def str to hex s def dig n if n gt 9 return chr 65 10 n else return chr 48
  • 当我执行 pip --version 时,它显示错误为 ImportError:没有名为 pyparsing 的模块

    我尝试安装 卸载py解析以及它不起作用 我被这个问题困住了 我还必须安装额外的库 这是错误消息 Traceback most recent call last File usr bin pip line 5 in
  • 使用 sysfs 的 Linux 用户空间 GPIO 中断

    我想使用 sysfs 在用户空间上使用 GPIO 中断 我使用这些命令 root at91 gpio109 gt echo 109 gt export root at91 gpio109 gt cd gpio109 root at91 gp
  • 如何在多行而不是单行输出上打印 Linux 组名称

    我尝试过 getent group 命令 id Gn user 和一些 sed 组合 但我认为我无法实现 因此向其他程序员伸出援手 我希望能够打印此 groups abc123输出 abc123 devops 构建测试设计 预期输出 gro
  • ulimit -r 返回不同的值

    我将以下两行添加到系统范围的 etc security limits conf 中 soft rtprio 55 hard rtprio 55 系统重新启动后 根据我在计算机上访问用户帐户的方式 我会得到两个不同的结果 user clien
  • 无法声明接口:资源繁忙

    我正在使用 USB4Java 低级版本 并且基本上是根据这段代码工作的here http www mets blog com java usb communication usb4java 我在 Ubuntu 中工作 遇到了有关权限的问题
  • 在Linux服务器中安装ZLIB

    我要安装ZLIB http www techsww com tutorials libraries zlib installation installing zlib on ubuntu linux php在Linux服务器中 我的服务器帐
  • 共享库 RPATH 和二进制 RPATH 优先级

    如果共享库链接到二进制文件 并且共享库还依赖于其他库 则共享库的 RPATH 和二进制文件的 RPATH 的优先级 链接器搜索顺序 是什么 二进制文件的 RPATH 是否可以覆盖共享库中的 RPATH 我在共享库RPATH中设置的 ORIG
  • Linux 堆栈大小

    我正在寻找 Linux 内核中堆栈的良好描述 但我发现找到任何有用的东西出奇地困难 我知道大多数系统的堆栈限制为 4k 而其他系统则限制为 8k 我假设每个内核线程 下半部分都有自己的堆栈 我还听说 如果中断发生 它会使用当前线程的堆栈 但

随机推荐

  • 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中允许多个不同用户同时登录同一