百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux 服务器用户及用户组配置全攻略

ahcoder 2025-04-26 16:21 6 浏览

作为互联网大厂的后端运维人员,日常工作中频繁与 Linux 服务器打交道。合理配置 Linux 服务器的用户以及用户组,对于保障服务器安全、提升运维效率起着至关重要的作用。今天,就来给大家详细讲讲这方面的操作,无论是初涉 Linux 服务器运维的新手,还是经验丰富的老鸟,相信都能从中收获实用的知识。

Linux 用户类型大揭秘

在深入了解用户及用户组配置之前,先得搞清楚 Linux 系统中用户的类型。Linux 系统主要有以下三种用户类型:

普通用户

这是最常见的用户类型,他们具备执行日常任务的权限,不过一般不能随意修改系统设置,也无法访问其他用户的文件。比如,公司里负责日常业务数据处理的同事,使用 Linux 服务器时可能就会以普通用户身份登录,他们能正常完成自己手头的数据处理工作,但不能去更改服务器的核心配置。

超级用户(root 用户)

root 用户拥有系统的最高权限,堪称 “王者” 一般的存在。系统维护和管理的诸多关键操作都离不开它,像安装、更新或删除软件包(特别是那些需要写入系统目录或更改系统配置的软件),修改系统文件和目录(例如/etc下的配置文件),管理用户账户和用户组(添加、删除用户或更改用户权限),执行系统级别的任务(如磁盘分区、格式化或挂载文件系统)等。

在进行故障排除和修复时,root 用户也起着关键作用,比如解决系统启动问题,编辑启动加载器的配置文件grub,修复文件系统错误或处理磁盘空间不足的情况,清除系统日志或重置系统设置以恢复系统正常运行等。在安全相关操作方面,安装或更新系统安全补丁,配置防火墙规则或 SELinux 策略,审查系统日志以监控潜在的安全威胁,都需要 root 用户的权限。

此外,执行需要大量系统资源的操作,如构建大型软件项目或进行系统备份,也会用到 root 用户权限。但由于 root 用户权限过高,一旦操作失误,可能会给系统带来严重后果,所以非必要时刻,应尽量避免使用 root 用户,更多时候是通过 sudo 命令让普通用户在需要时临时提升权限来执行特定管理任务。

系统用户

这类用户通常不是用来登录的,而是为了运行系统服务和应用程序而创建的。它们默默在后台工作,支撑着整个系统的稳定运行。

用户添加与管理

添加新用户

添加用户需要 root 权限,一般使用useradd命令。例如,要添加一个名为 “user1” 的用户,在终端输入:

sudo useradd user1

这里使用sudo命令,是因为普通用户默认没有添加用户的权限,sudo允许经过授权的用户以系统管理员(通常是 root 用户)的权限来运行程序或命令。sudo 使用时间戳文件来记录用户最近一次成功使用 sudo 的时间,默认有效期大约是 5 分钟,在这段时间内,用户再次使用 sudo 无需重新输入密码。

如果在添加用户时想要指定更多参数,各参数用法如下:

添加用户信息,使用-c或--comment "comment"选项,例如:

sudo useradd -c "This is user1" user1

指定用户的家目录,用-d或--home-dir directory选项,如:

sudo useradd -d /home/user1_dir user1

若未指定家目录,想创建默认的家目录,可加上-m或--create-home选项:

sudo useradd -m user1

指定用户的登录 shell 用-s或--shell shell选项,例如指定 bash 为登录 shell:

sudo useradd -s /bin/bash user1

指定用户的 UID 用-u或--uid uid选项,假设指定 UID 为 1001:

sudo useradd -u 1001 user1

将用户添加到额外的用户组用-G或--groups groups选项,如把用户添加到 “group2” 和 “group3” 组(假设组已存在):

sudo useradd -G group2,group3 user1

指定加密的密码用-p或--password password选项(实际操作中,不建议直接在命令中明文指定密码,通常使用passwd命令设置密码):

# 不推荐的示例,仅作参数说明
sudo useradd -p encrypted_password user1

指定账户的过期日期用-e或--expiredate date选项,日期格式为 YYYY - MM - DD,如设置 2025 年 12 月 31 日过期:

sudo useradd -e 2025 - 12 - 31 user1

指定密码过期后多少天内仍可登录用-L或--inactive days选项,假设设置为 7 天:

sudo useradd -L 7 user1

指定从密码过期开始,多少天后账户失效用-f或--inactive days选项,假设设置为 30 天:

sudo useradd -f 30 user1

不想创建家目录则用-M或--no - create - home选项:

sudo useradd -M user1

不记录到/var/log/lastlog和/var/相关日志用-N或--no - log - init选项 :

sudo useradd -N user1

添加完用户后,需要为用户设置密码,使用sudo passwd user1命令,按照提示输入新密码即可。有时可能会遇到 “密码未通过字典检查” 的提示,此时可直接忽略,再次输入一遍密码就行。

