- 认证技术问题
- 键鼠模拟点击测试工具--xdotool
- Q:命令行修改屏幕分辨率
- KVM虚拟机-复制克隆(命令行)
- 统信UOS安装cherrytree
- 未进开发者根证书导入uos浏览器生效方案
- 将A卡驱动从从radeon切换为amdgpu
- uos系统ulimit工具使用
- kvm虚拟机运行时显示“启动域时出错”
- UOS文件命名最多支持字符数
- 在uos系统中如何下载不同架构的包
- 登录时输入正确密码后无法登陆 显示密码错误
- 通过终端判断窗口特效是否开启及开启关闭窗口特效
- 应用软件驻留任务栏问题
- FTP底层存储文件乱码
- 初识apache flink
- UOS专业版1032软件商店下载安装包缓存在哪里
- 如何用命令行查看当前cpu温度
- kvm远程连接报错ssh key
- 外设/认证类userid接口获取方式
- 命令行安装字体
- UOS访问windows文件共享
- uos系统中dbus调用api实现一些基本功能
- 用命令行设置关闭显示器、进入待机、自动锁屏
- 命令切换python版本
- uos系统中dbus调用实现系统锁屏
- UOS-lsmhookmanager程序的Demo
- KVM支持UEFI引导
- 身份鉴别系统如何接入UOS的PAM框架
- UOS收集桌面日志
- UOS远程windows桌面
- 获取有效打印机日志方法
- UOS浏览器导入证书
- 开发者问题反馈指南
- 因节信息为空,导致的签名失败的问题
- 搜狗输入法导入字体库
- LightDM桌面显示器相关技术内容(系统默认)
- 源码打包为deb
- 开源大数据部署手册
- UOS查看摄像头是否链接成功
- 安装双系统后无法进入UOS系统
- 进入桌面系统弹黑屏PoolCreationFaile解决办法
- udev详解
- dpkg: 处理软件包 uos-browser-stable
- 统信云打印
- uos-route路由相关操作
- 统信UOS操作系统-共享文件夹
- 统信UOS操作系统-定时关机
- 解决 tail 命令提示“inotify 资源耗尽,无法使用
- 使用字体管理器导入字体
- 清除浏览器dns缓存
- 在 Linux 中永久修改 USB 设备权限
- kvm 显示spice协议错误
- uos系统切换java版本
- rpm包在uos系统无法直接安装
- 更改密码后如何绕过登陆密钥环验证
- deb安装后,启动菜单没有启动图标
- 应用上架报错“获取不到包信息请检查”
- qt creator不能输入中文
- uname -v 第一个字段意义
- zabbix安装文档
- 统信服安装完系统后,切换root用户没有root用户密码
- uos系统中dbus调用实现特效模式开关
- UOS非开发者模式调用dmidecode
- 非适配完成打印机官方驱动安装方法
- apache spark 部署
- 使用MegaCli做raid
- 任务栏出现两个图标
- 通过 gdebi 工具解决安装本地包缺失依赖问题
- UOS通过Nginx托管Net Core服务
- 回收站删除时提示权限问题无法删除
- Linux 命令行查看图片详细信息(分辨率、色深、格式等)
- 切换JDK默认版本
- uos Postgresql 12.1 安装过程笔记
- PostgreSQL关系数据库
- kvm虚拟机运行时显示“启动域时出错”
- 统信UOS安装steam
- 如何查看uos浏览器是否支持flash
- uos系统中dbus调用api实现个性化透明度
- 如何确定deb包是否已经过统信方面的签名
- appimage打包基础步骤
- 命令行制作U盘启动盘方法
- vim配置优化
- 强制关机后磁盘数据损坏,initramfs无法挂载进不去系统
- 如何安装Debian&uos双系统
- 激活过程中提示服务器连接失败
- UOS浏览器内部协议(部分)
- uos设备管理器取值对照表
- 系统最小化安装,字符界面实现EAP认证
- dbus使用方法
- uos系统中dbus调用实现注销系统
- KVM虚拟机--删除(命令行)
- ppd文件打包deb
- uos和uos之间如何共享奔图打印机
- 驱动安装时提示"hplip-plugin"无法安装
- 离线环境先如何激活系统
- 基于UOS 部署微软.NET环境
- 外设驱动重新打包
- 关于打包过程dpkg-source -b . 命令构建出deb包时报错简单分析
- UOS更换英伟达官方显卡驱动
- 如何查看系统安装时间
- uos1030MIPS服务器安装kms激活
- uos远程连接工具--FinalShell的安装和使用
- 公网deb包转uos的deb包
- 开机引导后无法进入系统,显示busybox v1.30.
- 统信UOS命令行更改时间
- 在商店上架的应用显示程序大小异常
- 点击桌面上关机按钮,提示阻挡关机
- UOS浏览器下查看浏览器插件情况
- 打包规范之control文件字段说明
- UOS中输入法框架的开发技术是什么?
- uos右键刷新
- 开源堡垒机JumpServer解决方案
- UOS浏览器导入根证书
- 行业版环境如何实现远程适配?
- 修改系统默认语言编码
- 统信桌面操作系统查看当前版本
- 开源ZooKeeper集群解决方案
- lspci命令的应用
- 获取xxx软件包及依赖
- 开源ffmpeg的使用
- 用uos创建共享打印机
- deb安装,右键卸载失败的问题
- 系统历史启停时间查询脚本
- 串口使用及配置
- UOS切换至root用户命令无法补全问题
- .desktop文件Exec字段参数解释
- 自签名后因为系统时间变更导致程序无法运行
- 怎么使用iBMC工具安装uos操作系统
- activemq服务无法启动
- 二进制软件包打包为deb
- apt命令提示lock异常解决方案
- 应用软件打包辅助工具v1.0版本
- "提示:E: dpkg 被中断,您必须手工运行 ‘sudo
- 最小化环境命令行激活系统
- 如何拉取软件依赖包
- dpkg: 警告: 无法找到软件包 xxx 的文件名列表文件
- uos浏览器如何清除dns缓存
- 浏览器闪退解决方案
- 检查deb包打包规范脚本
- UOS自定义右键新建文档
- apache samza部署
- UOS 实现 rc.local 开机执行命令
- smb自动挂载
- UOS 搭建Firekyin个人网站
- 统信服务器操作系统设置登录时自动填充用户名
- 修改tomcat的最大连接数
- 单用户模式下创建一个可登录的用户
dbus使用方法
⼀、需求描述
需要以root权限运⾏程序或脚本,测试脚本test.sh
!/bin/bash 添加⽤⼾需要root权限 useradd zhangsan # 调⽤系统⾳乐程序deepin-music
⼆、dbus-daemon使⽤⽅法
1、安装依赖
$ sudo apt install pkg-config libsystemd-dev libsystemd0 -y
2、拷⻉配置⽂件
$ cd dbus鉴权⽰例1.3 $ cp -arp system.d/net.poettering.Calculator.conf /etc/dbus-1/system.d/ $ cp -arp actions/net.poettering.Calculator.policy /usr/share/polkit-1/action/
3、编译
test.c是dbus服务端程序test_client.c是dbus客⼾端程序 客⼾端调⽤服务端,服务器调⽤polkit鉴权,鉴权成功,执⾏需要提权的程序。这⾥我们需要提权的程序是test.sh,假设我们把他放在~/Desktop下。 先修改⼀下test.c vim test.c,找到第231⾏,修改成我们需要提权运⾏的命令或程序。
然后我们进⾏编译,直接在test.c⽬录下执⾏make即可。
此时会多两个⼆进制的程序,test和test_client。
4、测试
启动服务端,需要root权限
$ sudo ./test
检查测试⽤⼾是否存在,如果存在删除
$ id zhangsan >/dev/null 2>/dev/null && sudo userdel zhangsan
再开启⼀个窗口,启动客⼾端
$ ./test_client
这是会弹出⼀个对话框让你输密码鉴权。
输⼊密码后,如果密码正确,会以root程序调⽤/opt/test.sh脚本
如果调⽤不成功,可以在服务端窗口看⽇志输出。
5、验证
检查⽤⼾是否创建
$ id zhangsan
检查deepin-music是否以root权限运⾏
$ ps -ef | grep deepin-music
三、dbus打包
有些客⼾在产品不仅需要安装在时候需要以root权限做⼀些初始化⼯作,也可能在安装后每次以 root权限运⾏。
1、构建⽬录结构
$ mkdir -p com.shonentech.rvms/DEBIAN $ mkdir -p com.shonentech.rvms/opt/apps/com.shonentech.rvms/entries/applications $ mkdir -p com.shonentech.rvms/opt/apps/com.shonentech.rvms/entries/icons/hicolor $ mkdir -p com.shonentech.rvms/opt/apps/com.shonentech.rvms//icons/hicolor $ mkdir -p com.shonentech.rvms/opt/apps/com.shonentech.rvms/files/bin
2、创建control⽂件
$ vim com.shonentech.rvms/DEBIAN/control
内容如下:
Package: com.shonentech.rvms Version: 1.0.0.0 Architecture: amd64 Maintainer: root <root@unknown> Installed-Size: 77284 Section: unknown Priority: optional Depends: pkg-config,libsystemd-dev,libsystemd0 Homepage: <insert the upstream URL, if relevant> Description: <insert up to 60 chars description> <insert long description, indented with spaces>
3、创建info⽂件
$ vim com.shonentech.rvms/DEBIAN/control
内容如下
{ "appid": "com.shonentech.rvms", "name": "rvms", "version": "1.0.0.0", "arch": ["amd64"], "permissions": { "autostart": false, "notification": false, "trayicon": false, "clipboard": false, "account": false, "bluetooth": false, "camera": false, "audio_record": false, "installed_apps": false } }
4、创建服务⽂件
dbus服务端程序需要root运⾏,且每次⽤⼾运⾏程序之前dbus服务端必须运⾏,否则⽤⼾⽆法正 常运⾏,我们通过将dbus服务端写成⼀个系统服务并设置开机⾃启来实现。
$ vim com.shonentech.rvms/opt/apps/com.shonentech.rvms/files/dbus- org.test.service
内容如下 [Unit] Description=org.dbus.test RefuseManualStop=yes
[Service] Type=simple PIDFile= ExecStart=/opt/apps/com.shonentech.rvms/files/test
[Install] WantedBy=multi-user.target
5、放⼊相关⽂件
将相关脚本、图标、配置⽂件、程序放⼊。
图标⽂件
$ cp -arp RVMS.png opt/apps/com.shonentech.rvms/entries/icons/hicolor/RVMS.png
dbus服务端和客⼾端
$ cp -arp test opt/apps/com.shonentech.rvms/files/test $ cp -arp test_client opt/apps/com.shonentech.rvms/files/test_client
app主程序
$ cp -arp rvms.sh opt/apps/com.shonentech.rvms/files/bin/rvms.sh
polkit配置⽂件
$ cp -arp net.poettering.Calculator.conf opt/apps/com.shonentech.rvms/files/net.poettering.Calculator.conf $ cp -arp net.poettering.Calculator.policy opt/apps/com.shonentech.rvms/files/net.poettering.Calculator.policy
6、创建desktop⽂件
$ vim com.shonentech.rvms/opt/apps/com.shonentech.rvms/entries/applications/com.shonen tech.rvms.desktop
内容如下
[Desktop Entry] Categories=Utility;
Comment=This is a application for Return Visit Management System. Comment[zh_CN]=这是⼀个复诊管理系统。
TryExec=/opt/apps/com.shonentech.rvms/files/test_client
Exec=/opt/apps/com.shonentech.rvms/files/test_client %U GenericName=RVMS
GenericName[zh_CN]=复诊管理系统
Icon=/opt/apps/com.shonentech.rvms/entries/icons/hicolor/RVMS.png Name=RVMS
Name[zh_CN]=复诊管理系统
7、创建钩⼦脚本
deb包⾸次安装的时候需要做⼀些初始化⼯作。且需要root权限,因此我们需要⽤到钩⼦脚本。
拷⻉配置⽂件拷⻉服务⽂件
设置服务开机⾃启
启动服务
$ vim com.shonentech.rvms/DEBIAN/postinst
内容如下
#!/bin/bash cp -arp /opt/apps/com.shonentech.rvms/files/dbus-org.test.service /usr/lib/systemd/system/ cp -arp /opt/apps/com.shonentech.rvms/files/net.poettering.Calculator.conf /etc/dbus-1/system.d/ cp -arp /opt/apps/com.shonentech.rvms/files/net.poettering.Calculator.policy /usr/share/polkit-1/action/ systemctl enable dbus-org.test systemctl start dbus-org.test
卸载的时候我们也需要将服务清除。
$ vim com.shonentech.rvms/DEBIAN/postrm
内容如下
#!/bin/bash systemctl stop dbus-org.test systemctl disable dbus-org.test rm -f /opt/apps/com.shonentech.rvms/files/dbus-org.test.service /usr/lib/systemd/system/ rm -f /opt/apps/com.shonentech.rvms/files/net.poettering.Calculator.conf /etc/dbus-1/system.d/ rm -f /opt/apps/com.shonentech.rvms/files/net.poettering.Calculator.policy /usr/share/polkit-1/action/
别忘了给钩⼦脚本授权
$ sudo chmod 755 com.shonentech.rvms/DEBIAN/post*
8、打包测试
最终⽬录如下
打包
$ sudo dpkg-deb -b com.shonentech.rvms
安装,安装后可以看到已经以root权限运⾏了dbus服务端。
$ ps -ef | grep test
运⾏测试.. 略
9、常⻅问题
调⽤图形化界⾯程序起不来,⾮图形化命令能执⾏成功 问题原因:https://blog.csdn.net/h106140873/article/details/89445448 解决⽅案:在最终调⽤的程序中,加⼊export DISPLAY=:0
#!/bin/bash
添加⽤⼾需要root权限
useradd zhangsan
调⽤图形化程序之前,先定义环境变量授权
export DISPLAY=:0
调⽤系统⾳乐程序
deepin-music
deepin-music退出后,再次运⾏程序,打不开 问题原因:通过pstree分析,是由于脚本在调⽤图形化程序的时候,回被阻塞,当图形化程序退出后, 依然被阻塞,不知道是什么原因,导致被调⽤的脚本以及脚本所调⽤的进程都没有退出。 解决⽅案:将被调⽤的图形化程序,放⼊后台运⾏,且在运⾏前,将正在运⾏的程序杀掉,虽然能不作为⼦进程运⾏,不阻塞,但是还是⽆法正常退出。 #!/bin/bash
添加⽤⼾需要root权限
useradd zhangsan
调⽤图形化程序之前,先定义环境变量授权
export DISPLAY=:0
杀掉残留进程
killall deepin-music
调⽤系统⾳乐程序
deepin-music &