首页 > 系统相关 >【Linux】(二)—— 用户和用户组管理

【Linux】(二)—— 用户和用户组管理

时间:2024-06-03 23:31:11浏览次数:18  
标签:UID 用户组 用户 Linux 权限 root options

在了解了Linux基础命令格式后,今天我要介绍的是Linux的用户管理

目录

root用户

root用户是Linux系统中的超级用户账户。它拥有对系统无限制的权限,能够执行任何操作,没有任何文件或命令对root用户是禁止访问的。root用户的权限等同于操作系统本身,可以执行如下关键任务:

  1. 管理系统文件和配置:root用户可以读取、修改或删除任何系统文件,包括重要的配置文件和其他用户的数据。
  2. 用户和权限管理:可以创建、删除用户账户和用户组,修改用户权限和所有权。
  3. 安装和管理软件:无需额外权限即可安装、更新或卸载系统软件和库。
  4. 硬件管理:可以启用或禁用系统硬件,进行硬件相关的配置。
  5. 系统服务管理:可以启动、停止或重启系统服务和守护进程。
  6. 系统维护和修复:在系统出现问题时,root权限对于故障诊断和修复至关重要。

尽管root用户权限极大,便于系统管理,但同时也极其危险。错误的操作或被恶意利用都可能导致系统崩溃或数据丢失。因此,日常操作通常建议使用普通用户权限,并仅在必要时通过sudo或其他机制临时提升权限执行特定任务。为了保护root账户的安全,应设置强密码,并限制不必要的root登录,以减少潜在风险。

请添加图片描述

在终端输入指令前面为$表示普通用户,#表示当前身份为root,低权限切换至高权限需要输密码,高权限切换至低权限不需要。

普通用户无法直接操作根目录(用户管理属于根目录下的内容)下的东西,在学习用户管理时可以使用root用户

首先激活root用户,Ubuntu发行版本默认情况下root账户是被禁用的,你需要先激活root账户并设置密码。可以通过 sudo passwd root 命令来设置root用户的密码。

然后从当前用户切换至root用户的命令为:

su root

如果你的命令行输入处显示用户名为roor且$变成#,说明成功切换到了root用户:

请添加图片描述

用户管理操作

用户ID

用户ID(User ID,简称UID)在Linux及类UNIX系统中是一个非常重要的概念,它是每个用户账户的唯一数字标识符。下是关于用户ID的一些关键点:

  1. 唯一性:每个用户的UID都是独一无二的,确保系统能够准确区分不同的用户。
  2. 权限关联:UID与用户权限紧密相关。例如,UID为0的用户是root用户,拥有系统中的最高权限。普通用户的UID通常大于500,以区分系统预设的用户和管理员或服务账户。
  3. 文件权限:文件和目录的所有权以及访问权限通过UID和组ID(GID)来确定。每个文件或目录都有一个所有者(与UID关联)和所属组(与GID关联),这决定了用户能否读、写或执行这些文件。
  4. 存储位置:用户的用户名与对应的UID(以及其他用户信息)存储在/etc/passwd文件中。而实际的密码散列值(如果使用shadow密码,则存储在/etc/shadow)则不直接与UID在同一个地方展示,以增加安全性。
  5. 查看UID:可以通过命令行工具id或结合用户名使用id username来查看用户的UID。也可以直接使用whoami命令查看当前登录用户的UID。
  6. 创建用户时的UID分配:使用命令如useradd创建新用户时,如果不特别指定,系统会自动分配一个大于500的UID,以符合常规的用户与系统用户的区分标准。
  7. 系统保留UID:范围在0到499的UID通常被系统保留给预定义的系统用户和服务账户,如root(UID 0)、bin、sys等,这些用户通常用于运行系统关键服务和进程。

理解用户ID及其在Linux系统中的作用对于管理和维护系统安全、权限分配至关重要。

切换用户

切换用户的基本语法如下:

su 用户名

查看用户

compgen -u

此命令列出了所有可登录的用户账户名称,是一个快速查看用户名列表的方法。

添加用户

添加新用户的基本语法和参数选项解释如下:

useradd [-options] 用户名

[-options]可选:
-c comment # 指定一段注释性描述。
-d 目录 # 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 # 指定用户所属的用户组。
-G 用户组 # 指定用户所属的附加组。
-s Shell文件 # 指定用户的登录Shell。
-u 用户号 # 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

【示例】

useradd –d  /home/sam -m sam   #创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam

useradd -s /bin/sh -g group –G adm,root gem   # 新建了一个用户gem,该用户的登录Shell是 `/bin/sh`,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

指定密码

用户账号刚创建时没有口令,被系统锁定,无法使用,必须为其指定密码后才可以使用,即使是指定空密码。其基本语法和参数选项如下:

passwd [-options] 用户名

[-options]可选:
-l # 锁定口令,即禁用账号。
-u # 口令解锁。
-d # 使账号无口令。
-f # 强迫用户下次登录时修改口令。

【示例】

passwd sam   # 为其设置密码并激活sam用户

修改用户信息

修改用户的基本语法如下:

usermod [-options] 用户名

usermod命令的选项和添加用户一样,可以对已经存在的用户信息进行修改

删除用户

删除用户的基本语法和参数选项解释如下:

userdel [-options] 用户名

[-options]可选:
-r # 把用户的主目录一起删除。

退出登录

退出登录的基本语法如下:

exit

多个用户的登录顺序和栈一样,先退出的是后登录的

查看登陆系统的用户

查看当前系统用户的基本语法如下:

who

用户组的管理

