Linux如何创建只读用户账户

创建只读用户需先添加用户并设密码,2. 可创建readonlyusers组统一管理,3. 通过修改/etc/fstab添加ro选项实现文件系统只读,4. 用usermod -s /usr/sbin/nologin限制Shell登录,5. 使用setfacl设置细粒度ACL权限,6. 撤销权限时需移除组、恢复fstab、重挂载、恢复Shell及删除ACL,7. 临时只读可用mount -o remount,ro,持久化推荐fstab,8. OverlayFS适用于合并只读与可写层,9. 监控可通过.bash_history、系统日志、auditd及SELinux/AppArmor实现。

linux如何创建只读用户账户

Linux创建只读用户账户的核心在于限制用户权限,使其只能查看文件和目录,而不能进行修改、删除或创建操作。这通常通过创建新用户,并设置其权限来实现。

解决方案:

创建新用户: 使用

sudo adduser 

命令创建新用户。系统会提示你输入密码和其他用户信息。

创建用户组(可选但推荐): 如果你想管理多个只读用户,可以创建一个专门的组。使用

sudo groupadd readonlyusers

命令创建名为

readonlyusers

的组。

将用户添加到组: 使用

sudo usermod -aG readonlyusers 

命令将用户添加到

readonlyusers

组。

设置文件系统权限: 这是最关键的一步。你需要限制用户对文件系统的写权限。一种常见的方法是修改

/etc/fstab

文件,为特定的分区或目录设置

ro

(readonly) 选项。

首先,使用

df -h

命令找到你想限制的目录或分区。例如,你想限制用户访问

/var/log

目录。

然后,使用

sudo nano /etc/fstab

命令编辑

/etc/fstab

文件。

找到包含

/var/log

的行,并在选项中添加

ro

。例如:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  /var/log  ext4  defaults,ro  0  2

保存并关闭文件。然后,使用

sudo mount -o remount /var/log

命令重新挂载

/var/log

目录,使更改生效。

重要提示: 直接修改

/etc/fstab

具有风险。如果配置错误,可能导致系统无法启动。请务必谨慎操作,并在修改前备份

/etc/fstab

文件。

限制Shell访问: 为了进一步限制用户行为,可以限制用户登录到 Shell。可以使用

sudo usermod -s /usr/sbin/nologin 

命令禁止用户登录。这样,用户虽然可以存在于系统中,但无法通过 SSH 或其他方式登录到 Shell 环境。

使用Access Control Lists (ACLs): ACLs 提供了更细粒度的权限控制。你可以使用

setfacl

命令来设置用户或组对特定文件或目录的权限。例如,要允许用户

readonlyuser

读取

/var/log/messages

文件,可以使用以下命令:

 sudo setfacl -m u:readonlyuser:r-- /var/log/messages

使用

getfacl /var/log/messages

命令可以查看 ACL 权限。

如何撤销只读用户的权限?

要撤销只读用户的权限,需要执行与创建过程相反的操作。

知我AI·PC客户端 知我AI·PC客户端

离线运行 AI 大模型,构建你的私有个人知识库,对话式提取文件知识,保证个人文件数据安全

知我AI·PC客户端 0 查看详情 知我AI·PC客户端

移除用户组: 如果之前将用户添加到了特定的只读用户组,可以使用

sudo gpasswd -d  

命令将其从组中移除。例如,

sudo gpasswd -d readonlyuser readonlyusers

恢复文件系统权限: 编辑

/etc/fstab

文件,移除之前添加的

ro

选项,然后使用

sudo mount -o remount /var/log

命令重新挂载文件系统。 记住,修改前备份

/etc/fstab

恢复Shell访问: 如果之前禁用了用户的 Shell 访问,可以使用

sudo usermod -s /bin/bash 

sudo usermod -s /bin/sh 

命令恢复用户的 Shell 访问。具体使用哪个 Shell 取决于你的系统配置。

移除ACL权限: 如果使用了 ACLs,可以使用

sudo setfacl -x u: 

命令移除用户的 ACL 权限。例如,

sudo setfacl -x u:readonlyuser /var/log/messages

除了/etc/fstab,还有其他方法设置文件系统为只读吗?

是的,除了直接修改

/etc/fstab

,还有其他方法可以将文件系统设置为只读,但它们通常适用于特定的场景。

使用

