Linux用户权限管理命令大全

Linux用户权限管理核心在于控制“谁能动什么”,通过chmod、chown、useradd等命令实现文件权限与用户组管理,结合SUID、SGID、Sticky Bit及sudo机制,确保系统安全与多用户协作高效进行。

linux用户权限管理命令大全

Linux用户权限管理,说白了,就是操作系统层面上的“谁能动什么,怎么动”的规矩。这不仅仅是技术细节,更是系统安全和稳定性的基石,尤其在多用户、多任务的环境下,理解和掌握这些命令,几乎是每个Linux使用者,无论是运维、开发还是普通用户,都绕不开的一道坎。它决定了你的文件是私密还是共享,你的程序是安全运行还是处处受限。

解决方案

谈到Linux用户权限管理,核心命令其实就那么几个,但它们组合起来能玩出很多花样。我个人觉得,理解这些命令的“意图”比死记硬背参数更重要。

首先是文件和目录的权限管理,这块是基础中的基础:

chmod

(change mode):这个命令用来改变文件或目录的权限。权限分为读(r)、写(w)、执行(x),分别对应数字4、2、1。我们通常用八进制数字来表示用户(u)、组(g)和其他人(o)的权限。示例:

chmod 755 script.sh

。这表示文件所有者(u)有读写执行权限(4+2+1=7),文件所属组(g)和其他人(o)只有读和执行权限(4+1=5)。个人看法: 我更喜欢用符号模式,比如

chmod u+x,g-w file.txt

,感觉更直观,尤其在只修改某一部分权限时。但对于全新设置,数字模式效率更高。

chown

(change owner):改变文件或目录的所有者。示例:

chown user1:group1 file.txt

。这会将

file.txt

的所有者改为

user1

,所属组改为

group1

小贴士: 经常会遇到

chown -R

递归修改整个目录树的情况,但要小心,别把系统关键文件的所有者改错了。

chgrp

(change group):专门改变文件或目录的所属组。虽然

chown

也能做,但

chgrp

在某些脚本里可能更明确。示例:

chgrp newgroup file.txt

接着是用户和用户组的管理,这是构建多用户环境的关键:

useradd

:创建新用户。示例:

useradd -m -s /bin/bash newuser

-m

会自动创建家目录,

-s

指定默认shell。经验之谈: 别忘了创建密码,否则用户是登录不了的。

passwd newuser

紧随其后是常态。

userdel

:删除用户。示例:

userdel -r olduser

-r

选项会一并删除用户的家目录和邮件池。注意: 删除用户前,最好确认该用户没有重要文件或正在运行的服务。

usermod

:修改用户属性。示例:

usermod -g newgroup -G anothergroup -s /bin/sh existinguser

。修改主组、附加组和shell。个人心得:

usermod -aG

是我最常用的,用来把用户添加到某个附加组,而不会覆盖掉其他附加组。

groupadd

:创建新用户组。示例:

groupadd devteam

groupdel

:删除用户组。示例:

groupdel oldgroup

groupmod

:修改用户组属性。示例:

groupmod -n newname oldname

。修改组名。

然后是权限提升和身份切换:

sudo

(superuser do):以其他用户(通常是root)的身份执行命令。这是日常管理中最常用,也最安全的权限提升方式。示例:

sudo apt update

安全提示:

sudo

的配置 (

/etc/sudoers

) 至关重要,它决定了谁能用

sudo

,能执行哪些命令。错误的配置可能导致严重的安全漏洞。

su

(switch user):切换用户身份。示例:

su - root

。切换到root用户,并加载root的环境变量。区别

su

切换后需要目标用户的密码,而

sudo

只需要当前用户的密码(如果配置允许)。在服务器上,我更倾向于

sudo

,因为它有更好的审计日志。

最后是一些辅助查看命令:

id

:显示用户的UID、GID以及所属的所有组。示例:

id username

whoami

:显示当前有效的用户名。

ls -l

:查看文件或目录的详细信息,包括权限、所有者和所属组。

这些命令构成了Linux权限管理的核心骨架。理解它们,基本上就能应对绝大多数的权限问题了。

