[3rd-Party Apps] 如何使用管理员方式启动应用(不使用命令行)
Tofloor
poster avatar
qingkongdeepin
deepin
2022-12-10 19:24
Author

我在使用wireshark学习TCP握手,发现如果直接启动它,是拿不到网络接口,无法进行捕获数据的。

只有在命令行使用 sudo wireshark 启动才行。

或者文件管理器中使用管理员模式打开文件管理器,再启动才可以太不方便了,希望改进一下,在应用上添加管理员启动快捷菜单或者其他更好的方式。

Reply Favorite View the author
All Replies
云的眼泪
deepin
2022-12-10 20:32
#1

如果一个File文件有SUID属性,那么无论那个用户执行该File文件时,都将以该文件File的所有者(owner)权限进行执行

也就是说,如果这个文件的所有者是root,那么即便是普通用户给user在执行该文件时,Linux系统仍旧认为该文件是root用户所启动,且获得最高权限。

所以,如果我们想免密以root权限执行文件,那么我们就可以先将一个文件的所有者改变为root,然后再赋予它SUID权限即可。

该方式只针对二进制可执行文件,普通文件、脚本不可用

sudo chown root [bin] //将bin 的所有者改为root
sudo chmod a+s [bin] //所有人对bin 的执行操作,都将以所有者权限进行启动
./bin // 将以root用户启动root

你可以对wireshark赋于suid属性试试。

Reply View the author
云的眼泪
deepin
2022-12-10 20:34
#2

Linux系统中,文件有所有者owner,所属组group的属性
一般情况下,哪个用户创建了该文件,该用户就是该文件的owner,该用户所属的group就是该文件的group。
当我们给予一个二进制可执行文件suid属性时,无论哪个用户执行该二进制文件时,实际都会以该文件的owner角色来启动。

所以,对于需要以root权限启动的文件来说。
先将该文件的owner改为root,
再赋予所有人对该文件都有suid权限(chmod s),
即可保证该文件始终以所有者root进行启动
但是该行为风险极高,慎用

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2022-12-10 21:24
#3

pkexec替换sudo

Reply View the author
qingkongdeepin
deepin
2022-12-11 06:11
#4
云的眼泪

如果一个File文件有SUID属性,那么无论那个用户执行该File文件时,都将以该文件File的所有者(owner)权限进行执行

也就是说,如果这个文件的所有者是root,那么即便是普通用户给user在执行该文件时,Linux系统仍旧认为该文件是root用户所启动,且获得最高权限。

所以,如果我们想免密以root权限执行文件,那么我们就可以先将一个文件的所有者改变为root,然后再赋予它SUID权限即可。

该方式只针对二进制可执行文件,普通文件、脚本不可用

sudo chown root [bin] //将bin 的所有者改为root
sudo chmod a+s [bin] //所有人对bin 的执行操作,都将以所有者权限进行启动
./bin // 将以root用户启动root

你可以对wireshark赋于suid属性试试。

感谢!

Reply View the author