在Linux系统中,用户组是一种将多个用户账号聚集在一起的方式,以便简化权限管理和资源访问控制。每个用户至少属于一个基本组(primary group),并且还可以属于零个或多个附加组(supplementary groups)。每个用户组都有一个唯一的组标识符,称为组ID(Group ID, GID)。

增加新用户组

添加用户组的基本语法和参数选项如下:

groupadd [-options] 用户组

[-options]可选:
-g # GID 指定新用户组的组标识号(GID)。省略的话默认在当前已有的最大组标识号的基础上加1。
-o # 与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

删除用户组

删除用户组的基本语法如下:

groupdel 用户组

修改用户组

可以修改用户组的组名和组id号,修改用户组的基本语法和参数选项如下:

groupmod [-options] 用户组

[-options]可选:
-g GID # 为用户组指定新的组标识号。
-o # 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n 新用户组 # 将用户组的名字改为新名字

切换用户组

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。其基本语法如下:

newgrp root   
# 这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。

与用户有关的系统文件

/etc/passwd文件中记录了所有的用户信息,对所有人都是只读的,每一条记录表示一个用户,按照以下规则划分信息:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

系统中有一类用户称为伪用户(pseudo users)。这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

常见的伪用户如下所示:

bin 拥有可执行的用户命令文件 
sys 拥有系统文件 
adm 拥有帐户文件 
uucp UUCP使用 
lp lp或lpd子系统使用 
nobody NFS使用

由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。 有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。/etc/shadow文件中存放的记录按照以下规则划分。

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

用户组的所有信息都存放在/etc/group中,/etc/group文件中存放的记录按照以下规则划分。

组名:口令:组标识号:组内用户列表

标签:UID,用户组,用户,Linux,权限,root,options
From: https://blog.csdn.net/dao_cao_renshuai/article/details/139426859

相关文章

  • 【Linux】(一)——Linux基础和Linux命令基础语法
    目录Linux基础Linux发行版本Linux终端Linux命令Linux基础Linux,通常指的是GNU/Linux操作系统,这是一个开源且免费使用的类UNIX操作系统。它的核心组件——Linux内核,由林纳斯·托瓦兹(LinusTorvalds)在1991年10月5日首次发布。Linux内核的设计灵感来源于Minix和Unix,并......
  • 【Linux】多进程基础
    文章目录查看进程相关命令进程相关函数孤儿进程僵尸进程进程回收进程通信(IPC)匿名管道pipe通信的使用有名管道:FIFO读写管道总结mmap内存映射查看进程相关命令ps-ef:SystemV风格查询所有的进程信息,-e参数表示显示所有进程,-f表示使用全格式输出,包含更多的列信息......
  • 在Linux kali下载、安装Perl环境
    目录Perl介绍下载安装官网下载在Windows安装在Linux和MacOS安装Perl介绍Perl一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从最初是为文本处理而开发的,现在用于各种任务,包括系统管理,Web开发,网络编程、GUI开发等。Perl易于使用、高效、完整,而不......
  • 使用idea提交代码到github时,提交用户显示为以前使用的用户不是当前github用户
    在idea使用http的方式拉取代码,并且同样是用http的方式提交的代码。导致出现这个问题,。所以提交和拉取代码最好还是用ssh的方式更为妥当。只需要修改git上传代码的方式为ssh的方式即可(还需要在idea中登入github账号)修改提交代码的方式-步骤如下点击git在选择[ManageRemotes......
  • Linux引导过程、修复MBR扇区
    目录引导过程开机自检寻找boot引导设备加载MBR引导记录GRUB菜单加载内核init进程初始化进程树系统初始化进程init进程守护进程运行级别Systemd修复MBR扇区故障故障原因故障现象解决思路示例备份MBR扇区模拟故障恢复MBR扇区GRUB备份模拟GRUB故障模拟GRU......
  • Linux管理员必备——Linux系统服务(daemon)与systemctl管理服务(上)
    ......
  • 【Linux 网络】高级 IO -- 详解
    一、IO的基本概念I/O(input/output)也就是输入和输出,在冯诺依曼体系结构当中,将数据从输入设备拷贝到内存就叫作输入,将数据从内存拷贝到输出设备就叫作输出。对文件进行的读写操作本质就是一种IO,文件IO对应的外设就是磁盘。对网络进行的读写操作本质也是一种IO,网络IO对......
  • Linux基础命令
    Linux基础命令Linux命令大全搜索工具(可能需要翻墙)web镜像文章目录lspwdcdtouchmkdirrmdirrmmancpmvcatmorelesshead1taildatecalfindgrepzipunziptarbcunameshutdownLinux系统对于大小写是敏感的,因此输入命令需要注意大小写1.ls指令语法:ls[选项]目录/文件......
  • 在Linux中,如何在Linux中进行资源配额管理?
    在Linux中进行资源配额管理(也称为磁盘配额管理)是为了控制用户或组对磁盘空间和文件数量的使用,以避免个别用户或组消耗过多资源,影响其他用户的使用体验。以下是在Linux中进行资源配额管理的步骤:1.确认磁盘配额是否已启用在较新的Linux发行版中,默认可能已经启用了磁盘配额。可以......
  • 搭建Ubuntu Linux虚拟环境并部署docker,搭建远程开发环境
    引言掌握虚拟化技术和容器化工具是开发者的必备技能,最近刚好学了些Linux技术,写一篇笔记来记录一下是如何一步步搭建一个UbuntuLinux虚拟环境的,并在当中部署docker容器。起初是为了安装docker,发现在Windows上安装docker比较麻烦,而在Linux系统上安装docker则比较简单。废话不多......