如何理解Linux文件与目录权限的rwx含义?

说起Linux的权限,

rwx

这三个字母简直是基石,它们分别代表着读(read)、写(write)、执行(execute)。但光知道这三个字面意思还不够,关键在于它们在文件和目录上,有着截然不同的“行为模式”。这对我来说,是初学时最容易混淆的地方,直到真正踩过坑,才算彻底搞明白。

对于文件:

r (读):很简单,就是允许你查看文件的内容。比如

cat

more

less

命令,或者用文本编辑器打开它。没有读权限,文件内容对你来说就是个黑箱。w (写):允许你修改或删除文件的内容。你可以用编辑器保存对文件的修改,或者直接删除这个文件(前提是你对文件所在的目录有写权限,这一点很重要,下面会说)。x (执行):这表示文件可以被当作一个程序来运行。对于脚本文件(如

.sh

),没有

x

权限,即使内容写得再好,你也无法直接

./script.sh

来运行它。它只会是个普通的文本文件。

对于目录:

这里就有点意思了,目录的

rwx

和文件的含义大相径庭:

r (读):允许你列出目录下的文件和子目录名称。比如

ls

命令,没有这个权限,你甚至不知道目录里有什么。但你不能进入目录。w (写):这是最“危险”的权限。它允许你在目录中创建、删除、重命名文件和子目录,甚至移动目录中的文件。注意,即使你对某个文件没有写权限,但如果你对它所在的目录有写权限,你仍然可以删除这个文件!这就是为什么有时候你无法修改一个文件,但却能把它删掉的原因。x (执行):这个权限对于目录来说,通常被称为“搜索”或“进入”权限。没有它,你无法

cd

进入这个目录,也无法访问目录下的任何文件或子目录,即使你知道文件的完整路径。这有点像一个锁住的门,你知道门后面有东西,但你进不去。

八进制表示法:

为了方便,我们把

rwx

映射成数字:

r=4

,

w=2

,

x=1

。这样,一个权限组合就可以用一个数字来表示:

rwx

= 4+2+1 = 7

rw-

= 4+2+0 = 6

r-x

= 4+0+1 = 5

r--

= 4+0+0 = 4

---

= 0+0+0 = 0

当我们看到

chmod 755 file.sh

,它意味着:

第一个

7

(4+2+1):文件所有者拥有读、写、执行权限。第二个

5

(4+0+1):文件所属组拥有读、执行权限,但不能修改。第三个

5

(4+0+1):其他用户拥有读、执行权限,也不能修改。

理解这些细微的差别,对于排查“为什么我不能访问这个文件?”或者“为什么我不能运行这个脚本?”这类问题,至关重要。我曾经因为一个目录没有

x

权限,导致Web服务器无法读取其中的静态文件,排查了半天,才发现是这个小细节。

除了基本权限,Linux还有哪些高级权限设置?

当基本的用户、组和文件权限(rwx)无法满足复杂场景的需求时,Linux系统还提供了一些“高级”权限机制。这些机制虽然不如

chmod

那么常用,但在特定场景下,它们能提供更精细的控制和更高的安全性。我主要想聊聊三个比较重要的:SUID、SGID和Sticky Bit,以及一个更复杂的ACL。

1. SUID (Set User ID)

这个权限只对可执行文件有效,并且它是个非常强大的功能。当一个设置了SUID位的文件被执行时,无论执行它的用户是谁,程序都将以文件所有者的权限来运行,而不是执行者的权限。

标识:

ls -l

输出中,文件所有者权限的

x

位会变成

s

(如果所有者有执行权限) 或

s

(如果所有者没有执行权限)。作用: 最经典的例子就是

passwd

命令。

passwd

文件通常属于

root

用户,并设置了SUID位。这样,普通用户执行

passwd

命令时,程序会以

root

用户的身份运行,从而能够修改

/etc/shadow

文件(存储用户密码的加密文件),而这个文件普通用户是没有权限直接修改的。潜在风险: 如果一个恶意程序被设置了SUID,并且其所有者是

root

,那么任何用户执行它都将获得

root

权限,这无疑是一个巨大的安全漏洞。因此,系统管理员需要非常谨慎地管理带有SUID位的文件。

