我的机器上有一个只运行mysql的用户。我是否可以将用户的shell设置为mysql并使用密码和用户名登录?
我知道如何将shell更改为mysql二进制文件。
usermod -s /usr/bin/mysql这确实有效,只是我不能在程序中提供用户名/密码。通常,用户/pw被指定为
mysql -u $USER -p我无法为shell提供参数,如
usermod -s "/usr/bin/mysql -u $USER -p" # Does not work!此外,使用简单的shell脚本作为shell也不起作用:
#!/bin/sh # mysqlShell
/usr/bin/mysql -u $USER -p
----
usermod -s mysqlShell # does not work那么,我如何为作为用户shell的程序提供参数呢?
多亏了汤姆·雷格纳,我才能找到一个使用.my.cnf的解决方案
[client]
host=localhost
user=$user
password=$pass
disable-auto-rehash将mysql设置为shell的位置。我仍然想手动提供密码,但这是我发现的最好的密码。
发布于 2013-05-24 09:49:57
为用户设置一个$HOME/.my.cnf文件
[client]
host=localhost
user=mysqluser
password=mysqlpass然后将bash设置为登录shell,并将以下内容放在$HOME/.bashrc中
exec mysql --host=localhost dbname这应该能做您想做的事情,而所讨论的用户只需提供一个密码(登录时的系统帐户密码)。
exec将shell进程替换为mysql进程。
如果这不像预期的那样工作,则可能需要将$HOME/.bash_profile调整为源.bashrc。
[[ -f ~/.bashrc ]] && . ~/.bashrc提供适当的.my.cnf并将/usr/bin/mysql设置为shell可能就足够了,但是这样就可以将任意命令行选项/标志传递给mysql客户端。
发布于 2013-05-24 08:54:51
您可以通过在/etc/passwd中编辑用户的帐户详细信息并更改默认的shell来做到这一点。
发布于 2013-05-24 09:31:58
https://stackoverflow.com/questions/16730990
复制相似问题