Kaydet (Commit) d54fbec2 authored tarafından Bahadır Kandemir's avatar Bahadır Kandemir

merged with comar-dbus branch

üst 2515b1ef
Erişim Denetimi
===============
Erişim denetimi, PolicyKit ile sağlanmaktadır. Sunulan arayüzlere ait
erişim ayarları /usr/share/PolicyKit/policy/ içinde bulunmaktadır.
model.xml'de tanımlı her model için (standart org.freedesktop.DBus
arayüzleri hariç) bir erişim ayar dosyası vardır. ÇOMAR, çağrıyı
yapan kullanıcı root haklarına sahip değilse, PolicyKit'e başvurur
ve PolicyKit, bu ayar dosyalarındaki tanımlara göre kullanıcının
yetkili olup olmadığını denetler.
Erişim Dosyası Nesne Arayüz
-------------- ---------- ------
comar.policy / tr.org.pardus.comar
comar.bootloader.policy /package/* tr.org.pardus.comar.Boot.Loader
comar.modules.policy /package/* tr.org.pardus.comar.Boot.Modules
comar.netlink.policy /package/* tr.org.pardus.comar.Net.Link
comar.netstack.policy /package/* tr.org.pardus.comar.Net.Stack
comar.system.package.policy /package/* tr.org.pardus.comar.System.Package
comar.time.polic /package/* tr.org.pardus.comar.Time.Clock
comar.user.policy /package/* tr.org.pardus.comar.User.Manager
Erişim Dosyası Yapısı
=====================
<action id="tr.org.pardus.comar.boot.loader.listsystems">
<description>List systems supported by boot loader</description>
<message>System policy prevents listing systems.</message>
<defaults>
<allow_any>yes</allow_any>
<allow_active>yes</allow_active>
<allow_inactive>yes</allow_inactive>
</defaults>
</action>
İşlem Adları (action id)
------------------------
İşlem adları, kullanıcının yapmak istediği işlemi temsil ederler.
Sadece "[a-z][0-9].-" karakterlerini içerebilirler.
** ÖNEMLİ **
İşlem adı, genellikle arayüzadı.method şeklinde tanımlıdır. İşlem
adı büyük harf içeremeyeceğinden, önce tüm karakterler küçük harfe
dönüştürülür.
Erişim Türleri (allow_*)
------------------------
allow_any Herhangi bir oturum için erişim hakkı
allow_active Aktif oturumlar için erişim hakkı
allow_inactive İnaktif oturumlar için erişim hakkı
Erişim Hakları (allow_* değerleri)
----------------------------------
yes Herkes bu işlemi yapabili
no Sadece root bu işlemi yapabilir
auth_self Kendi parolasını girerek yetki alabilir
auth_self_keep_session Kendi parolasını bir kez girdikten sonra
oturum boyunca bir daha parola girmesine
gerek kalmaz
auto_self_keep_always Kendi parolsını bir kez girdikten sonra
bir daha parola girmesine gerek kalmaz
auth_admin Root parolasını girerek yetki alabilir
auth_admin_keep_session Root parolasını bir kez girdikten sonra
oturum boyunca bir daha parola girmesine
gerek kalmaz
auto_admin_keep_always Root parolasını bir kez girdikten sonra
bir daha parola girmesine gerek kalmaz
Benzer İşlemler
===============
ÇOMAR, model.xml'de birbirine benzer işlemleri belirleye olanak tanır:
<method name="setOption" access_label="set">
<arg name="option" type="s" direction="in"/>
<arg name="value" type="s" direction="in"/>
</method>
<method name="setEntry" access_label="set">
<arg name="title" type="s" direction="in"/>
<arg name="os_type" type="s" direction="in"/>
<arg name="root" type="s" direction="in"/>
<arg name="kernel" type="s" direction="in"/>
<arg name="initrd" type="s" direction="in"/>
<arg name="options" type="s" direction="in"/>
<arg name="default" type="s" direction="in"/>
<arg name="index" type="i" direction="in"/>
</method>
Bu durumda, erişim denetimi yapılırken
tr.org.pardus.comar.boot.loader.setoption
tr.org.pardus.comar.boot.loader.setentry
işlem isimleri yerine
tr.org.pardus.comar.boot.loader.set
kullanılır.
** ÖNEMLİ **
ÇOMAR'dan "işlem yetkiniz yok" mesajı alan istemci, PolicyKit ajanından
kimlik doğrulama yoluyla erişim sağlama yaparken, yukarıdaki gibi
tr.org.pardus.comar.boot.loader.set
işlemi için yetki istemelidir.
PolicyKit Ajanı İle Yetki İsteme
================================
Aşağıdaki Python kodu ile, sistemde PolicyKit-gnome kurulu ise, istenen
işlem için yetki istenebilir (method True/False döndürür):
def obtainAuthorization(action, winID, pid):
import dbus
bus = dbus.SessionBus()
obj = bus.get_object("org.gnome.PolicyKit", "/")
iface = dbus.Interface(obj, "org.freedesktop.PolicyKit.AuthenticationAgent")
return iface.ObtainAuthorization(action, winID, pid)
İşlem adıyla birlikte, XWindow pencere numarası ve yetki alacak uygulamanın
süreç numarası belirtilmelidir.
İşlem adı, politika ayalar dosyalarının birinde tanımlı değilse, pencere/süreç
numarası geçersiz ise erişim denetimi daima False döndürür.
Nesne Yolu
|
Bus Adresi (ters çevrilir) |
| |
_______|________ __________|_________
/ \ / \
dbus://comar.pardus.org.tr/package/wireless_tools
Nesnenin sunduğu işlem arayüzleri (Interface):
- org.freedesktop.Introspectable (Standart)
- Introspect()
- tr.org.pardus.comar.System.Package
- postInstall()
- preRemove()
- tr.org.pardus.comar.Net.Link
- setConnection(name, device)
- setAddress(name, mode, address, ...)
- ...
...
İsimlendirme Kuralları
======================
- Bus adresi, nesne yolu, arayüz ve metod isimlerinin her biri en
fazla 255 karakter olabilir.
- Bus adresleri (örnek: tr.org.pardus.commar, :1.35, ...)
- Her bağlantının bir ya da daha fazla Bus adresi olabilir. ":"
ile başlayanlar özgün bağlantı isimleridir.
- Noktalarla ayrılmış, en az iki kelimeden oluşur. Kelimeler
sadece "[A-Z][a-z][0-9]_-" karakterlerini içerebilir.
- Rakam ve "." ile başlayan Bus adresi olamaz.
- Arayüz isimleri (örnek: tr.org.pardus.comar.Net.Link)
- Noktalarla ayrılmış, en az iki kelimeden oluşur. Kelimeler
sadece "[A-Z][a-z][0-9]_" karakterlerini içerebilir. Bus
adresinden farkı, "-" karakteri içermemeleridir.
- Rakam ve "." ile başlayan arayüz ismi olamaz.
- Üye (method, sinyal) isimleri (örnek: postInstall)
- "[A-Z][a-z][0-9]_" karakterlerinden oluşan en az bir karakter
uzunlukta bir kelime olabilir.
- "." içeremez
- Rakam ile başlayamaz.
- Hata isimleri (örnek: org.freedesktop.DBus.Exception)
- Arayüz isimlendirme kuralları aynen geçerlidir.
COMAR'ın Sunduğu Nesne/Arayüz/Methodlar
=======================================
/ (kök)
* org.freedesktop.Introspectable
- Introspect()
* tr.org.pardus.comar
- register(app, model, script_file)
- remove(app)
- listApplications()
- listModels()
- listModelApplications(model)
- listApplicationModels(app)
/package
/package/mysql
* org.freedesktop.Introspectable
- Introspect()
* tr.org.pardus.comar.System.Package
- postInstall(fromVersion, toVersion, ...)
- preRemove()
/package/wireless_tools
* org.freedesktop.Introspectable
- Introspect()
* tr.org.pardus.comar.System.Package
- postInstall(fromVersion, toVersion, ...)
- preRemove()
* tr.org.pardus.comar.Net.Link
- setConnection(name, deviceID)
- setAddress(name, mode, address, ...)
- ...
* ...
/package/...
Kök nesne altındaki tr.org.pardus.comar arayüzü, ÇOMAR'a yeni uygulama
ve uygulama betikleri ekleme, varolanları sorgulama/silme için gerekli
metodları sunar.
Her nesne standart org.freedesktop.Introspectable arayüzünü sunar. Bu
arayüzün Introspect() methodu ile, o anki nesne yolunun sunduğu
arayüzler, alt nesleler ve metodlar sorgulanabilir.
tr.org.pardus.comar.System.Package ve tr.org.pardus.comar.Net.Link
gibi arayüz isimleri, model.xml'den üretilir. Arayüzün sunduğu method
ve sinyaller (üyeler), yine model.xml'de tanımlıdır.
register() metodu ile ÇOMAR'a kayıt edilen paketler, /package altına
eklenir. Kayıt ederken bir model ismi ve o model ile tanımlı işi
gerçekleştirecek Python betiğinin tam dosya yolu belirtilmelidir:
register("apache", "System.Package", "/root/apache_package.py")
Yukarıdaki methodun çağrılmasının ardından, eğer System.Package
arayüzü model.xml'de tanımlı ise, "apache" geçerli bir paket ismi
ise "apache_package.py", Apache'ye ait ÇOMAR veritabanına eklenir
ve /package/apache nesnesi altında tr.org.pardus.comar.System.Package
arayüzü sunulmaya başlanır.
Tipler İle İlgili Kısıtlamalar
==============================
Aşağıdaki tipler desteklenmektedir:
Python DBus (DBUS_TYPE_*)
------ ------------------
bool BOOLEAN
int INT16, UINT16, INT32, UINT32
long INT64, UINT64
float DOUBLE
list ARRAY
tuple STRUCT
dict ARRAY of DICT_ELEM
str STRING
Tuple, dict ve list için DBus Spec'inden kaynaklanan bazı kısıtlamalar mevcuttur.
tuple (DBUS_STRUCT)
-------------------
Tuple içindeki elemanlar keyfi tipte olabilir.
(1, "iki", 3.0, [1, 2, 3])
dict (DBUS_ARRAY of DBUS_DICT_ELEM)
-----------------------------------
Dict anahtarları ve elemanları (kendi aralarında) aynı tipte olmalı.
Doğru:
{"a": 1, "b": 2}
{1: "deneme", 2: "test"}
Yanlış:
{1: "a", "2": "b"} # Anahtarlar farklı tipte
{"a": 1, "b": 2.0} # Elemanlar farklı tipte
list (DBUS_ARRAY)
-----------------
Liste içindeki elemanların tipi aynı olmalı.
Doğru:
[1, 2, 3, 4, 5]
["a", "b", "c"]
[{"a": 1, "b": 2, "c": 3}, {"x": 10, "y": 20}]
[(1, 2.0, "üç"), (10, 20.0, "otuz")]
Yanlış:
[1, 2.0, "üç"] # Farklı tipte elemanlar içeriyor
[(1, 2.0, "üç"), (1.0, "iki", 3.0)] # Her tuple aynı formatta olmalı
[{"a": 1, "b": 2}, {"a": 1.0, "b": 2.0}] # Her dict aynı formatta olmalı
PROJECT (comar-dbus)
# Application name
SET (APP_NAME "comar")
SET (APP_SUFFIX "2")
# Version string
SET (VERSION_MAJOR "2")
SET (VERSION_MINOR "0")
SET (VERSION_PATCH "0")
# Uncomment this for production releases.
SET (VERSION_SUFFIX "svn")
SET (FLAGS "-g -O0 -Werror -Wcast-align -Wno-uninitialized -Wall -fstrict-aliasing") # -fprofile-arcs -ftest-coverage")
SET (CMAKE_C_FLAGS "${FLAGS}")
# Append version suffix, if specified
SET (VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
IF (VERSION_SUFFIX)
SET (VERSION "${VERSION}_${VERSION_SUFFIX}")
ENDIF (VERSION_SUFFIX)
# Append name suffix, if specified
IF (APP_SUFFIX)
SET (APP_NAME "${APP_NAME}${APP_SUFFIX}")
ENDIF (APP_SUFFIX)
# Define version, config dir, data dir and log file.
ADD_DEFINITIONS (-D'VERSION="${VERSION}"'
-D'CONFIG_DIR="/etc/${APP_NAME}"'
-D'DATA_DIR="/var/db/${APP_NAME}"'
-D'PID_FILE="/var/run/${APP_NAME}.pid"'
-D'LOG_FILE="/var/log/${APP_NAME}.log"')
# Set standard sources
SET (SOURCES src/main.c
src/cfg.c
src/csl.c
src/data.c
src/dbus.c
src/iksemel.c
src/log.c
src/process.c
src/pydbus.c
src/policy.c
src/model.c
src/utility.c)
# Set standard libraries
SET (LIBS python2.4
dbus-1
polkit-dbus
db)
# Include standard headers
INCLUDE_DIRECTORIES (include/
/usr/include/python2.4
/usr/include/dbus-1.0
/usr/lib/dbus-1.0/include
/usr/include/PolicyKit)
# Load CMAKE modules
SET (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/")
# Check if system has PolicyKit
# PK is not a required dependency in SVN builds.
FIND_PACKAGE (PolicyKit REQUIRED)
# Compile comar from specified sources
ADD_EXECUTABLE (comar ${SOURCES})
# Link comar to specified libraries
TARGET_LINK_LIBRARIES(comar ${LIBS} )
# Install comar to /usr/bin/<app-name>
INSTALL (PROGRAMS comar
DESTINATION /usr/bin
RENAME ${APP_NAME})
# Install model file under /etc/<app-name>/
INSTALL (FILES etc/model.xml
DESTINATION /etc/${APP_NAME})
# Install comar system bus configuration under /etc/dbus-1/system.d/
INSTALL (FILES
etc/comar.conf
DESTINATION /etc/dbus-1/system.d
RENAME ${APP_NAME}.conf)
# Install comar service activation under /usr/share/dbus-1/system-services/
INSTALL (FILES
etc/tr.org.pardus.comar.service
DESTINATION /usr/share/dbus-1/system-services/)
# Install PK policies
INSTALL (DIRECTORY
etc/policy
DESTINATION /usr/share/PolicyKit
PATTERN ".svn" EXCLUDE)
# Doxyfile 1.5.4
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "comar doc "
PROJECT_NUMBER = 1
OUTPUT_DIRECTORY =
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = YES
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = YES
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text "
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = include \
src
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.h
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
HTML_DYNAMIC_SECTIONS = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = YES
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = NO
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = YES
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES
COMAR 2.0
=========
Nedir:
------
COMAR (COnfiguration MAnageR), sistemin düzgün çalışması için gerekli olan
donanım, açılış, ağ, kullanıcı, zaman, görüntü gibi ayarların mümkün olduğu
kadar otomatik bir biçimde yapılmasını sağlayan, PolicyKit ile sağlanan yetki
kontrolü dahilinde bu ayarları basit ve anlaşılır bir biçimde değiştirme
olanağı sağlayan bir DBus sistem servisidir.
Gerekenler:
-----------
- Standart inşa araçları (gcc, binutils, vs)
- Linux kernel 2.6.x
- DBus 1.1.2
- PolicyKit 0.7
- ConsoleKit 0.2
- Python 2.4
- Berkeley DB
- cmake
Derleme:
--------
İnşa sistemi olarak CMake kullanılmıştır. Çomar yürütücüsü ve araçlarını inşa
etmek için:
cmake .
make
komutlarını çalıştırmanız yeterlidir. Sisteme kurulum yapmak için
(sudo) make install DESTDIR=/
komutunu kullanmalısınız.
Çalıştırma:
-----------
(sudo) comar --print --debug=full
komutunu verebilirsiniz. Tabi bunun için root yetkilerine sahip olmanız gerekir.
"--print" seçeneği, mesajların kayıt dosyası yerine konsola basılmasını sağlar.
Diğer komut satırı parametrelerini,
comar --help
komutuyla görebilirsiniz.
FILE (GLOB PK_LIBRARY /usr/lib/libpolkit-grant.so.2.*)
IF (PK_LIBRARY)
SET (HAVE_POLICYKIT TRUE)
ENDIF (PK_LIBRARY)
IF (HAVE_POLICYKIT)
IF (NOT PolicyKit_FIND_QUIETLY)
MESSAGE (STATUS "Found PolicyKit")
ENDIF (NOT PolicyKit_FIND_QUIETLY)
ELSE (HAVE_POLICYKIT)
IF (PolicyKit_FIND_REQUIRED)
MESSAGE (FATAL_ERROR "Could not find PolicyKit.")
ELSE (PolicyKit_FIND_REQUIRED)
MESSAGE (STATUS "Could not find PolicyKit. Access control feature will be disabled.")
ENDIF (PolicyKit_FIND_REQUIRED)
ENDIF (HAVE_POLICYKIT)
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
<allow own="tr.org.pardus.comar"/>
</policy>
</busconfig>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>
<action id="tr.org.pardus.comar.boot.loader.updatekernelentry">
<description>Update kernel release on specified partition.</description>
<message>System policy prevents updating kernel.</message>
<defaults>
<allow_any>no</allow_any>
<allow_active>no</allow_active>
<allow_inactive>no</allow_inactive>
</defaults>
</action>
<action id="tr.org.pardus.comar.boot.loader.removeentry">
<description>Remove entry from boot loader.</description>
<message>System policy prevents removing entry.</message>
<defaults>
<allow_any>auth_admin_keep_session</allow_any>
<allow_active>auth_admin_keep_session</allow_active>
<allow_inactive>auth_admin_keep_session</allow_inactive>
</defaults>
</action>
<action id="tr.org.pardus.comar.boot.loader.removeunused">
<description>Remove unused kernel from system.</description>
<message>System policy prevents removing unused kernels.</message>
<defaults>
<allow_any>auth_admin_keep_session</allow_any>
<allow_active>auth_admin_keep_session</allow_active>
<allow_inactive>auth_admin_keep_session</allow_inactive>