2. SGID (Set Group ID)

乾坤圈新媒体矩阵管家 乾坤圈新媒体矩阵管家

新媒体账号、门店矩阵智能管理系统

乾坤圈新媒体矩阵管家 17 查看详情 乾坤圈新媒体矩阵管家

SGID有两种应用场景,分别针对文件和目录:

对于可执行文件: 类似SUID,当一个设置了SGID位的可执行文件被执行时,程序会以文件所属组的权限来运行,而不是执行者所在的主组。标识:

ls -l

输出中,文件所属组权限的

x

位会变成

s

(如果所属组有执行权限) 或

s

(如果所属组没有执行权限)。对于目录: 这是SGID更常见的应用。当一个目录设置了SGID位后,任何在该目录中创建的新文件或子目录,其所属组都会自动继承父目录的所属组,而不是创建者用户的默认组。标识:

ls -l

输出中,目录所属组权限的

x

位会变成

s

作用: 在多用户协作环境中非常有用。比如一个项目组

devteam

,所有成员都在

/project

目录下工作。如果

/project

目录设置了SGID,那么无论哪个成员创建文件,新文件的所属组都会是

devteam

,方便组内成员共享和协作。

3. Sticky Bit (粘滞位)

Sticky Bit主要用于目录,它的目的是为了防止非所有者用户删除或重命名目录中的文件,即使这些用户对目录有写权限。

标识:

ls -l

输出中,其他用户权限的

x

位会变成

t

(如果其他用户有执行权限) 或

t

(如果其他用户没有执行权限)。作用: 最典型的例子就是

/tmp

目录。

/tmp

目录是所有用户都可以读写执行的,任何用户都可以在其中创建文件。但由于

/tmp

目录设置了Sticky Bit,用户只能删除或重命名自己创建的文件,而不能删除或重命名其他用户创建的文件。这有效防止了用户之间互相干扰,确保了临时文件的隔离性。

如何设置这些特殊权限:

使用

chmod

命令,通过数字模式或符号模式。

数字模式: 在三位八进制权限数字前加一位,代表特殊权限。

4

表示 SUID

2

表示 SGID

1

表示 Sticky Bit示例:

chmod 4755 file

(设置SUID),

chmod 2775 dir

(设置SGID),

chmod 1777 /tmp

(设置Sticky Bit)。符号模式:

chmod u+s file

(设置SUID)

chmod g+s dir

(设置SGID)

chmod +t /tmp

(设置Sticky Bit)

这些高级权限,虽然在日常操作中不常用,但在构建安全的、多用户协作的系统时,它们是不可或缺的工具。理解它们的原理和用途,能让你在面对复杂的权限需求时,有更多的选择和更精准的控制力。

在多用户协作环境中,如何高效管理用户和用户组?

在多用户协作的场景下,尤其是在服务器或开发环境中,用户和用户组的管理就不仅仅是“创建几个用户”那么简单了。它涉及到权限的隔离、资源的共享以及操作的审计。我个人觉得,高效管理的关键在于“合理规划”和“灵活运用”那些基础命令。

1. 规划先行:明确职责与权限边界

在动手之前,花点时间思考:

谁需要访问什么? 哪些用户需要访问哪些目录、哪些文件、哪些服务?权限级别是什么? 是只读、读写、还是完全控制?有哪些协作小组? 比如开发组、测试组、运维组,他们之间需要共享哪些资源?

有了这个蓝图,你就能更好地设计用户和组的结构,避免后期频繁调整。

2. 巧用用户组:实现权限共享与隔离

用户组是实现权限共享和隔离的利器。与其给每个用户单独设置文件权限,不如将相关用户加入到一个组中,然后对组设置权限。

创建用户组 (

groupadd

):示例:

groupadd developers

groupadd testers

实践: 尽可能根据项目或团队职能来划分组。创建用户并指定主组 (

useradd

):示例:

useradd -m -g developers -s /bin/bash dev_user1

。这里

-g

指定了用户的主组。每个用户都有一个主组,新创建的文件通常会继承主组的权限。将用户添加到附加组 (

usermod -aG

):示例:

usermod -aG testers dev_user1

dev_user1

既属于

developers

组(主组),又属于

testers

组(附加组)。这样,

dev_user1

就能访问

developers

组和

testers

组共享的资源。关键点:

-aG

是个非常重要的组合,它表示“追加到附加组”,而不是覆盖已有的附加组。如果只用

-g

,会覆盖掉用户所有的附加组,这在生产环境里可能是个灾难。修改文件/目录的所属组 (

chgrp

chown

):示例:

chgrp developers /var/www/project_repo

。将项目代码仓库的所属组设为

developers

配合 SGID: 如果

/var/www/project_repo

目录设置了SGID (

chmod 2775 /var/www/project_repo

),那么

developers

组的成员在这个目录下创建的任何新文件,其所属组都会自动是

developers

,极大地方便了组内协作。

3. 权限委派:使用

sudo

替代

root

直登

在协作环境中,直接共享

root

密码是绝对不可取的。

sudo

是更安全的权限委派方式。

配置

/etc/sudoers

通过

visudo

命令编辑

sudoers

文件,可以精细地控制哪些用户或组可以执行哪些命令,以及是否需要密码。示例:

dev_user1 ALL=(ALL) /usr/bin/systemctl restart nginx

。这允许

dev_user1

root

权限重启

nginx

服务,但仅限于这个命令。思考: 我通常会创建一个

sudoers

组,然后把需要执行特权命令的用户加入这个组,再在

sudoers

文件中给这个组配置权限,这样管理起来更集中。

4. 审计与监控:了解谁做了什么

虽然不是直接的权限管理命令,但审计日志对于多用户环境至关重要。

/var/log/auth.log

(或类似文件): 记录用户登录、

sudo

命令执行等安全相关事件。定期查看这些日志,有助于发现异常行为。

高效的用户和用户组管理,本质上是一种平衡艺术:在确保系统安全的前提下,最大限度地提升团队协作的便利性。它不是一劳永逸的配置,而是需要根据团队发展和项目需求持续调整和优化的过程。

以上就是Linux用户权限管理命令大全的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/433196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Linux系统性能监控工具_Linuxsar、iotop和perf使用详解
上一篇 2025年11月7日 15:02:37
鬼谷八荒新手开局玩法介绍-鬼谷八荒各种系统简介
下一篇 2025年11月7日 15:02:48

