权限在Linux系统相当重要,当你掌握了它,将在Linux系统中自由地穿梭。
这篇就来讲:除了 sudo,还有哪些正规、安全的方法解决编辑器保存权限问题。
一、修改文件所有者(chown)—— 最常用、最推荐
如果某个配置文件 / 目录你需要长期编辑,每次都输 sudo 很麻烦,可以直接把文件所有者改成当前用户。
用法
sudo chown $USER:$USER 文件名
例如:
sudo chown $USER:$USER /etc/apt/sources.list
之后你再用 普通权限 打开 Vim、VS Code、gedit 都能直接保存,不再报错,但是系统级文件不建议这么操作。
适用场景
- 个人电脑
- 自己常用的配置文件
- 开发环境配置(如 nginx、docker、ssh 配置)
不适用
- 系统关键文件(
/etc/passwd、/etc/sudoers等) - 多人共用服务器
二、修改文件权限(chmod)—— 简单但要谨慎
直接开放写入权限,让普通用户可以写。
给用户加写权限
sudo chmod u+w 文件名
开放所有用户读写(不推荐)
sudo chmod 666 文件名
很多人为了方便直接给满权限:
sudo chmod 777 目录名
警告:
777/666会带来安全风险,只建议临时使用,不要用于系统目录。
三、将用户加入对应用户组 —— 更规范的权限管理
很多系统文件属于特定用户组,如 www-data、docker、sudo、lp 等。
把自己加入该组,即可无需 sudo 直接编辑。
示例:让普通用户可操作 nginx 相关文件
sudo usermod -aG www-data $USER
示例:无需 sudo 使用 docker
sudo usermod -aG docker $USER
修改后注销重新登录生效。
这种方式比直接 chown 更规范,也更安全。
四、使用 ACL 精细权限(更灵活,不破坏原有权限)
Ubuntu 默认支持 ACL,可以给单个用户单独授权,不影响原有所有者和组。
先安装 acl
sudo apt install acl
给当前用户加读写权限
sudo setfacl -m u:$USER:rw 文件名
给目录加递归权限
sudo setfacl -R -m u:$USER:rwx 目录名
查看 ACL 权限
针对某个文件
getfacl 文件名
优点:
- 不改动原有属主、属组
- 可单独给某一个用户授权
- 适合多人服务器、开发环境
五、使用 pkexec 运行图形编辑器(比 sudo 更适合桌面)
gedit、VS Code、sublime 这类图形程序,不建议直接用 sudo 启动,容易搞乱配置文件权限。
更安全的方式是用 pkexec(PolicyKit 认证):
pkexec gedit /etc/hosts
会弹出图形化密码框,验证后以管理员权限编辑,更符合桌面使用习惯。
六、编辑 /etc/sudoers 免密码(适合自动化脚本)
如果你希望某些命令不需要输密码,可以配置 sudo 免密。
sudo visudo
添加:
你的用户名 ALL=(ALL) NOPASSWD: /usr/bin/vim
你的用户名 ALL=(ALL) NOPASSWD: /usr/bin/gedit
之后执行这些编辑器就不需要密码了:
sudo vim /etc/hosts
适合:
- 脚本自动修改配置
- 频繁编辑系统文件的用户
七、临时复制到家目录修改,再覆盖回去
如果你已经编辑一半、不想重新开,也不想改权限:
- 保存到自己目录
cp /etc/xxx ~/xxx
- 在家目录随意编辑
- 再用 sudo 覆盖回去
sudo mv ~/xxx /etc/xxx
适合:
- 临时修改一次
- 不想破坏原权限
八、不推荐的危险做法
chmod 777系统目录- 直接登录 root 用户长期使用
- 随意修改
/etc/sudoers导致权限漏洞 - 用
sudo启动桌面软件并长期使用,造成配置权限错乱
总结
在 Ubuntu 26.04 中,编辑器保存权限问题本质都是 Linux 权限机制,不只有 sudo 能解决:
- 长期自用 → chown
- 规范共享 → 加入用户组 / ACL
- 桌面图形编辑器 → pkexec
- 临时修改 → 复制到家目录再覆盖
- 脚本自动化 → sudo 免密配置
合理使用权限,既能方便编辑,又能保证系统安全。