用户账户维护

修改用户信息

如果后续需要修改用户的相关信息,例如修改用户的家目录,可使用usermod命令。假设要将 “user1” 的家目录修改为 “/new/home/dir”,命令为:

sudo usermod -d /new/home/dir user1

删除用户

当某个用户不再需要时,可以使用userdel命令删除用户。比如要删除 “user1”,命令为:

sudo userdel user1

若要同时删除该用户的家目录,可加上-r选项,即:

sudo userdel -r user1

系统用户组的管理

用户组的概念

组群是具有相同特性的用户的逻辑集合,合理使用组群能极大地提高系统管理员组织和管理用户的工作效率。在为资源授权时,把权限赋予某个组群,比给每个用户单独授权要方便得多。当一个用户属于多个组群时,其中有一个组群是该用户的主组群(私有主群),其他组群则是附属组群(标准组群)。每个组群都有一个唯一的组群标识(GID),就如同每个用户都有唯一的用户标识(UID)一样。

创建和管理用户组

创建新用户组

使用sudo groupadd命令来创建新的用户组。例如,要创建一个名为 “group1” 的用户组,在终端输入:

sudo groupadd group1

为用户组添加用户

若要将用户添加到已有的用户组中,使用sudo usermod命令。比如要把 “user1” 添加到 “group1” 组,命令为:

sudo usermod -aG group1 user1

这里的-a选项表示追加,-G指定要加入的组群。

查看用户组信息

可以通过cat /etc/group命令查看系统中所有的用户组信息。该文件中每一行代表一个用户组,格式为 “组名:密码:GID: 组成员” 。执行命令如下:

cat /etc/group

修改用户组信息

如果要修改用户组的名称,使用groupmod命令。假设要将 “group1” 改名为 “new_group1”,命令为:

sudo groupmod -n new_group1 group1

其中-n选项表示新的名称。

理解用户账户和组群的配置文件

在 Linux 系统中,与用户账户和组群相关的配置文件主要有/etc/passwd、/etc/shadow和/etc/group 。

/etc/passwd

这个文件存储了系统中所有用户的基本信息,每行代表一个用户,格式为 “用户名:密码占位符:UID:GID: 用户信息:家目录:登录 Shell” 。虽然密码占位符通常显示为 “x”,但实际密码信息存储在/etc/shadow文件中。通过cat /etc/passwd命令可以查看所有用户信息,新建用户的信息会出现在文件的最后一行。执行命令:

cat /etc/passwd

/etc/shadow

该文件用于存储用户的密码及相关密码策略信息,只有 root 用户有权限查看。文件中每行格式为 “用户名:加密密码:上次修改密码的时间:密码最小使用期限:密码最大使用期限:密码过期警告天数:密码过期后宽限天数:账户失效日期:保留字段” 。由于权限限制,普通用户无法直接查看该文件内容,若以 root 用户查看,可执行:

sudo cat /etc/shadow

/etc/group

前面提到过,此文件记录了系统中所有用户组的信息,每行格式为 “组名:密码:GID: 组成员” 。查看命令与上述查看用户组信息命令相同:

cat /etc/group

权限设置与管理

在 Linux 系统中,权限设置对于保障服务器安全和资源合理访问至关重要。权限分为三个类别:所有者(user)、组(group)和其他人(others),可以针对文件、目录和命令进行权限调整以控制访问。

查看文件或目录的权限

使用ls -l命令可以以长格式显示文件和目录信息,其中就包含权限信息。例如,-rw-r--r--这样的权限表示文件所有者有读和写的权限,所属组群的成员只有读权限,其他用户也只有读权限。第一位的 “-” 表示这是一个文件,如果是 “d” 则表示目录。从第二位开始,每三位一组,分别对应所有者、组群和其他人的权限,“r” 代表读,“w” 代表写,“x” 代表执行。执行命令查看文件 “file.txt” 权限:

ls -l file.txt

修改权限 - chmod 命令

chmod命令用于修改文件或目录的权限。可以使用数字模式或符号模式来修改权限。

数字模式下,读权限对应 4,写权限对应 2,执行权限对应 1。比如要将一个文件 “file.txt” 的权限设置为所有者有读、写、执行权限,组群成员和其他用户只有读权限,命令为:

sudo chmod 744 file.txt

符号模式下,例如要给文件所有者添加执行权限,给组群成员和其他用户删除写权限,命令为:

sudo chmod u+x,g - w,o - w file.txt

其中 “u” 代表所有者,“g” 代表组群,“o” 代表其他人,“+” 表示添加权限,“-” 表示删除权限。

修改文件所有者和所属组群 - chown 和 chgrp 命令

chown命令用于修改文件或目录的所有者。例如,要将 “file.txt” 的所有者改为 “user1”,命令为:

sudo chown user1 file.txt

如果同时要修改所属组群为 “group1”,命令为:

sudo chown user1:group1 file.txt