mount

命令: 可以使用

mount -o remount,ro  

命令将已挂载的文件系统重新挂载为只读。例如,

sudo mount -o remount,ro /home

。 这种方式的修改是临时的,系统重启后会失效。

使用 OverlayFS: OverlayFS 允许你将一个只读的文件系统和一个可写的文件系统合并成一个单一的挂载点。所有写入操作都会写入到可写的文件系统中,而原始的只读文件系统保持不变。这对于创建只读的容器镜像非常有用。

使用 Live CD/USB: Live CD 或 USB 通常将整个根文件系统设置为只读,以防止用户修改系统。

选择哪种方法取决于你的具体需求。 如果你需要永久性地将某个分区设置为只读,修改

/etc/fstab

可能是最直接的方式。 如果你只需要临时地将某个文件系统设置为只读,使用

mount

命令可能更方便。

如何监控只读用户的行为?

即使只读用户无法修改文件,监控他们的行为仍然很重要,以确保安全和合规性。

Shell历史记录: 即使用户被限制登录,他们仍然可能执行一些命令。查看用户的 Shell 历史记录可以帮助你了解他们的行为。Shell 历史记录通常保存在用户主目录下的

.bash_history

文件中。

系统日志: 系统日志(例如

/var/log/auth.log

/var/log/syslog

)记录了用户登录、注销和执行的各种操作。你可以使用

grep

命令或专业的日志分析工具来搜索与只读用户相关的事件。

Auditd: Auditd 是 Linux 的一个强大的审计工具,可以记录系统上发生的几乎所有事件,包括文件访问、进程创建和系统调用。你可以配置 Auditd 规则来监控只读用户的特定行为。例如,你可以创建一个规则来记录用户尝试写入特定文件或目录的行为。

SELinux/AppArmor: SELinux 和 AppArmor 是 Linux 的安全模块,可以提供强制访问控制。你可以使用 SELinux 或 AppArmor 来限制只读用户的权限,并监控他们的行为。

以上就是Linux如何创建只读用户账户的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Windows中使用Unix命令ls -l及快捷命令ll实现
上一篇 2025年11月7日 15:14:52
Laravel请求处理:如何区分不同请求类型?
下一篇 2025年11月7日 15:15:03

