提问人:Magnus Lind Oxlund 提问时间:1/31/2023 最后编辑:Magnus Lind Oxlund 更新时间:8/10/2023 访问量:61
创建没有密码以明文形式显示的MySQL用户?
Create MySQL user without password appearing in cleartext?
问:
我很好奇是否有一种方法可以创建受密码保护的用户,而不允许密码从字面上出现在表达式中或在此过程中的任何时候在命令行上取消屏蔽。
在MySQL官方文档中,提到在命令行上提交未屏蔽的密码,例如在登录帐户时,被认为是不安全的:
使用 mysqladmin 设置密码应被视为不安全。在某些系统上,您的密码对系统状态程序(如 ps)可见,其他用户可能会调用这些程序来显示命令行。MySQL客户端通常在初始化序列中用零覆盖命令行密码参数。但是,该值仍然有一个短暂的间隔可见。此外,在某些系统上,这种覆盖策略是无效的,密码对ps仍然可见(SystemV,Unix系统和其他系统可能会受到此问题的影响。1
这很方便,但不安全。在某些系统上,您的密码对系统状态程序(如 ps)可见,其他用户可能会调用这些程序来显示命令行。MySQL客户端通常在初始化序列中用零覆盖命令行密码参数。但是,该值仍然有一个短暂的间隔可见。此外,在某些系统上,这种覆盖策略是无效的,密码对ps仍然可见(SystemV,Unix系统和其他系统可能会受到此问题的影响。阿拉伯数字
如果操作环境设置为在终端窗口的标题栏中显示当前命令,则只要命令正在运行,密码就保持可见,即使该命令已滚动到窗口内容区域的视图之外。* 字符表示您输入密码的位置。输入密码时不显示密码。 以这种方式输入密码比在命令行上指定密码更安全,因为其他用户看不到密码。但是,这种输入密码的方法仅适用于以交互方式运行的程序。如果要从以非交互方式运行的脚本调用客户端,则无法从键盘输入密码。在某些系统上,您甚至可能会发现脚本的第一行被读取和解释(错误地)为密码。阿拉伯数字
可以使用使用MySQL配置实用程序创建的加密.mylogin.cnf文件登录帐户,同时保持密码模糊,但密码仍必须在用户首次登录之前的某个时间点提交。
答:
我能想到的唯一方法是在表达式中创建没有密码的用户,然后使用 mysqladmin 设置密码:
$ sudo mysql -e "CREATE USER someone;"
$ mysqladmin -u someone password
New password:
Confirm new password:
评论