热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

03_linux用户和用户组管理

用户和用户组管理1概述Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方

用户和用户组管理

1 概述

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;

另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:



  • 用户账号的添加、删除与修改。

  • 用户口令的管理。

  • 用户组的管理

概念说明:



  • UID :每一个用户都会有一个对应的UID, 该UID在系统捏是唯一存在的

  • GID :每个用户在创建的时候都会默认为这个用户创建一个用户组(主组),每个用户组都对对应一个GID, 用户必须属于一个且只有一个主组。主组之外的组属于用户的附加组


特别说明: 一个用户只有一个主组,但可以属于0个或者多个附加组


配置文件:

/etc/passwd # 存储用户关键信息的文件
/etc/shadow # 存储用户密码信息的文件
/etc/group # 存储用户组关键信息的文件

2 用户管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。


2.1 创建用户(useradd)

# 语法
$ useradd 选项 用户名

参数项:















































序号参数说明
1-ccomment 指定一段注释性描述
2-d指定一个目录成为用户的家目录(必须使用绝对路径), 默认会创建一个和用户名相同的家目录
如果此目录不存在,则同时使用-m选项,可以创建主目录
3-g用户组 指定用户所属的用户组,不指定用户组则会默认创建一个和用户名相同的用户组
4-G用户组,用户组 指定用户所属的附加组
5-u后面指定UID, 指定一个特定的UID给新建的账号
6-M强制不创建用户家目录
7-sShell文件 指定用户的登录Shell

示例:

# 创建用户
$ useradd -d /home/sam -m sam
# 查看用户家目录
$ ls /home/sam
examples.desktop

2.2 删除帐号(userdel)

如果一个用户的账号不再使用,可以从系统中删除。

删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

删除一个已有的用户账号使用userdel命令,其格式如下:

userdel 选项 用户名

常用的选项是 -r,它的作用是把用户的主目录一起删除。

例如:

# 删除用户
$ userdel -r sam
# 查看删除的用户家目录
$ ls /home/sam
ls: 无法访问'/home/sam': 没有那个文件或目录 # 说明该用户已被删除

此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录


2.3 修改用户(usermod)

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:

$ usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

另外,有些系统可以使用选项:



  • -l 新用户名

  • -u 修改用户id

  • -g 修改用户的用户组id

  • -G 修改用户附组的组id

这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

例如:

$ usermod -s /bin/ksh -d /home/z –g developer sam

此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer


2.4 设置密码(passwd)


linux系统不允许内有密码的账户登录系统,刚创建的用户会处于锁定状态,因此需要给用户设置一个密码,该用户才可以登录到系统中去。


语法格式:

$ passwd 选项 用户名

可使用的选项:



  • -l 锁定口令,即禁用账号。

  • -u 口令解锁。

  • -d 使账号无口令。

  • -f 强迫用户下次登录时修改口令。

锁定用户:

# 用户sam 不能登录系统
$ passwd -l sam

删除密码:

# 执行该指令, 用户密码将会被删除,用户将无法登录到系统
$ passwd -d sam

修改当前用户密码:

$ passwd
更改 gll 的密码。
(当前)UNIX 密码:
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码

修改指定用户的密码:

# 输入两次密码即可
$ passwd sam
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码

文件/etc/shadow 与密码相关的文件:

$ cat /etc/shadow | grep "gll"
gll:$6$vAiekYK/$dh6LYp2b/t.37vG57CBZ.KOEBwTTf/ptZMk9.yktX4vUYyQ/wofkYQQHjTKdJSzqslsOymgMHCYtSoHC.Niz/.:19076:0:99999:7:::

3 组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。

不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新


3.1 用户组添加(groupadd)

格式:

$ groupadd 选项 用户组

选项:



  • -g GID 指定新用户组的组标识号(GID)。

  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

示例:

# 不指定组id, 系统会默认添加一个gid, 新组的组标识号是在当前已有的最大组标识号的基础上加1
$ groupadd group1
# 指定gid
$ groupadd -g 101 groupadd

3.2 用户组修改(groupmod)

格式:

groupmod 选项 用户组

常用的选项有:



  • -g GID 为用户组指定新的组标识号。

  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

  • -n 新用户组 将用户组的名字改为新名字

示例:

# 查看最后一行组信息
$ tail -1 /etc/group
sam:x:1001:
# 修改组id
$ groupmod -g 1002 sam
$ tail -1 /etc/group
sam:x:1002:

示例2:

# 查看最后一行组信息
$ tail -1 /etc/group
sam:x:1002:
# 修改组id为1003, 组名为nsam
$ groupmod -g 1003 -n nsam sam
$ tail -1 /etc/group
nsam:x:1003:

3.3 用户组删除(groupdel)

格式:

$ groupdel 用户组

示例:

# 此命令从系统中删除组group1
$ groupdel group1


推荐阅读
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • PHP中去除换行符的多种方法及应用场景
    本文将详细介绍在PHP中去除换行符的各种方法,并结合实际应用场景进行说明。通过本文,您将了解如何根据不同操作系统的特点,选择最合适的换行符处理方式。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 在多线程编程环境中,线程之间共享全局变量可能导致数据竞争和不一致性。为了解决这一问题,Linux提供了线程局部存储(TLS),使每个线程可以拥有独立的变量副本,确保线程间的数据隔离与安全。 ... [详细]
  • 本文将详细介绍如何在Linux操作系统中执行PHP脚本,包括环境配置、命令使用及验证方法。对于需要在Linux环境下开发或部署PHP应用的用户来说,这是一篇非常实用的文章。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
author-avatar
mobiledu2502861847
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有