chgrp命令专门用于修改文件或目录的所属组群,比如要将 “file.txt” 的所属组群改为 “group2”,命令为:

sudo chgrp group2 file.txt

合理配置 Linux 服务器的用户及用户组,再结合恰当的权限管理,能让我们的服务器运行得更加安全、高效。希望大家通过这篇文章,能熟练掌握相关操作,在日常的 Linux 服务器运维工作中更加得心应手。如果在实际操作过程中有任何问题,欢迎在评论区留言交流。

相关推荐

PC也能装MAX OS X

MACBOOK向来以其时尚的外观以及易用的OSX操作系统成为了时(zhuang)尚(bi)人士的最爱。但是其动不动就上万元的昂贵价格,也将一批立志时(zhuang)尚(bi)人士的拒之门外。但是最近...

一千多元的笔记本能买吗?英特尔11代+大屏幕,豆小谷值得选吗?

前言:有很多粉丝都问过本人,一千多元到底能买到什么样的笔记本?在此笔者只想说,这样的资金预算真的太低了!如果想买全新的,那大概率买的就是性能比较拉垮的上网本,比如搭载英特赛扬N系列、J系列处理器的轻薄...

首款配备骁龙X Elite处理器的Linux笔记本:采用KDE Plasma桌面环境

德国Linux硬件供应商TUXEDOComputers宣布正在开发一款配备高通骁龙XElite处理器(SnapdragonXEliteSoC)的ARM笔记本电脑,内部将该...

System76推出Gazelle Linux笔记本:配酷睿i9-13900H处理器

IT之家3月30日消息,主打Linux硬件的厂商System76于今天发布了新一代Gazelle笔记本电脑,共有15英寸和17英寸两个版本,将于3月30日接受预订,...

Kubuntu Focus Xe Gen 2笔记本发布,预装Linux系统

IT之家3月25日消息,KubuntuFocusXeGen2笔记本于近日发布,这是一款预装Kubuntu22.04LTSGNU/Linux发行版的轻薄本。上一代Kub...

这台Linux笔记本已用上英特尔12代酷睿,最高可选i7-1255U、卖1149美元起

Linux笔记本可能因为比较小众,一般都是拿Windows笔记本换个系统而来,硬件上也会落后同期Windows笔记本一两代,不过现在专门做Linux电脑的System76,推出了一款名为LemurP...

戴尔Inspiron 14 Plus骁龙笔记本迎新补丁,支持启动Linux

IT之家4月25日消息,科技媒体phoronix今天(4月25日)发布博文,报道称最新发布的Linux内核补丁,针对骁龙芯片的戴尔Inspiron14Plus笔记本,让其...

TUXEDO推出InfinityFlex 14二合一Linux笔记本,配i5-1335U

IT之家8月12日消息,Linux硬件企业TUXEDO当地时间本月2日推出了InfinityFlex14二合一Linux笔记本。该笔记本搭载2+8核的英特尔酷睿i5-...

登月探测器嫦娥使用什么操作系统,是Linux还是其它自主研发?

这是不是国家机密啊。事实什么样的不知道,但是从美国的探测器来看,就算不是也是相似的东西。下面我来说说我知道的。龙芯已经随北斗卫星上天了.就算登月探测器嫦娥是用"龙芯+Linux"也不出奇.没必要...

DNS分离解析实验

如果本文对你有帮助,欢迎关注、点赞、收藏、转发给朋友,让我有持续创作的动力目录一、分离解析概述二、实验需求三、实验步骤3.1双网卡服务器配置3.1.1添加两张网卡(内外网)3.1.2对两个网卡进...

一个小实验巩固下进程管理

先回顾下之前的三篇文章:Linux进程在内核眼中是什么样子的?Linux进程线程是如何创建的?Linux是如何调度进程的?通过这三篇文章的学习我们知道,无论内核进程还是用户进程,都是可以用task...

VMware Kali无线WIFI密码破解

WIFI破解前准备工作一张支持Kali系统监听的无线网卡VMware虚拟机安装好Kali系统(本实验用的是Kali2022版本)Kali系统下载、安装官方网站:https://www.kali.or...

python多进程编程

forkwindows中是没有fork函数的,一开始直接在Windows中测试,直接报错importosimporttimeret=os.fork()ifret==0:...

拔电源十台电脑藏后门!德国实验惊曝Windows致命漏洞

2025年4月15日,央视突然曝出一个超级大新闻!原来美国国家安全局通过黑龙江,往微软Windows系统里发送加密信息,激活了系统里藏着的后门程序,想破坏哈尔滨亚冬会!这消息一出来,大家才发现,竟然已...

深度探索RK3568嵌入式教学平台实战案例:设备驱动开发实验

一、产品简介TL3568-PlusTEB人工智能实验箱国产高性能处理器64位4核低功耗2.0GHz超高主频1T超高算力NPU兼容鸿蒙等国产操作系统二、实验目的1、熟悉基本字符设备的驱动程序...