相关推荐

  • iPhone如何实现一键迁移数据

    一键换机:告别复杂步骤 当你拿到一台全新的iPhone,面对旧设备里的海量数据,是否曾感到无从下手?过去,迁移数据常常需要连接电脑、使用数据线,甚至依赖第三方工具,流程繁琐又费时。如今,iPhone提供了一键迁移功能,让整个过程变得异常简单。只需几个步骤,你的照片、视频、通讯录、短信记录以及各类应用…

    2026年9月22日
    200
  • 谷歌浏览器官网直接进入 Chrome浏览器官方登录入口

    谷歌浏览器官网直接进入方式为访问https://www.google.com/chrome/,该网站是Chrome官方登录入口,提供跨平台同步、V8引擎加速、地址栏集成搜索、自动填充表单等核心功能,支持极简界面、深色模式、自定义新标签页及侧边栏服务,具备安全浏览、隐私沙盒、密码检查和无痕模式等安全机…

    2026年9月22日
    100
  • Linux命令行中last命令的实用技巧

    last命令用于查看Linux用户登录历史,读取/var/log/wtmp文件。1. 查看指定用户登录记录:执行last username(如last alice)可审计特定账户活动;2. 限制输出行数:使用last -n 10或last -10避免刷屏,便于脚本处理;3. 识别远程登录来源:pts…

    2026年9月22日
    000
  • 拼多多商家版怎么赚钱?拼多多商家版怎么赚钱提现

    答案:通过拼多多商家版开设虚拟资料店铺,缴纳500元保证金注册个人店,选品如PPT模板、教程等高需求低风险商品,利用阿奇索等工具设置自动发货,结合低价引流和付费推广提升销量,订单完成后资金在T+1或T+7结算周期后提现至银行卡。 如果您想通过拼多多商家版实现盈利并完成资金提现,需要了解其核心的运营模…

    2026年9月22日
    400
  • 如何在mysql中实现热备份

    最推荐的MySQL热备份方案是结合Percona XtraBackup全量备份与binlog增量备份,并通过主从复制实现高可用。首先使用XtraBackup对InnoDB引擎进行在线全量备份,无需锁表;备份后执行–prepare确保数据一致性,恢复时用–copy-back还原…

    2026年9月22日
    000
  • 如何在GravitDesigner中使用AI裁剪图片?快速掌握裁剪技巧

    如何在GravitDesigner中使用AI裁剪图片?快速掌握裁剪技巧如何在GravitDesigner中使用AI裁剪图片?快速掌握裁剪技巧如何在GravitDesigner中使用AI裁剪图片?快速掌握裁剪技巧如何在GravitDesigner中使用AI裁剪图片?快速掌握裁剪技巧

    Gravit Designer没有内置AI智能抠图功能,但通过形状裁剪(剪切蒙版)、路径编辑和布尔运算等工具组合,可实现高精度、非破坏性的精细化裁剪。其“智能”体现在非破坏性编辑、矢量级精度和工具协同的灵活性,虽需手动操作,却能完全掌控裁剪过程,适合追求专业输出的设计师。 ☞☞☞AI 智能聊天, 问…

    2026年9月22日 用户投稿
    100
  • VSCode搭建Vivado开发环境(详细配置指南,FPGA开发必备)

    答案:通过安装Verilog/SystemVerilog和Tcl扩展、配置Linter进行语法检查,并在tasks.json中定义调用Vivado命令行的任务,可在VSCode中实现RTL开发、语法高亮、智能提示及综合仿真等自动化流程,提升FPGA开发效率。 将VSCode作为Vivado的开发前端…

    2026年9月22日
    000
  • iPhone如何进行批量修图

    利用相册内置编辑功能 打开 iPhone 相册,选择你希望批量处理的多张图片。点击任意一张进入编辑模式,进行基础调整,例如亮度、对比度、饱和度或色调等。完成单张编辑后,切勿点击“完成”,而是点击左上角的“全选”选项,此时系统会将你刚才的编辑参数同步应用到所有已选照片上,从而实现快速批量修图。 借助第…

    2026年9月22日
    000
  • rm -rf 误删文件?别急,或许有救!

    rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!

    立即采取行动! 在生产环境中,我们应尽量避免进行风险操作。但如果不慎犯错,如何挽救呢?让我分享一个故事:上周我为了打包一个应用,需要整理Ubuntu 16.04上的线上数据,不小心删除了一个数据文件,幸而最终有惊无险,现记录如下。 extundelete 我的恢复计划主要依赖于一个工具——extun…

    2026年9月22日 用户投稿
    000
  • MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作

    MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作

    mysql跨数据库查询的核心方法是在sql语句中通过“数据库名.表名”方式指定不同数据库的表,实现数据联动。1.在同一个mysql实例内,直接使用数据库名加表名进行关联查询,如db_user.users和db_order.orders,前提是用户需具备相应权限且建议对关联字段建立索引以提升性能;2.…

    2026年9月22日 用户投稿
    400
  • Procreate的AI混合工具怎么用?提升数字绘画效率的实用教程

    Procreate虽无直接名为“AI混合工具”的功能,但其图层混合模式、涂抹工具、Alpha锁定与剪裁蒙版等设计,共同构成了智能化的色彩混合体系。通过正片叠底、滤色等模式可实现自然光影叠加,涂抹工具结合纹理笔刷能模拟真实颜料融合,Alpha锁定和剪裁蒙版则确保混合精准可控。分层渐变、低不透明度叠加及…

    2026年9月22日
    700
  • 不露脸也能赚钱:蝴蝶号适合懒人操作的无声视频变现方法

    不露脸也能赚钱:蝴蝶号适合懒人操作的无声视频变现方法不露脸也能赚钱:蝴蝶号适合懒人操作的无声视频变现方法不露脸也能赚钱:蝴蝶号适合懒人操作的无声视频变现方法不露脸也能赚钱:蝴蝶号适合懒人操作的无声视频变现方法

    蝴蝶号是通过无声视频形式吸引观众实现流量变现的一种创作策略。它适合零基础小白,因不露脸、无需口才或专业设备,仅需手机、剪辑软件和创意即可操作。制作关键在于视觉冲击力与情感共鸣,包括优质素材、节奏感剪辑、契合音乐、点睛文字。实用工具如剪映、capcut、达芬奇或adobe premiere pro。其…

    2026年9月22日 用户投稿
    100
  • VSCode高效配置Node.js:npm集成、中文报错、断点调试

    答案:高效配置VSCode与Node.js需确保Node.js和npm为最新版,利用集成终端运行命令,通过jsconfig.json或tsconfig.json优化项目配置,解决中文乱码需设置终端编码为UTF-8并选择支持中文的字体,调试核心是正确配置launch.json文件,使用pwa-node…

    2026年9月22日
    400
  • MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑

    MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑

    提升mysql多表查询性能与可读性的方法包括:1. 优化索引,确保join和where字段有合适索引,理解复合索引左前缀原则;2. 使用cte分解逻辑,使结构清晰易维护;3. 利用sublime text插件如sqltools、sublimelinter提升编写效率;4. 拆解复杂逻辑,逐步构建查询…

    2026年9月22日 用户投稿
    100
  • unix怎么安装php_unix系统安装php环境指南

    首先确认系统环境并检查是否已安装相关软件,然后选择包管理器或源码编译方式安装PHP;推荐使用包管理器快速安装,如Debian/Ubuntu用apt,CentOS/RHEL/Fedora用yum或dnf,FreeBSD用pkg;安装后配置Web服务器,Apache需加载mod_php或集成PHP-FP…

    2026年9月22日
    300
  • 如何在MXNet中训练AI大模型?高效构建深度学习的详细步骤

    如何在MXNet中训练AI大模型?高效构建深度学习的详细步骤如何在MXNet中训练AI大模型?高效构建深度学习的详细步骤如何在MXNet中训练AI大模型?高效构建深度学习的详细步骤如何在MXNet中训练AI大模型?高效构建深度学习的详细步骤

    答案是优化数据管道、采用分布式训练、应用内存优化技术、精细调参。具体包括:使用RecordIO格式和DataLoader多进程预取提升数据加载效率;通过KVStore选择device或dist_sync/dist_async实现单机或多机分布式训练;利用混合精度训练、梯度累积和模型符号化降低显存占用…

    2026年9月22日 用户投稿
    000
  • itextpdf freemarker渲染

    关于打印pdf操作的需求,经过研究,发现以下两种方法: 在现有的模板上进行编辑,这种方法操作难度较大。而通过FreeMarker生成静态页面,然后转换为HTML,操作更为顺畅。动态生成PDF的方法在网上参考较多,经过对比,我认为使用FreeMarker结合IText生成PDF最为简单。参考链接为ht…

    2026年9月22日
    300
  • VSCode精简配置Git:中文提交记录、分支可视化、冲突解决

    首先解决中文乱码需配置Git和VSCode编码为UTF-8,其次通过GitLens或Git Graph实现分支可视化,最后利用VSCode内置的冲突解决工具高效处理合并冲突,全面提升Git使用体验。 在VSCode里用Git,我总觉得能再顺手点。特别是处理中文提交信息、想直观看看分支图,或者面对恼人…

    2026年9月22日
    500
  • Linux驱动开发-编写DS18B20驱动

    Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动

    引言 本文详细介绍了如何在linux系统下为ds18b20温度传感器编写驱动程序,以测量环境温度,并将ds18b20注册为字符设备,通过文件接口将温度数据传递给应用层。 本文使用的开发板是友善之臂的Tiny4412开发板,搭载三星的Exynos-4412 CPU,主频为4核1.5GHz,运行的Lin…

    2026年9月22日 用户投稿
    100
  • 如何用AdobePremierePro制作AI视频?快速上手AI视频剪辑的完整教程

    如何用AdobePremierePro制作AI视频?快速上手AI视频剪辑的完整教程如何用AdobePremierePro制作AI视频?快速上手AI视频剪辑的完整教程如何用AdobePremierePro制作AI视频?快速上手AI视频剪辑的完整教程如何用AdobePremierePro制作AI视频?快速上手AI视频剪辑的完整教程

    答案:在Premiere Pro中制作AI视频需整合第三方AI工具生成的素材并进行精细化剪辑。首先明确主题,利用Midjourney、RunwayML、ElevenLabs等工具生成图像、视频和音频;随后导入PR并分类组织,通过粗剪与同步构建叙事框架;接着运用Lumetri Color统一色调,基本…

    2026年9月22日 用户投稿
    1200

发表回复

登录后才能评论
关注微信