在linux系统中,有时需要获取admin权限执行某些操作,假如用户只有sudo权限,则每次需要su到admin才行,步骤较为繁琐,下面介绍一种通过sudo权限修改admin密码的方法(修改的前提是不影响别的用户使用,在公用机器上不建议修改密码)。
步骤一:打通本地用户到root的信任关系
之所以要打通到root的信任关系,是因为只有root才有权限修改别的用户的密码。假设本地用户名为username,打通步骤如下:
a、进入本地的.ssh目录:cd ~/.ssh
b、计算本用户的公钥:ssh-keygen -t rsa(计算过程中如遇询问直接回车默认)值得注意的是,每计算一次公钥,则之前的公钥全部失效,因此假如已经有计算好的公钥文件id_rsa.pub,则无需再计算一次。正常情况下,计算之后会生成两个新文件:id_rsa、id_rsa.pub(注:不是id_dsa.pub)
c、打印本用户公钥内容:cat id_rsa.pub
d、将本用户公钥追加到root的ssh信任文件中:sudo vim /root/.ssh/authorized_keys,将上一步打印的公钥追加到最后一行之后(需另起一行)。注意,id_rsa.pub内容一般较长,追加到信任文件时不要按行复制,应该将id_rsa.pub的内容整体复制进去,以免产生换行符,导致建立信任关系失效
e、追加成功后保存。至此,本地用户username到root的信任关系已经打通,尝试用 ssh root@localhost 命令来验证,如果不提示输密码,则说明信任关系建立成功
f、ssh到root下,用如下命令修改admin密码:passwd admin 需输入两次新密码确认
g、修改成功后,建议将刚追加到/root/.ssh/authorized_keys中的本地用户公钥sudo删除,以免留下安全隐患