Linux设置sudo会话密码的超时时长

优快云GitHub
Linux设置sudo会话密码的超时时长AderXCoding/system/tools/sudo_timeout


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请注明出处, 谢谢合作

sudo 命令是权限委派的命令, 可以为普通用户赋予 root 权限在实际应用中是非常常用的, 默认情况下 sudo 命令会话时间是 5分钟. 本文中, 我们将介绍在 Ubuntu Linux 中定制 sudo 密码会话超时的时间.

1 sudo 的超时


出于对系统安全问题的考虑, Ubuntu 系统一般在安装时就默认禁用root 帐号, 以 sudo 命令来代替所有需要管理员的操作.

Ubuntu 系统中, 默认的 sudo timeout 时间是 5 分钟, 但是有些用户觉得五分钟的时间太短, 每次都要输入密码也很麻烦. 那么, Ubuntu 系统中该如何修改 sudo 的默认 timeout时间呢?

2 定制 sudo 超时时长


要设置 sudo 密码超时值, 请使用 passwd_timeout 参数.

  • 编辑 /etc/sudoers

首先使用超级用户打开 /etc/sudoers, 可使用vim /etc/sudoers 或者 visudo 命令打开 /etc/sudoers 文件, 如下所示 :

sudo visudo
  • 设置 timeout 时间

请找到下面行

Defaults env_reset

改变此行为下面这样

Defaults env_reset, timestamp_timeout=x

x 就是代表时间, 单位为分钟, 你可以设置为 1030 ,表示 10 分钟或半小时.

超时设置

你可以以分钟设置为你所需的任何时间, 它会在超时之前一直等待.

  • 如果要为每个执行的 sudo 命令弹出密码提示, 你也可以将时间设置为 0, 表示超时等待时间为 0, 则每次使用 sudo 均要求输入密码.

每次都必须输入密码

  • 或者通过设置值 -1, 永久禁用密码提示. 这样当你在注销或退出 terminal 之前, 都会记住密码. 这时输入 sudo -K 就可以强制退出 sudo

记住密码

3 参考资料


参照Aaron Kili–How to Keep ‘sudo’ Password Timeout Session Longer in Linux,
翻译geekpi, 校对:wxy, 译文 如何在 Linux 中让 sudo 密码会话的超时更长些


知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请注明出处, 谢谢合作.

### 如何在Linux中重置遗忘的sudo密码Linux系统中,`sudo` 用户用于执行管理员级别的操作。如果忘记了 `sudo` 密码,可以通过特定方法重新设置密码。以下是针对不同场景下的解决办法。 #### 方法一:通过单用户模式重置密码 当只有单一 `sudo` 用户且忘记密码时,可以进入单用户模式完成密码重置过程[^1]: 1. **重启系统并中断启动流程** 在GRUB引导菜单加载期间按下键盘上的任意键暂停自动计时器,选择高级选项中的恢复模式项。 2. **编辑内核参数** 使用方向键选中带有 `(recovery mode)` 的条目后按 `e` 键进入编辑界面。找到以 `linux` 开头的一行,在这一行最后追加字符串 `init=/bin/bash` 并回车确认修改。 3. **挂载根文件系统为可写状态** 进入命令提示符环境之后运行以下两条命令: ```bash mount -o remount,rw / ``` 4. **更新目标用户的密码** 输入如下命令替换 `<username>` 为目标用户名部分: ```bash passwd <username> ``` 随即按照屏幕指示设定新的密码即可。 5. **重启设备恢复正常工作流** 完成上述步骤以后退出当前shell会话并通过 reboot 命令使计算机返回到标准多用户服务级别: ```bash exec /sbin/init ``` #### 方法二:利用另一具有sudo权限的账号 如果有其他可用的 `sudo` 账号,则可以直接切换至那个账户来进行修复作业[^2]: ```bash su - passwd target_user_name ``` 这里需要注意的是将 `target_user_name` 替换成实际需要调整密码的那个具体个人资料名称。 #### 方法三:WSL环境下处理方式 对于Windows Subsystem for Linux (WSL),由于架构差异较大,因此采用不同的策略来应对相同的问题情形[^3]: 1. 利用PowerShell或者CMD工具改变默认登陆主体身份成为root; 2. 执行常规意义上的password reset operation against the desired account; 3. 将先前配置好的normal user reassign as default login entity again. #### 注意事项 尽管能够轻易地更改他人电脑里的数据访问控制机制,但这并不意味着应该滥用这种能力去窥探别人隐私或是破坏他们的财产安全。始终尊重他人的所有权边界非常重要[^5]。 ```python import os os.system('sudo passwd username') print("Password has been successfully changed.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值