麒麟os修改文件系统读写权限需先用findmnt检查挂载选项,若含ro/noexec则执行sudo mount -o remount,rw修复,再用chmod -r或find命令精准设置目录755与文件644权限。

在麒麟操作系统中修改文件系统的读写权限,需区分“文件/目录级权限”与“文件系统挂载级权限”——前者用chmod/chown调整访问控制位,后者需通过remount命令变更挂载选项,若目标分区被设为noexec、ro等内核级限制,仅改文件权限无效。
确认目标路径所属文件系统及当前挂载状态
打开终端,执行df /path/to/target获取设备路径(如/dev/sda2),再运行findmnt -n -o SOURCE,TARGET,FSTYPE,OPTIONS /path/to/target。输出中若OPTIONS字段含ro、noexec或nosuid,说明该分区在挂载时已被强制只读或禁用执行,此时chmod命令将始终提示“权限不足”,必须先修正挂载参数。
若输出不含ro但含relatime或rw,则问题不在挂载层,可跳过本阶段直接处理文件权限。
临时将文件系统重新挂载为读写模式
执行sudo mount -o remount,rw /mount/point,其中/mount/point为上一步查得的TARGET值(如/data)。该操作无需重启,立即生效。
【若提示“mount: /xxx is busy”或“device is mounted read-only”,说明有进程正占用该挂载点,需先终止相关进程或使用lsof + umount -l强制卸载】
验证是否成功:再次运行findmnt -n -o OPTIONS /mount/point,确认输出中已出现rw且无ro。
永久生效:修改/etc/fstab配置
第一步:备份原配置sudo cp /etc/fstab /etc/fstab.bak,防止误编辑导致系统无法启动。
第二步:用nano或vim打开fstabsudo nano /etc/fstab,找到对应设备行(通常以UUID或/dev/sdX开头)。
第三步:定位第4列(options字段),将原有值(如defaults,noexec)改为defaults,rw;若原为defaults,直接在末尾添加,rw即可。注意不要删除defaults,否则可能丢失关键挂载参数。
第四步:保存退出,执行sudo mount -a测试配置语法是否正确——无报错即表示修改有效,下次重启后自动按新选项挂载。
同步修正文件/目录权限(挂载修复后必做)
方法一:快速统一赋权(开发调试适用)
执行sudo chmod -R u+rw,g+rw,o+r /mount/point,为所有者和组开放读写,其他用户仅保留读权限。此操作不设执行位,避免普通文件被误执行。
方法二:精准分离目录与文件权限(生产环境推荐)
① 先确保所有子目录可进入:sudo find /mount/point -type d -exec chmod 755 {} \;
② 再设普通文件为只读写:sudo find /mount/point -type f -exec chmod 644 {} \;
③ 对Shell脚本单独授权:sudo find /mount/point -name "*.sh" -exec chmod 755 {} \;
方法三:符号模式微调(保留原始权限结构)
执行sudo find /mount/point -type d -exec chmod u+w,g+w {} \;,仅对目录追加写权限,不改动已有读/执行位,规避误删风险。











