visudo 退出保存

部署运行你感兴趣的模型镜像

环境

Ubuntu 16.04TLS

说明

Linux普通用户使用sudo权限每次都要输入密码,虽然提高了安全系数,但是长久以往会感觉很麻烦。

修改配置文件

visudo
User_Alias ADMINS = user1, user2
ADMINS ALL = NOPASSWD: ALL
root ALL=(ALL) ALL

第一行为user1和user2指定一个ADMINS别名,第二行赋予它们权限。ALL = NOPASSWD: ALL表示有ADMINS别名的用户可以运行sudo命令。该行中第二个ALL代表允许执行任何命令,第一个ALL表示允许在任何主机运行命令。

保存并退出

提示:执行sudo visudo,默认是使用nano编辑器,所以保存退出的时候需要通过快捷键的方式来完成

  • 执行“Ctrl+O”
  • 执行完“Ctrl+O”后,会输出”File Name to Write sudoers.tmp”,在tmp后执行回车
  • 执行“Ctrl+X”退出

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

<think> 我们正在讨论如何正确保存退出 `visudo` 编辑器。`visudo` 是编辑 `/etc/sudoers` 文件的推荐工具,因为它会在保存时进行语法检查,避免配置错误导致 sudo 不可用。 ### 保存退出 `visudo` 的步骤 1. **打开编辑器**: 使用命令 `sudo visudo` 打开默认编辑器(通常是 `nano` 或 `vi`)。 2. **编辑内容**: 根据需求修改文件内容。 3. **保存退出**: - **如果使用 `nano` 编辑器**: - 按 `Ctrl + O` 保存文件(写入) - 按 `Enter` 确认文件名(默认是 `/etc/sudoers.tmp`,但 `visudo` 会处理) - 按 `Ctrl + X` 退出 - **如果使用 `vi` 或 `vim` 编辑器**: - 按 `Esc` 进入命令模式 - 输入 `:wq` 保存退出(或者 `:x!` 强制保存退出) 4. **语法检查**: 保存时 `visudo` 会自动检查语法。如果发现错误,它会提示: ``` >>> /etc/sudoers: syntax error near line 28 <<< What now? ``` 此时你有三个选择: - 按 `e` 重新编辑 - 按 `x` 退出而不保存更改 - 按 `Q` 强行退出(不推荐,可能导致 sudo 不可用) ### 重要提示 - **不要直接编辑 `/etc/sudoers`**:始终使用 `visudo`,因为它提供语法检查和文件锁机制。 - **避免使用其他编辑器**:如果设置了 `EDITOR` 环境变量,确保编辑器是可靠的(如 `nano`, `vim`)。 - **备份习惯**:在编辑前可以备份: ```bash sudo cp /etc/sudoers /etc/sudoers.bak ``` ### 示例:自动化编辑(仅限熟练使用) ```bash # 使用 sed 临时添加规则(生产环境慎用) echo "username ALL=(ALL) NOPASSWD:ALL" | sudo EDITOR='tee -a' visudo ``` ### 恢复损坏的 sudoers 如果错误保存导致 sudo 不可用: 1. 通过 root 用户或单用户模式恢复 2. 使用备份文件: ```bash pkexec visudo -c -f /etc/sudoers.bak && cp /etc/sudoers.bak /etc/sudoers ``` §§相关问题§§: 1. 如何更改 `visudo` 的默认编辑器为 vim? 2. 如何配置 `visudo` 的语法检查选项? 3. 当 `visudo` 报告语法错误时,如何定位具体错误行? 4. 如何通过脚本自动化向 sudoers 添加多行配置? </think> ### 正确保存退出 `visudo` 当使用 `visudo` 编辑 sudoers 文件时,保存退出的操作取决于使用的编辑器(通常是 `nano` 或 `vi`)。以下是两种主要情况的解决方案: --- #### 情况 1:使用 **nano** 编辑器(Ubuntu 默认) ```bash # 保存退出步骤: 1. 完成编辑后,按组合键: Ctrl + O (字母O) 2. 按 Enter 确认文件名(保持默认 /etc/sudoers.tmp) 3. 按组合键: Ctrl + X 退出编辑器 # 验证是否成功: [保存成功] 显示 "Wrote X lines" [保存失败] 显示错误信息,按 Ctrl+C 返回编辑 ``` **完整操作流程示例**: ```bash sudo visudo # 编辑内容... # 按 Ctrl+O → Enter → Ctrl+X ``` --- #### 情况 2:使用 **vi/vim** 编辑器 ```bash # 保存退出步骤: 1. 按 Esc 键确保在命令模式 2. 输入 :wq 然后按 Enter (w = 写入, q = 退出) # 备选方案: :w! # 强制保存(只读文件) :q! # 不保存强制退出 ``` **完整操作流程示例**: ```bash # 切换默认编辑器为 vim export EDITOR=vim sudo -E visudo # -E 保留环境变量 # 编辑内容... # 按 Esc → :wq → Enter ``` --- ### ⚠️ 重要注意事项 1. **语法检查阶段**: ```bash # 保存后会自动进行语法检查 [成功] 显示 "/etc/sudoers.tmp parsed OK" [失败] 显示错误行号及建议操作: What now? Options are: (e)dit sudoers file again e(x)it without saving changes to sudoers file (Q)uit and save changes to sudoers file (DANGER!) # 建议操作: e → 修复错误 x → 放弃更改 ``` 2. **文件锁定问题解决**: ```bash # 当出现 "busy" 错误时 sudo rm -f /etc/sudoers.tmp # 删除临时锁文件 sudo pkill -9 nano # 终止残留进程 sudo visudo # 重新尝试 ``` 3. **安全备份实践**: ```bash # 编辑前自动创建备份 sudo cp /etc/sudoers /etc/sudoers.bak sudo visudo ``` --- ### 自动化保存脚本 ```bash #!/bin/bash # 安全编辑并自动保存 sudoers backup_sudoers() { sudo cp /etc/sudoers /etc/sudoers.bak.$(date +%F) } edit_sudoers() { # 使用 nano 作为编辑器 export EDITOR=nano sudo -E visudo } main() { backup_sudoers if edit_sudoers; then echo "✅ sudoers 更新成功" else echo "❌ 更新失败,恢复备份" sudo cp /etc/sudoers.bak.$(date +%F) /etc/sudoers fi } main ``` **使用说明**: 1. 保存为 `safe-visudo.sh` 2. 运行 `chmod +x safe-visudo.sh` 3. 执行 `./safe-visudo.sh`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值