+
 新版

如何在linux运行java程序时,用户根据控制台提示输入账户信息之后程序转入后台运行

hy86 发布于 2017/04/06 17:07
阅读 1K+
收藏 0

我有个程序,之前是这么做的:
1.账户信息放入配置文件中,程序运行时自动读取
2.在linux中使用nohup命令让程序后台运行

现在觉得账户信息写入配置文件不安全,想实现如下:
1.在程序启动时让控制台提示并输入账户信息(但nohup用不了了)
2.linux下,程序在获取到用户输入的账户信息后能转入后台运行

哪位能提供一些这方面的经验?在此非常感谢

加载中
0
乌龟壳
乌龟壳

把程序放到专用的账户下,除了root访问不了就行了,程序也不用上密码

0
hy86
hy86

引用来自“乌龟壳”的评论

把程序放到专用的账户下,除了root访问不了就行了,程序也不用上密码

我的账户信息是程序用来远程登陆另一个系统,然后执行一些任务。

你的意思是:远程登陆的相关账密信息,仍然用文件存放,与程序一起放到专用的一个linux系统用户下,并用这个用户启动程序。是这个意思吗?

乌龟壳
乌龟壳
看你要防谁,如果同机的有管理权限的人这样防不住的,如果有人能拿到服务器直接读你的硬盘数据也防不住。
0
hy86
hy86

引用来自“乌龟壳”的评论

把程序放到专用的账户下,除了root访问不了就行了,程序也不用上密码

引用来自“hy86”的评论

我的账户信息是程序用来远程登陆另一个系统,然后执行一些任务。

你的意思是:远程登陆的相关账密信息,仍然用文件存放,与程序一起放到专用的一个linux系统用户下,并用这个用户启动程序。是这个意思吗?

所以我不想放文件中,想直接在程序启动时提示用户输入,然后转为后台进程。

0
渠富林
渠富林

把账户信息加密写到配置文件里,程序使用参数时解密,或者启动时启动两个进程,一个以daemon方式启动,另外一个终端方式,二者可以通信,终端方式进程获取到账户信息后传递给守护进程方式启动的进程后自己就可以关掉了

0
hy86
hy86

引用来自“渠富林”的评论

把账户信息加密写到配置文件里,程序使用参数时解密,或者启动时启动两个进程,一个以daemon方式启动,另外一个终端方式,二者可以通信,终端方式进程获取到账户信息后传递给守护进程方式启动的进程后自己就可以关掉了

好的,用你的方式替代吧,谢了

0
beyondforever68
beyondforever68

在shell中读取用户输入,输入后再以nohup启动对应程序传入相应的值,这样可以不?

0
hy86
hy86

引用来自“beyondforever68”的评论

在shell中读取用户输入,输入后再以nohup启动对应程序传入相应的值,这样可以不?

这种方式可以实现,但传进去的用户名和密码会显示在进程信息中,比如shell:

${JAVA_HOME}/bin/java  com.xxx.Startup $1 $2

其中$1为用户名,$2为密码,则此时如果执行命令ps -ef|grep java

会显示当前java进程信息为:

/user/java/jdk1.7/bin java com.xxx.Startup username password

所以还不如明文存放在配置文件中。

0
s
snoopy813

作者,有答案了吗。

0
酷酷的就
酷酷的就

程序A启动时让控制台提示并输入账户信息  整成一个加密字符串str

将加密字符串str  作为参数以nohup方式启动程序B, 格式:nohup B str &

 

 

0
manyu7741
manyu7741

楼主现在有答案没,也遇到这种问题了.

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部