1. 程式人生 > >在Gnu/Linux中使用超級使用者執行程式的方法

在Gnu/Linux中使用超級使用者執行程式的方法

/*********************************************************************
 * Author  : Samson
 * Date    : 06/30/2014
 * Test platform:
 *              Mint 15
 *              GNU bash, version 4.2.45
 * *******************************************************************/

很多時候,在寫了一個UI後,需要在執行的時候以超級使用者的級別進行執行時,那麼這就要在程式進行啟動的時候進行使用超級使用者級別進行執行程式,如有一個名稱為systemtool的工具程式需要如些執行時,此工具的執行檔案放在/usr/bin目錄下,那麼此檔案的內容為:

/usr/bin/systemtool
#!/bin/sh
magic='--calling-python-from-/bin/sh--'
"""exec" python -E "$0" "[email protected]" """#$magic"
import os
import sys
import commands
launcher = commands.getoutput("/usr/lib/linuxmint/common/mint-which-launcher.py")
command = "%s python /usr/share/systemtool/daemon/testpygtk.py" % (launcher)
os.system(command)

而/usr/lib/linuxmint/common/mint-which-launcher.py檔案的內容又如下:

#!/usr/bin/python


import os
import gettext

gettext.install("mint-common", "/usr/share/linuxmint/locale")

if os.path.exists("/usr/bin/gksu"):
    launcher = "gksu  --message \"<b>" + _("Please enter your password") + "</b>\""
elif os.path.exists("/usr/bin/kdesudo"):
    launcher = "kdesudo -i /usr/share/linuxmint/logo.png -d --comment \"<b>" + _("Please enter your password") + "</b>\""

print launcher

command的值為:gksu  --message "<b>請輸入您的密碼</b>" python /usr/share/systemtool/daemon/testpygtk.py


而gksu命令是以su root的許可權進行執行。

相關推薦

Linuxcrontab自動執行程式相關命令與常見的錯誤

在Linux/Unix系統中可以使用crontab命令(crond服務)來實現特定時間自動執行指令碼。 首先簡單介紹下crontab命令的基本規則: * * * * * 具體命令 每分 每時 每日 每月 每週 執行具體命令 例如: 1、每週五下午兩點執行echo “Hell

Gnu/Linux使用超級使用者執行程式方法

