Linux管理本地用户和组

在所有网络操作系统当中,都有一个很重要的概念:用户和组

对于组而言,我们使用组的目的是便于分配权限,权限的管理

对于用户而言,我们使用的目的主要是便于标识用户的身份

描述用户和组

我们在使用服务器时

平常使用的是普通用户

而在修改配置时使用的是root超级用户

我们可以通过id命令来查看当前用户的身份以及信息

值得一提的是,在Linux系统中,UID为0的都是root用户

对于上面的id数值而言

gid代表用户的组、groups代表所属组、context代表上下关系

而普通用户的id一般是从1000开始直至10000
用户通过用户账户可以登录到系统,并且访问已经被授权的资源

用户账户概述

在Linux中,用户主要分为三大类:

  • 超级用户(也称为root用户)
    系统上最高权限的用户,具有对系统所有资源的完全访问权限
    这个账户通常仅用于系统管理任务,例如安装软件或配置系统
  • 普通用户
    系统上的一个标准用户账户
    可以访问有限的系统资源(通常根据管理员的权限设定)以及安装在该账户下的应用程序
    这个类型的账户通常用于普通用户,例如网站用户或员工账户
  • 程序用户
    Linux系统中预定义的一些具有特定权限的用户账户
    例如,www-data用户用于运行Web服务器进程,bindaemon用户用于运行系统服务等
    这些账户不应由用户手动创建或修改,因为它们的权限和用途是由系统本身所定义的

su切换用户和授权

对于用户而言,管理员可能需要切换至普通用户工作

普通用户可能需要提高权限对文件操作,下载,更改配置等

我们在这种情况下便可以使用su + '-' + [username]命令在不注销的情况下来更改工作用户

通过su - kiosk命令从root超级用户转换到kiosk用户

通过su -命令从kiosk用户输入root密码后转换到root超级用户

sudo提权操作

在生产中,在有多个工作协作者的情况下,不可能一个root账号给多个人一起使用

所以一般会给普通用户分配权限

也就是sudo命令

下面我们使用例子来进行理解:

我们在普通用户下使用sudo命令,随后需要我们进行密码的输入(root的密码)

但是输入之后却报了一个Sorry,try again的错误

这个原因是我们的普通用户kiosk没有使用sudo的权利

要想使用sudo,我们要在root用户下输入visudo命令

使用vim进入sudo命令配置文件进行权限编辑更改

进入之后找到这个

按i进入编辑模式,输入以下数据

其中,kiosk是你想要添加的用户的名称,ALL=(ALL)代表的是可以从任何终端来进行提权操作
NOPASSWD : ALL代表的是该用户进行提权操作时不需要输入密码

随后按esc退出编辑模式,输入:wq保存并退出

再次返回kiosk用户进行sudo操作就可以发现成功了,且不需要输入密码

我们也可以通过在root中输入vim /etc/sudoers操作进入sudo命令配置文件进行权限编辑更改

两种方法等效~

用户管理

用户账户文件 ------/etc/passwd
username:password:UID:GID:GECOS:/home/dir:/bin/bash

  • username:用户名
  • password:密码占位符
  • UID:用户账户的UID号
  • GID:所属基本组账号的GID号
  • GECOS:用户描述
  • /home/dir:宿主目录
  • /bin/bash:登录Shell信息

本地用户管理

对于用户管理,我们有以下几种操作,下面分别来进行介绍:

  • useradd + 选项 + 用户名 添加用户账号
  • usermod + 选项 + 用户名 修改用户账号
  • userdel + [-r] + 用户名 删除用户账号
    下面举个实例:
    我想要添加一个账户,并且详细设置他的信息

    我们想在这里添加一个名叫Benny,uid为6666,gid为1111,描述为people的用户
    但是在创建时出现了一个错误,是由于这个组不存在的,所以我们需要先添加该组

    这样便创建用户成功,可以使用grep Benny /etc/passwd命令在passwd文件内寻找Benny用户的信息
    可以看到,里面的信息全都是按照我们创建时设置的信息来的
    如果想要修改信息,我们也可以使用usermod命令来进行修改

    这里我们将Benny用户的uid修改为8888,名称修改为ThirteennyC
    通过grep Thirteenny /etc/passwd的指令可以看到也是成功修改

密码设置

用户密码文件------/etc/shadow
name:password:lastchage:minage:maxage:warning:inactive:expire:blank

  • name:用户账号名称
  • password:加密的密码串信息
  • lastchange:最近一次修改密码时间
  • minage:密码的最短使用天数(默认值0)
  • maxage:密码的最长有效天数(默认99999)
  • warning:密码过期提前警告(默认7)
  • inactive:密码过期后账号的活动天数,指定天数后账号被锁定
  • expire:账号失效时间(默认为空)
  • blank:保留字段(未使用)
    当创建了一个新用户之后,需要设置一个密码,否则无法登录(没有默认密码)
    我们可以通过在root用户下输入passwd命令来修改一个用户的密码

    可以看到,在输入两次新密码之后显示修改密码成功

用户组管理

用户组文件------/etc/group
groupname:passwd:gid:groupmember

  • groupname:组名
  • passwd:组密码
  • gid:组号
  • groupmember:组成员 对于用户组管理,我们有以下几种操作,下面分别来进行介绍:
  • groupadd + 选项 + 用户名 添加用户组号
  • groupmod + 选项 + 用户名 修改用户账组号
  • groupdel + [-r] + 用户名 删除用户组号
相关推荐
hello_ world.10 分钟前
RHCA10NUMA
linux
神秘人X70740 分钟前
Linux高效备份:rsync + inotify实时同步
linux·服务器·rsync
轻松Ai享生活1 小时前
一步步学习Linux initrd/initramfs
linux
轻松Ai享生活1 小时前
一步步深入学习Linux Process Scheduling
linux
绵绵细雨中的乡音3 小时前
网络基础知识
linux·网络
Peter·Pan爱编程3 小时前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20134 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5494 小时前
DVWA中级
linux
Sadsvit5 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok5 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux