[英]Running Java Application with Solaris SMF as Non-Root User
I am running my application with Solaris SMF as Non Root user, i followed below steps 我以非root用户身份使用Solaris SMF运行我的应用程序,我按照以下步骤操作
1- Create file like following 1-创建如下文件
<?xml version='1.0'?> <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> <service_bundle type="manifest" name="myapp"> <service name="application/management/myapp" type="service" version="1"> <create_default_instance enabled="false" /> <single_instance /> <dependency name="multi-user-server" type="service" grouping="require_all" restart_on="none"> <service_fmri value="svc:/milestone/multi-user-server" /> </dependency> <exec_method type="method" name="start" exec="/opt/bin/myapp.sh start" timeout_seconds="-1"> <method_context> <method_credential user='myuser' group='other' /> <method_environment> <envvar name='PATH' value='/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/local/bin:/usr/local/sbin:/usr/sfw/bin' /> <envvar name='JAVA_HOME' value='/usr/java/' /> </method_environment> </method_context> </exec_method> <exec_method type="method" name="stop" exec="/opt/bin/myapp.sh stop" timeout_seconds="-1"> <method_context> <method_credential user='myuser' group='other' /> <method_environment> <envvar name='PATH' value='/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/local/bin:/usr/local/sbin:/usr/sfw/bin' /> <envvar name='JAVA_HOME' value='/usr/java/' /> </method_environment> </method_context> </exec_method> <property_group name='start' type='method'> <propval name='action_authorization' type='astring' value='solaris.smf.manage.myapp' /> <propval name='modify_authorization' type='astring' value='solaris.smf.manage.myapp' /> <propval name='value_authorization' type='astring' value='solaris.smf.manage.myapp' /> </property_group> <property_group name='stop' type='method'> <propval name='action_authorization' type='astring' value='solaris.smf.manage.myapp' /> <propval name='modify_authorization' type='astring' value='solaris.smf.manage.myapp' /> <propval name='value_authorization' type='astring' value='solaris.smf.manage.myapp' /> </property_group> <property_group name='general' type='framework'> <propval name='action_authorization' type='astring' value='solaris.smf.manage.myapp' /> <propval name='value_authorization' type='astring' value='solaris.smf.manage.myapp' /> <propval name='modify_authorization' type='astring' value='solaris.smf.manage.myapp' /> </property_group> <stability value="Unstable" /> <template> <common_name> <loctext xml:lang='C'>My Application</loctext> </common_name> </template> </service> </service_bundle>
2- svccfg validate myapp-smf.xml 2- svccfg验证myapp-smf.xml
3- Add line in /etc/security/auth_attr solaris.smf.manage.myapp:::MyApp Management:: 3-在/ etc / security / auth_attr solaris.smf.manage.myapp ::: MyApp Management ::中添加行
4- usermod -A solaris.smf.manage.myapp myuser(make sure myuser is not logged in) 4- usermod -A solaris.smf.manage.myapp myuser(确保myuser未登录)
5- svccfg import /opt/smf/myapp-smf.xml 5- svccfg导入/opt/smf/myapp-smf.xml
Now logged as myuser and verify/start/stop application with following commands 现在以myuser身份登录,并使用以下命令验证/启动/停止应用程序
svcs -l myapp
svcadm enable myapp
svcadm disable myapp
Now problem is next day when i try to enable/disable from my user i got permission denied error. 现在的问题是第二天,当我尝试从我的用户启用/禁用时,出现权限被拒绝的错误。
I run again usermod -A solaris.smf.manage.myapp myuser, and it start working, i am looking for permanent fix. 我再次运行usermod -A solaris.smf.manage.myapp myuser,它开始工作,我正在寻找永久修复程序。
Regards 问候
usermod -A solaris.smf.manage。* myuser将解决问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.