/*********************************************************************  * Author  : Samson  * Date    : 06/30/2014  * Test platform:  * 

Java程式Linux實現後臺執行

1、執行指令碼 程式的目錄結構如下 [[email protected] SocketDxpTaxi]# ls config lib logs run.sh SocketDxpTaxi.jar [[email protected]

linux安裝wine執行windows程式

Wine的介紹  Wine是Wine Is Not an Emulator(Wine不是模擬器)的縮寫,其實是一個轉換層(或程式裝入器),能夠在Linux及與POSIX相容的其他類似作業系統上執行Windows應用程式。Wine在Linux上無法模擬Windows應用程式,而

Linux計劃任務執行腳本crontab-簡潔版

error ESS CA lin 調度 pytho 可執行 too 用戶 我使用的是ubuntu16,所以在ubuntu中一切正常,在其他linux系統中應該都差不多。   1 計劃任務,crontab命令選項: -u指定一個用戶, -l列出某個用戶的任務

Linuxcrontab無法執行java程序的問題

java程序 問題 級別 路徑 jdk環境變量 系統 ron jdk環境變量配置 kill Linux中crontab無法執行java程序的問題 jdk環境變量配置問題;可以用全路徑來解決; 竟然是kill -9之後,後面的腳本都不運行,這個還沒有找到原因啊; 即便是系統級

JAVAEE——宜立方商城13:Mycat數據庫分片、主從復制、讀寫分離、100%Linux成功安裝Mysql的方法

server structure chang exe under have 重新啟動 switch option 1 海量數據的存儲問題 如今隨著互聯網的發展,數據的量級也是撐指數的增長,從GB到TB到PB。對數據的各種操作也是愈加的困難,傳統的關系性數據庫已經無法滿足快速

linuxsupportconfig安裝與使用方法

由於工作原因,平時需要suse的工程師做二線技術支援,除了經常會提交kdump分析的結果給suse 工程師定位根因,而在沒有kdump生成時,經常會用的指令就是supportconfig收集系統資訊,其收集內容基本涵蓋了核心、模組、系統、服務等幾乎所有我們能想到的資訊,另外還會出一份簡單的health che

Linux 環境程式設計—可執行程式結構與程序結構

Linux可執行檔案結構 在 Linux 下,程式是一個普通的可執行檔案,以下列出一個二進位制可執行檔案的基本情況: 可以看出,此可執行檔案在儲存時(沒有調入到記憶體前)分為程式碼區(text)、資料區(data)和未初始化資料區(bss)3 個部分。各段基本內容說明如下: 程式碼區:

Linux GCC生成可執行程式的4個步驟——預處理、編譯、彙編、連結

一,預編譯 操作步驟:gcc -E hello.c -o hello.i 主要作用: 處理關於 “#” 的指令 【1】刪除#define,展開所有巨集定義。例#define portnumber 3333 【2】處理條件預編譯 #if, #ifdef, #if, #elif,#e

linux上學習pyspark執行程式的命令

2002 spark-submit --master spark://192.168.0.80:7077 /home/tsl/chenchangsha/test_spark_run_model/temp_1.py 2003 : java.lang.Nu

linuxstat函式和使用方法

stat 函式講解 表頭檔案: #include <sys/stat.h> #include <unistd.h> 定義函式: int stat(const char *file_name, struct

解決Linuxcrontab不執行ntpdate問題

把同步時間定時任務中,使用 crontab -e 開啟配置檔案,加入 * * * * * ntpdate cn.ntp.org.cn 每分鐘同步時間,上面看上去是沒什麼問題,命令列經常彈出You ha

Linuxfind命令基本使用方法

Linux中find命令是系統中查詢檔案的命令,可以幫助使用者快速找出自己所需要的檔案。 通過檔名查詢 find -name 檔名 find /etc/ -name passwd ###查詢/etc目錄下的passwd 通過檔案巢狀層數查詢 find

(zt)如何執行一個資源的可執行程式

2010年07月08日 15:29:00 zaijzhgh 閱讀數:511 標籤: exe null

Linux 安裝不了程式?教你一招解決!

CrossOver Linux 一款可以幫助我們在Linux作業系統中 執行Windows應用程式的軟體 不必購買 Windows 授權! 不必重啟系統! 不必使用虛擬機器! 如果安裝程式檔案在下載期間損壞 (可能由於網路錯誤,下載伺服器問題或計算機上的防病毒軟體而發生) 則Cros

linux定時任務執行失敗

問題來源: 最近發現數據庫中有sleep程序無法關閉,並且阻塞時間過長,需要執行指令碼,定時清除 解決方案: 原指令碼檔案: #!/bin/sh MYSQLTOOL=mysql MYSQLUSER=root MYSQLPASS=**** HOST=

linux配置JAVA執行環境後可能還是無法找到java版本命令

今天在我的linux系統(阿里雲伺服器)centos7.5(貌似,誰知道呢) 配置java執行環境,到已經將jdk的壓縮包解壓縮,修改了/etc/profile的配置檔案 然後立刻生效,執行 . /etc/profile,是配置檔案生效之後,開始執行java -versi

Linux Shell 指令碼執行的三種方式

在 Linux 系統中,Shell 指令碼的執行方式通常有如下三種: 通過直譯器 bash 或 sh 執行 通過直譯器時的命令格式為: bash shell-script-name # 通過 bash 直譯器來執行 shell 指令碼。 或 sh sh

解決Oracle缺少動態連結庫cannot open shared object file: No such file o;解決 Linuxpython指令碼執行無問題,配置crontab定時任務報錯

注:該問題的本質是:缺少動態連結庫 20181030更: 在另一臺伺服器再次遇到類似的問題,也是直接執行python指令碼無問題,在crontab中報錯: ImportError: libclntsh.so.11.1: cannot open shared ob