开发者社区> 问答> 正文

以root身份安装的sudo,其它用户使用时为什么要输入密码?

系统环境:Cent OS 5.8

$ su -
(输入root密码)
# yum install sodu
# su - www
$ sudo make install
[sudo] password for www:

实际上www用户是没有密码的(SSH登录),这是怎么回事?

展开
收起
a123456678 2016-06-16 15:52:58 4085 0
1 条回答
写回答
取消 提交回答
  • 额 ... 其实我挺犹豫要不要写这个回答的 ... 因为楼上前辈的答案是错的 ...

    执行 sudo 命令需要输入密码 ... 与你以 root 身份安装它没有关系 ...

    事实上如果你没有 root 权限根本无法完成它的安装 ...

    之所以会让你输入密码 ... 是因为 sudo 提权只有两种状态 ... 输入密码提权和无密码提权 ...

    默认的配置是所有用户都需要输入密码提权 ... 而这种方式不支持空密码 ...

    也就是其实在这个时候 ... 你输入任何密码都是错的 ...

    解决方案很简单 ... 就是我刚刚提到的无密码提权 ... 只是 非常非常非常不建议 这么做 ...

    你要注意我连用了三个非常 ... 如果你知道了这事情的风险还执意而为之 ... 具体操作如下 ...

    用 visudo 命令打开 /etc/sudoer ... 按照如下方式修改 ...

    # User privilege specification

    root ALL=(ALL) ALL
    www ALL=(ALL) NOPASSWD: /usr/bin/make
    最后一行是需要你添加的 ...

    这时 www 用户在执行 sudo make 命令的时候无需输入密码 ...

    哪怕这个用户自身有密码也不用输入 ... 直接就可以像 root 一样执行命令 ...

    当然 sudo 其他命令的时候依然需要输入自身的密码 ...

    也就是说如果这个用户使用空密码则依然无法 sudo 其他命令 ...

    如果这样依然无法满足你 ... 你也可以使用 NOPASSWD: ALL 来给这个用户完整的 root 权限 ...

    这种方式 ... 在自己确认安全的机器上图省事也就罢了 ... 千万别在有外网 IP 的机器上这么做 ...

    恩 ... 就是这样了 ... 修正前辈答案这种事情 ... 很忐忑啊 ...

    2019-07-17 19:41:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载