当你使用 sudo su
命令时,sudo
会根据 /etc/sudoers
文件中的配置来验证你是否有权限以超级用户的身份执行命令。虽然 /etc/sudoers
文件中没有显式配置 nopasswd
选项来跳过密码验证,但是你可能已经在一定时间内通过 sudo
命令输入了超级用户密码,并且 sudo
默认会在一定时间内缓存密码。
缓存密码是为了避免在特定时间段内重复输入密码。默认情况下,sudo
会在首次输入密码之后的一段时间内免去重复输入密码。这个时间段可以在 /etc/sudoers
文件中使用 timestamp_timeout
选项进行配置。
如果你在刚刚使用 sudo
命令输入了超级用户密码,然后立即使用 sudo su
命令,sudo
会认为你在同一时间段内仍然具有已验证的特权,因此不再要求输入密码。但是如果你在超时时间内没有再次使用 sudo
命令,那么就会再次要求输入超级用户密码以获得特权。
需要注意的是,直接使用 sudo su
命令不是推荐的方式,因为它会创建一个额外的 shell 会话,并且需要知道超级用户的密码。更好的方式是使用 sudo
命令来执行需要超级用户权限的命令,例如 sudo command_name
。这种方式可以避免在大多数情况下使用超级用户权限,并能够更好地跟踪命令的使用。