Gag*_*ell 11 usb sudo usb-drive
我喜欢用我的笔记本电脑在公共场合工作,但我也喜欢在没有密码的情况下使用 sudo。根据我现在所知道的,我会NOPASSWD
在我的sudoers
文件中使用该选项,但当然任何人都可以根据需要使用 sudo。
我想到的一个重要想法是存在锁定程序。 但是,我更喜欢使用闪存驱动器(并且仅将其用于 sudo),因为 (1) 它更快,(2) 比输入我的密码更容易,以及 (3) 我不关心人们访问我的内容也不做恶意事情:笔记本电脑会在其他人周围公开,而我的笔记本电脑上唯一的知识产权是一个非常基本的 Angular 项目。
此外,我和其他人可能希望防止在未运行 X 或 Wayland 环境的计算机上滥用 sudo。我目前的工作需要一个现代的网络浏览器,但如果我有机会不使用 X 而只使用多路复用器,我会这样做——我的笔记本电脑有点旧而且速度很慢。
我想做的是将密钥文件放在闪存驱动器上,当我在笔记本电脑旁时只需插入闪存驱动器,当我离开它时将其取出。
所以这里是我从这个问题衍生的三个问题:
(4. [也许是一个无关紧要的问题] 这个包可以分开还是需要是 sudo 的一个分支?)
如果相关,我的设置是带有 bspwm 的 Arch Linux,没有桌面环境。我的大部分工作是在 urxvt / vim 中进行 Web 开发并使用 Chrome 进行检查。
我不确定我是否理解为什么NOPASSWD
选项本身不能满足您的要求,但如果您想要要求闪存驱动器的存在,我可以想到几乎可以满足您正在寻找的东西。
这更多的是一种解决方法,但您可以创建一个本地管理用户,例如superuser
,并授予该用户无密码sudo
权限,即将以下行添加到您的/etc/sudoers
文件中:
superuser ALL=(ALL) NOPASSWD:ALL\n
Run Code Online (Sandbox Code Playgroud)\n\n然后,您可以禁用密码登录并为该用户配置仅密钥 SSH 身份验证,即运行passwd -l superuser
以下节并将其添加到您的/etc/ssh/sshd_config
:
Match user superuser\nPasswordAuthentication no\n
Run Code Online (Sandbox Code Playgroud)\n\n然后为此用户创建 SSH 密钥对。将公钥添加到/home/superuser/.ssh/authorized_keys
闪存驱动器并将私钥放在闪存驱动器上。然后,当您想要使用该superuser
帐户时,请插入闪存驱动器并superuser
使用您的私钥通过 ssh 登录到该帐户。瞧\xc3\xa0!您现在sudo
为您的用户设置了无密码。当然,完成后您仍然需要退出 shell 会话 - 拔出闪存驱动器是不够的。虽然我猜你也可以设置一个预命令挂钩来检查私钥并在私钥不存在(或者无效)时自动退出。