相关推荐

  • Windows 10功能更新1909版错误0xc19001e1怎么解决?

    0xc19001e1错误可通过禁用第三方安全软件、清理磁盘空间、运行Windows更新疑难解答及重置更新组件解决。首先卸载非微软安全软件并重启;确保C盘有20GB以上可用空间,通过设置清理临时文件;使用内置疑难解答工具修复更新问题;最后以管理员身份运行命令提示符,停止wuauserv、cryptSv…

    2026年9月21日
    000
  • windows怎么格式化硬盘_windows硬盘格式化方法

    格式化硬盘可通过四种方法完成:1. 使用磁盘管理工具,进入“此电脑”→“管理”→“磁盘管理”,右键目标分区选择“格式化”,设置文件系统及是否快速格式化;2. 通过文件资源管理器,在“此电脑”中右键驱动器选择“格式化”,选择NTFS等文件系统并开始操作;3. 使用命令提示符运行diskpart工具,依…

    2026年9月21日
    100
  • 如何在Linux中进程替换 Linux

    <img src="https://img.php.cn/upload/article/000/969/633/175729116271538.jpeg" alt="如何在linux中进程替换 linux 在Linux系统中,进程替换的核心机制在于利用 exec …

    用户投稿 2026年9月21日
    000
  • 夸克Ai搜索如何设置默认_夸克Ai搜索默认引擎更改

    首先在夸克APP中将默认搜索引擎设为AI引擎,再开启相关AI功能开关以启用AI搜索服务。具体步骤:1、打开夸克APP,点击右下角菜单进入设置;2、选择“通用”选项,点击“搜索引擎”;3、选择“AI引擎”或“夸克AI搜索”作为默认服务;4、返回主界面测试搜索关键词,确认AI结果是否展示;5、进入“AI…

    2026年9月21日
    400
  • Laravel中的Blade模板引擎基础用法

    blade模板引擎在laravel中用于简化视图开发。具体使用方法如下:1.输出变量:{{ $variable }}。2.条件判断:@if、@else、@elseif。3.循环:@foreach。4.模板继承:@extends、@section、@yield。blade让视图代码更简洁易读,但需注意…

    2026年9月21日
    000
  • Windows10重置此电脑卡住不动了怎么办_Windows10重置电脑卡住修复方法

    重置电脑卡住时,先等待2-4小时观察硬盘灯是否闪烁,确认系统是否仍在运行;若无响应,可尝试断开网络避免更新下载、调整BIOS关闭Secure Boot并启用Legacy模式;或使用Windows安装U盘启动,进入修复模式执行启动修复、chkdsk磁盘检查,以及通过三次强制关机触发恢复环境重试重置。 …

    2026年9月21日
    000
  • Linux查看系统日志的常用命令

    答案是查看Linux日志需综合使用journalctl、dmesg、tail、grep等工具。journalctl用于systemd系统集中查询服务及内核日志,支持时间、优先级、字段等多维度过滤;dmesg专注内核启动与硬件问题;tail -f实时监控日志动态;cat、grep、less结合正则和管…

    用户投稿 2026年9月21日
    000
  • Workerman服务启动失败的排查步骤

    workerman服务启动失败的排查步骤如下:1. 检查配置文件,确保无语法错误;2. 查看系统日志,寻找错误线索;3. 检查端口占用情况,确保端口未被占用;4. 调整文件权限,确保workerman有足够权限;5. 检查php环境,确保版本兼容且扩展已安装。 关于Workerman服务启动失败的排…

    2026年9月21日
    200
  • 如何为VSCode设置自定义的代码高亮颜色?

    答案:通过settings.json中的editor.tokenColorCustomizations可自定义VSCode代码高亮颜色,支持全局或特定主题下修改关键字、字符串等元素颜色,结合textMateRules和作用域精确控制,提升代码可读性。 为 VSCode 设置自定义的代码高亮颜色,可以…

    2026年9月21日
    000
  • 百度浏览器自动跳转怎么办 百度浏览器页面跳转广告拦截方法

    百度浏览器自动跳转通常由恶意软件或设置被篡改引起,需检查浏览器设置、清除异常插件、修复快捷方式与注册表,并使用安全软件扫描清理,同时启用广告拦截与隐私保护功能以彻底解决问题。 百度浏览器出现自动跳转,通常不是浏览器本身的问题,而是由恶意软件、插件或设置被篡改导致的。解决这个问题需要从多个方面入手,检…

    2026年9月21日
    100
  • 压力测试(Benchmark)Swoole服务的工具与方法

    进行swoole服务的压力测试是为了确保服务在高负载下稳定运行。1. 选择工具:apache jmeter、wrk、locust。2. 使用方法:jmeter通过脚本配置,wrk通过命令行,locust通过python脚本。3. 注意事项:环境隔离、数据监控、脚本设计。4. 优化点:内存泄漏、连接池…

    2026年9月21日
    000
  • Windows11内存占用率过高怎么解决_Windows11内存占用过高修复方法

    1、通过任务管理器结束高内存占用进程;2、禁用Superfetch(SysMain)服务以降低内存负担;3、优化启动项减少后台负载;4、升级物理内存条提升系统性能。 如果您发现Windows 11系统运行缓慢,并且任务管理器显示内存占用率持续处于高位,这可能是由于后台进程过多、系统服务占用资源或硬件…

    2026年9月21日
    100
  • mysql常用存储引擎有哪些

    InnoDB是现代MySQL应用的首选存储引擎,因其支持事务(ACID)、行级锁、外键约束、崩溃恢复和MVCC,适用于高并发、数据完整性要求高的OLTP场景;MyISAM虽读取快但仅支持表级锁且无事务和外键,适用于读多写少的简单场景,已逐渐被淘汰;Memory引擎将数据存于内存,速度快但易失,适合临…

    2026年9月21日
    000
  • Linux目录结构与Windows目录结构对比

    Linux采用单一树状结构,所有文件系统挂载于根目录/下,如/home、/etc;Windows以C:\、D:\等独立盘符划分,无统一根节点。2. Linux将配置集中于/etc,用户数据存于/home,系统文件在/bin、/usr等,配置明文可编辑;Windows程序装在Program Files…

    用户投稿 2026年9月21日
    100
  • 怎么弄微信公众号_微信公众号注册与功能配置教程

    怎么弄微信公众号_微信公众号注册与功能配置教程怎么弄微信公众号_微信公众号注册与功能配置教程怎么弄微信公众号_微信公众号注册与功能配置教程怎么弄微信公众号_微信公众号注册与功能配置教程

    答案:注册微信公众号需先确定账号类型,订阅号适合内容发布,服务号侧重功能服务,个人注册仅能选订阅号,企业可选服务号并需认证;注册后需配置自定义菜单、自动回复和欢迎语以提升用户体验。 微信公众号的注册与功能配置,说到底,就是把你的内容或服务,通过微信这个巨大的平台,有效地触达目标用户。这过程不复杂,但…

    2026年9月21日 用户投稿
    100
  • 谷歌浏览器图片无法显示怎么办 谷歌浏览器图片加载失败修复方法

    首先检查浏览器图片显示设置是否允许,确认无误后清除缓存和Cookie数据,接着排查扩展程序干扰,最后更新浏览器并检查硬件加速设置。 谷歌浏览器图片加载不出来,通常不是大问题,多数情况通过几个简单操作就能解决。下面列出几种常见且有效的排查方法。 检查图片显示设置 最直接的原因可能是浏览器被设置为阻止图…

    2026年9月21日
    000
  • 如何配置VSCode来完美支持Vue.js开发?

    安装Volar、TypeScript Vue Plugin、ESLint和Prettier扩展,禁用Vetur,在settings.json中配置vetur.enabled为false,设置ESLint保存时自动修复并指定Prettier为默认格式化工具,关联.vue文件语言,启用TypeScrip…

    2026年9月21日
    000
  • Potplayer如何修复卡顿问题_Potplayer解决播放卡顿的实用方案

    更换视频渲染器、更新显卡驱动、调整色彩格式、关闭叠加层特效及修复视频文件可解决PotPlayer播放卡顿问题。 如果您在使用PotPlayer播放视频时遇到画面卡顿、播放不流畅的情况,这可能是由于渲染器设置不当、硬件加速冲突或系统资源占用过高导致的。以下是解决此问题的具体步骤: 本文运行环境:Del…

    2026年9月21日
    100
  • 利用蝴蝶号搭建多账号无人直播系统的完整方案

    利用蝴蝶号搭建多账号无人直播系统的完整方案利用蝴蝶号搭建多账号无人直播系统的完整方案利用蝴蝶号搭建多账号无人直播系统的完整方案利用蝴蝶号搭建多账号无人直播系统的完整方案

    搭建多账号无人直播系统并非一键操作,而是通过“蝴蝶号”实现自动化流程。首先,“蝴蝶号”负责多账号的生命周期管理,包括登录、状态维护、ip代理分配和设备指纹模拟;其次,内容调度系统决定直播内容及播放时间,可为预录视频或动态生成流;再次,推流引擎将内容实时推送至平台,推荐使用ffmpeg结合python…

    2026年9月21日 用户投稿
    100
  • 锚定AI终端存储市场,康盈半导体连发三款新品

    锚定AI终端存储市场,康盈半导体连发三款新品锚定AI终端存储市场,康盈半导体连发三款新品锚定AI终端存储市场,康盈半导体连发三款新品锚定AI终端存储市场,康盈半导体连发三款新品

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 三款新品聚焦AI存储需求 在最新举行的产品发布会上,康盈半导体正式推出三款专为AI应用场景打造的全新存储解决方案,覆盖嵌入式存储与高性能固态硬盘等多个品类,旨在满足多样化AI终端对高效、紧凑、低…

    2026年9月21日 用户投稿
    100

发表回复

登录后才能评论
关注微信