polkit: vendor upstream client libraries (libpolkit-gobject-1 + agent-1)
kf6-kauth deliberately uses the real polkit backend (KAUTH_BACKEND_NAME= POLKITQT6-1), and PolkitQt6-1 links the upstream polkit CLIENT libraries, which nothing provided (redbear-polkit is only the org.freedesktop.PolicyKit1 daemon). This makes the KDE authorization mechanism actually work, not just compile. - New recipe local/recipes/libs/polkit (vendored polkit 124, full-fork path=source) built with -Dlibs-only=true so polkitd + the JS rules engine are skipped (redbear-polkit is the authority daemon). glib/gio/expat deps already exist. - src/meson.build: build src/polkitagent even under libs-only — libpolkit-agent-1 + its PAM auth helper are client-side, needed by PolkitQt6-1, and depend only on libpolkit-gobject-1 + glib + PAM (pam-redbear, the same PAM SDDM uses). Only the daemon/backend/programs stay gated off. - pam-redbear: add the standard PAM_MAX_MSG_SIZE/PAM_MAX_RESP_SIZE constants its header was missing (polkit-agent-helper-1 needs them). - polkit-qt6: depend on polkit; it now finds polkit-gobject-1 + polkit-agent-1 (v124) and builds. Auth prompts verify passwords via pam-redbear; authorization decisions come from the redbear-polkit daemon over D-Bus.
This commit is contained in:
@@ -64,6 +64,9 @@ typedef int pam_item_type;
|
||||
#define PAM_CHANGE_EXPIRED_AUTHTOK 0x0020
|
||||
|
||||
#define PAM_MAX_NUM_MSG 32
|
||||
/* Standard Linux-PAM size limits (values from Linux-PAM's _pam_types.h). */
|
||||
#define PAM_MAX_MSG_SIZE 512
|
||||
#define PAM_MAX_RESP_SIZE 512
|
||||
|
||||
#define PAM_PROMPT_ECHO_OFF 1
|
||||
#define PAM_PROMPT_ECHO_ON 2
|
||||
|
||||
@@ -20,6 +20,7 @@ template = "custom"
|
||||
dependencies = [
|
||||
"qtbase",
|
||||
"redbear-polkit",
|
||||
"polkit", # libpolkit-gobject-1 client lib to link against
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# polkit — PolicyKit authorization framework (client libraries only).
|
||||
#
|
||||
# Red Bear OS uses its own org.freedesktop.PolicyKit1 D-Bus daemon
|
||||
# (local/recipes/system/redbear-polkit, a Rust reimplementation). But the KDE
|
||||
# stack (kf6-kauth -> PolkitQt6-1) links the upstream *client* library
|
||||
# libpolkit-gobject-1, which speaks the standard org.freedesktop.PolicyKit1
|
||||
# D-Bus interface to whatever daemon owns that bus name — i.e. redbear-polkit.
|
||||
#
|
||||
# So this recipe builds ONLY the polkit libraries (libpolkit-gobject-1,
|
||||
# libpolkit-agent-1) via upstream's `-Dlibs-only=true`, which skips polkitd
|
||||
# entirely (no JS rules engine, no PAM). The libraries are glib/gio based; the
|
||||
# actual authorization decisions are made by the redbear-polkit daemon.
|
||||
#
|
||||
# upstream: https://gitlab.freedesktop.org/polkit/polkit (tag 124)
|
||||
[source]
|
||||
# Vendored full-fork model: committed source/ tree (offline, reproducible).
|
||||
path = "source"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"glib",
|
||||
"expat",
|
||||
"dbus",
|
||||
# libpolkit-agent-1 authenticates via PAM (same pam-redbear shim SDDM uses),
|
||||
# so polkit's auth prompts verify passwords the same way as login.
|
||||
"pam-redbear",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
export PKG_CONFIG="${COOKBOOK_PKG_CONFIG:-x86_64-unknown-redox-pkg-config}"
|
||||
export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}"
|
||||
export PKG_CONFIG_LIBDIR="${COOKBOOK_SYSROOT}/usr/lib/pkgconfig:${COOKBOOK_SYSROOT}/share/pkgconfig"
|
||||
|
||||
export CC="x86_64-unknown-redox-gcc"
|
||||
export CXX="x86_64-unknown-redox-g++"
|
||||
export AR="x86_64-unknown-redox-ar"
|
||||
export STRIP="x86_64-unknown-redox-strip"
|
||||
export RANLIB="x86_64-unknown-redox-ranlib"
|
||||
export CFLAGS="-I${COOKBOOK_SYSROOT}/usr/include --sysroot=${COOKBOOK_SYSROOT} -Wno-error=deprecated-declarations -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"
|
||||
export LDFLAGS="--sysroot=${COOKBOOK_SYSROOT}"
|
||||
|
||||
cookbook_meson \\
|
||||
-Dlibs-only=true \\
|
||||
-Dintrospection=false \\
|
||||
-Dexamples=false \\
|
||||
-Dtests=false \\
|
||||
-Dman=false \\
|
||||
-Dgtk_doc=false \\
|
||||
-Dsession_tracking=ConsoleKit
|
||||
"""
|
||||
|
||||
[package]
|
||||
version = "124"
|
||||
description = "polkit 124 client libraries (libpolkit-gobject-1, libpolkit-agent-1) for Red Bear OS. Built with -Dlibs-only (no polkitd/JS/PAM); the authorization daemon is redbear-polkit. Provides the polkit-gobject-1 pkg-config module that PolkitQt6-1 / kf6-kauth link against."
|
||||
@@ -0,0 +1 @@
|
||||
((c-mode . ((indent-tabs-mode . nil)))))
|
||||
@@ -0,0 +1,77 @@
|
||||
image: fedora:latest
|
||||
|
||||
variables:
|
||||
DEPENDENCIES: gcc
|
||||
gcc-c++
|
||||
libtool
|
||||
autoconf
|
||||
automake
|
||||
gettext
|
||||
gettext-devel
|
||||
gtk-doc
|
||||
gobject-introspection-devel
|
||||
make
|
||||
libxslt
|
||||
pkgconfig(gio-2.0)
|
||||
pkgconfig(mozjs-91)
|
||||
pkgconfig(duktape)
|
||||
expat-devel
|
||||
pkgconfig(libsystemd)
|
||||
pkgconfig(systemd)
|
||||
pam-devel
|
||||
python3-dbusmock
|
||||
meson
|
||||
git
|
||||
dbus-devel
|
||||
|
||||
before_script:
|
||||
- dnf upgrade -y --nogpgcheck fedora-release fedora-repos*
|
||||
- dnf update -y && dnf install -y $DEPENDENCIES
|
||||
|
||||
|
||||
build_stable:
|
||||
stage: test
|
||||
script:
|
||||
- meson setup
|
||||
-D authfw=pam
|
||||
-D examples=true
|
||||
-D gtk_doc=true
|
||||
-D introspection=true
|
||||
-D man=true
|
||||
-D session_tracking=libsystemd-login
|
||||
-D tests=true
|
||||
-D cpp_args="-D_FORTIFY_SOURCE=2"
|
||||
builddir
|
||||
- meson compile -C builddir
|
||||
- meson test -C builddir
|
||||
- meson install -C builddir
|
||||
- DESTDIR=$(pwd)/DESTDIR meson install -C builddir
|
||||
artifacts:
|
||||
name: 'test logs'
|
||||
when: 'always'
|
||||
paths:
|
||||
- 'builddir/meson-logs/*.txt'
|
||||
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
script:
|
||||
- meson setup
|
||||
-D gtk_doc=true
|
||||
-D man=true
|
||||
builddir
|
||||
- meson compile -C builddir polkit-1-doc:custom
|
||||
- rm -rf public && mkdir public
|
||||
- cp -r builddir/docs/polkit/html/* public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
- if: $CI_PIPELINE_SOURCE == 'push'
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
## Current behaviour, description of the problem
|
||||
[State what seems to be the biggest issue here]: #
|
||||
|
||||
|
||||
## Desired behaviour
|
||||
[What polkit should do, but doesn't]: #
|
||||
|
||||
|
||||
## Reproducer
|
||||
[What are the steps to reproduce the issue. This will help us to find the root cause faster.]: #
|
||||
|
||||
|
||||
## Detailed description
|
||||
[Please try to be as descriptive, yet concise here]: #
|
||||
[Version of polkit]: #
|
||||
[Version of OS]: #
|
||||
[Anything else related to the issue]: #
|
||||
@@ -0,0 +1,7 @@
|
||||
## Summary
|
||||
[short description of the problem and the change]: #
|
||||
|
||||
|
||||
|
||||
## Detailed description and/or reproducer
|
||||
[Please be more descriptive yet concise here. This text will help us with testing, urgency and severity assessment.]: #
|
||||
@@ -0,0 +1,30 @@
|
||||
# See the documentation for more information:
|
||||
# https://packit.dev/docs/configuration/
|
||||
|
||||
specfile_path: polkit.spec
|
||||
|
||||
# add or remove files that should be synced
|
||||
files_to_sync:
|
||||
- polkit.spec
|
||||
- .packit.yaml
|
||||
|
||||
# name in upstream package repository or registry (e.g. in PyPI)
|
||||
upstream_package_name: polkit
|
||||
# downstream (Fedora) RPM package name
|
||||
downstream_package_name: polkit
|
||||
|
||||
srpm_build_deps:
|
||||
- wget
|
||||
- sed
|
||||
|
||||
actions:
|
||||
post-upstream-clone:
|
||||
- "wget https://src.fedoraproject.org/rpms/polkit/raw/rawhide/f/polkit.spec -O polkit.spec"
|
||||
- "wget https://src.fedoraproject.org/rpms/polkit/raw/rawhide/f/polkit.sysusers -O polkit.sysusers"
|
||||
- "sed -ri '/^Patch[0-9]+/d' polkit.spec"
|
||||
|
||||
jobs:
|
||||
- job: copr_build
|
||||
trigger: pull_request
|
||||
targets:
|
||||
- fedora-all
|
||||
@@ -0,0 +1,482 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
@@ -0,0 +1,108 @@
|
||||
SCM
|
||||
===
|
||||
|
||||
- anonymous checkouts
|
||||
|
||||
`$ git clone git://git.freedesktop.org/git/PolicyKit.git`
|
||||
|
||||
- checkouts if you got an ssh account on fd.o (username@ is optional)
|
||||
|
||||
`$ git clone ssh://[username@]git.freedesktop.org/git/PolicyKit.git`
|
||||
|
||||
- commit to local repository
|
||||
|
||||
`$ git commit -a`
|
||||
|
||||
- push local repository to master repository at fd.o (remember most patches
|
||||
requires review at the mailing list)
|
||||
|
||||
`$ git push`
|
||||
|
||||
- pull changes from master repository at fd.o
|
||||
|
||||
`$ git pull`
|
||||
|
||||
- diff of working tree versus local repository
|
||||
|
||||
`$ git diff`
|
||||
|
||||
- diff of local repository vs. master repository at fd.o
|
||||
|
||||
synchronize with upstream repo:
|
||||
`$ git pull`
|
||||
|
||||
(possibly merge changes)
|
||||
|
||||
generate the diff:
|
||||
`$ git diff origin HEAD`
|
||||
|
||||
- influential environment variables (set these in e.g. .bash_profile)
|
||||
|
||||
```bash
|
||||
export GIT_AUTHOR_NAME='Your Full Name'
|
||||
export GIT_COMMITTER_NAME='Your Full Name'
|
||||
export GIT_COMMITTER_EMAIL=youremail@domain.net
|
||||
export GIT_AUTHOR_EMAIL=youremail@domain.net
|
||||
```
|
||||
|
||||
- see also
|
||||
|
||||
http://www.kernel.org/pub/software/scm/git/docs/
|
||||
|
||||
|
||||
Committing code
|
||||
===
|
||||
|
||||
- Commit messages should be of the form (the five lines between the
|
||||
lines starting with ===)
|
||||
|
||||
> === **begin example commit** ===
|
||||
> short explanation of the commit
|
||||
>
|
||||
>
|
||||
>
|
||||
> Longer explanation explaining exactly what's changed, whether any
|
||||
> external or private interfaces changed, what bugs were fixed (with bug
|
||||
> tracker reference if applicable) and so forth. Be concise but not too brief.
|
||||
> === **end example commit** ===
|
||||
|
||||
- Always add a brief description of the commit to the _first_ line of
|
||||
the commit and terminate by two newlines (it will work without the
|
||||
second newline, but that is not nice for the interfaces).
|
||||
|
||||
- First line (the brief description) must only be one sentence and
|
||||
must not start with a capital letter. Don't use a trailing period
|
||||
either.
|
||||
|
||||
- The main description (the body) is normal prose and should use normal
|
||||
punctuation and capital letters where appropriate. Normally, for patches
|
||||
sent to a mailing list it's copied from there.
|
||||
|
||||
- When committing code on behalf of others use the --author option, e.g.
|
||||
```bash
|
||||
git commit -a --author "Joe Coder <joe@coder.org>"
|
||||
|
||||
Coding Style
|
||||
===
|
||||
|
||||
- Please follow the coding style already used.
|
||||
|
||||
- Write docs for all functions and structs and so on. We use gtkdoc format.
|
||||
|
||||
- All external interfaces (network protocols, file formats, etc.)
|
||||
should have documented specifications sufficient to allow an
|
||||
alternative implementation to be written. Our implementation should
|
||||
be strict about specification compliance (should not for example
|
||||
heuristically parse a file and accept not-well-formed
|
||||
data). Avoiding heuristics is also important for security reasons;
|
||||
if it looks funny, ignore it (or exit, or disconnect).
|
||||
|
||||
Code of Conduct
|
||||
===
|
||||
As with other projects hosted on freedesktop.org, Polkit follows its
|
||||
Code of Conduct, based on the Contributor Covenant. Please conduct
|
||||
yourself in a respectful and civilized manner when using the above
|
||||
mailing lists, bug trackers, etc:
|
||||
|
||||
`https://www.freedesktop.org/wiki/CodeOfConduct`
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,90 @@
|
||||
OVERVIEW
|
||||
========
|
||||
|
||||
polkit is a toolkit for defining and handling authorizations. It is
|
||||
used for allowing unprivileged processes to speak to privileged
|
||||
processes.
|
||||
|
||||
|
||||
DOCUMENTATION
|
||||
=============
|
||||
|
||||
Latest documentation, reference manual and API description of polkit can be found
|
||||
on project's Gitlab Pages
|
||||
https://polkit.pages.freedesktop.org/polkit
|
||||
|
||||
|
||||
Old reference can be found at
|
||||
https://www.freedesktop.org/software/polkit/docs/latest/
|
||||
|
||||
|
||||
RELEASES
|
||||
========
|
||||
|
||||
Latest releases are available at polkit's Gitlab Releases page:
|
||||
https://gitlab.freedesktop.org/polkit/polkit/-/releases
|
||||
|
||||
|
||||
Older releases are still available as tarballs at
|
||||
https://www.freedesktop.org/software/polkit/releases/
|
||||
|
||||
|
||||
To verify the authenticity of the compressed tarball, use this command
|
||||
|
||||
``` bash
|
||||
$ gpg --verify polkit-$(VERSION).tar.gz.sign polkit-$(VERSION).tar.gz
|
||||
$ gpg: Signature made Tue 23 Apr 2019 04:19:29 PM CEST using RSA key ID FFDCE258
|
||||
$ gpg: Good signature from "Jan Rybar (Red Hat) <jrybar@redhat.com>"
|
||||
```
|
||||
|
||||
Public key available at
|
||||
|
||||
https://keys.openpgp.org/vks/v1/by-fingerprint/7FFB7D6BD83147D74284E3178CEB3030FFDCE258
|
||||
|
||||
|
||||
BUGS and DEVELOPMENT
|
||||
====================
|
||||
|
||||
Please report non-security bugs via the polkit's freedesktop.org GitLab at
|
||||
|
||||
https://gitlab.freedesktop.org/polkit/polkit/issues
|
||||
|
||||
The other way, in case of **non**-security issues, is to contact developers via official polkit's FreeDesktop.org mailing list at
|
||||
|
||||
polkit-devel@lists.freedesktop.org
|
||||
|
||||
SECURITY ISSUES
|
||||
===============
|
||||
|
||||
Please report any security issues not yet known to public
|
||||
by creating new issue and checking the ***This issue is confidential*** checkbox.
|
||||
|
||||
https://gitlab.freedesktop.org/polkit/polkit/issues
|
||||
|
||||
|
||||
BUILD INSTRUCTIONS
|
||||
==================
|
||||
|
||||
**polkit** uses [meson build system](https://mesonbuild.com/) for configuration with *ninja* as backend and *gcc* as compiler.
|
||||
To configure and compile your copy of polkit tarball, simply follow meson build instructions in the following manner:
|
||||
```
|
||||
$ meson setup [[-D option]...] target_directory
|
||||
$ meson compile -C target_directory
|
||||
...
|
||||
# meson install -C target_directory
|
||||
```
|
||||
|
||||
List of available configuration options can be obtained with `meson configure` command.
|
||||
|
||||
I WANT TO CONTRIBUTE
|
||||
====================
|
||||
Your merge requests and patch suggestions are welcome! If you want to contribute, a merge request on this Gitlab instance is a preferred way, yet not the only one. Please consult other options with this upsteam's maintainers.
|
||||
|
||||
Should you already have a freedesktop.org Gitlab account, please file your merge request. In this case, please **don't force-push any further changes** into the merge request and add a new commit into the MR instead.
|
||||
|
||||
Please note that there are restrictions in effect on FreeDesktop.org's instance of Gitlab, therefore new users need to take action before contributing directly via their own fork:
|
||||
https://gitlab.freedesktop.org/freedesktop/freedesktop/-/wikis/home#warning-restrictions-due-to-spam-warning
|
||||
|
||||
|
||||
|
||||
Thank you in advance.
|
||||
@@ -0,0 +1,10 @@
|
||||
policy = 'org.freedesktop.policykit.policy'
|
||||
|
||||
i18n.merge_file(
|
||||
input: policy + '.in',
|
||||
output: '@BASENAME@',
|
||||
po_dir: po_dir,
|
||||
data_dirs: its_dir,
|
||||
install: true,
|
||||
install_dir: pk_pkgactiondir,
|
||||
)
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD polkit Policy Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
|
||||
|
||||
<!-- Policy definitions for core polkit actions. Copyright (c) 2008-2012 Red Hat, Inc. -->
|
||||
|
||||
<policyconfig>
|
||||
<vendor>The polkit project</vendor>
|
||||
<vendor_url>http://www.freedesktop.org/wiki/Software/polkit/</vendor_url>
|
||||
|
||||
<action id="org.freedesktop.policykit.exec">
|
||||
<description>Run a program as another user</description>
|
||||
<message>Authentication is required to run a program as another user</message>
|
||||
<defaults>
|
||||
<allow_any>auth_admin</allow_any>
|
||||
<allow_inactive>auth_admin</allow_inactive>
|
||||
<allow_active>auth_admin</allow_active>
|
||||
</defaults>
|
||||
</action>
|
||||
|
||||
</policyconfig>
|
||||
@@ -0,0 +1,54 @@
|
||||
service_conf = {
|
||||
'libprivdir': pk_prefix / pk_libprivdir,
|
||||
'polkitd_user': polkitd_user,
|
||||
'polkitd_uid': polkitd_uid,
|
||||
}
|
||||
|
||||
configure_file(
|
||||
input: 'org.freedesktop.PolicyKit1.service.in',
|
||||
output: '@BASENAME@',
|
||||
configuration: service_conf,
|
||||
install: true,
|
||||
install_dir: dbus_system_bus_services_dir,
|
||||
)
|
||||
|
||||
configure_file(
|
||||
input: 'org.freedesktop.PolicyKit1.conf.in',
|
||||
output: '@BASENAME@',
|
||||
configuration: {'polkitd_user': polkitd_user},
|
||||
install: true,
|
||||
install_dir: dbus_policydir,
|
||||
)
|
||||
|
||||
if enable_pam
|
||||
configure_file(
|
||||
input: 'polkit-1.in',
|
||||
output: '@BASENAME@',
|
||||
configuration: pam_conf,
|
||||
install: true,
|
||||
install_dir: pam_prefix,
|
||||
)
|
||||
endif
|
||||
|
||||
if session_tracking == 'libsystemd-login'
|
||||
configure_file(
|
||||
input: 'polkit.service.in',
|
||||
output: '@BASENAME@',
|
||||
configuration: service_conf,
|
||||
install: true,
|
||||
install_dir: systemd_systemdsystemunitdir,
|
||||
)
|
||||
|
||||
configure_file(
|
||||
input: 'polkit.conf.in',
|
||||
output: '@BASENAME@',
|
||||
configuration: service_conf,
|
||||
install: true,
|
||||
install_dir: systemd_sysusers_dir,
|
||||
)
|
||||
endif
|
||||
|
||||
install_data(
|
||||
'policyconfig-1.dtd',
|
||||
install_dir: pk_datadir / 'polkit-1'
|
||||
)
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
|
||||
<node name="/">
|
||||
|
||||
<interface name="org.freedesktop.PolicyKit1.AuthenticationAgent">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Authentication Agent Interface"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="<para>This D-Bus interface is used for communication between the system-wide PolicyKit daemon and one or more authentication agents each running in a user session.</para><para>An authentication agent must implement this interface and register (passing the object path of the object implementing the interface) using the org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent() and org.freedesktop.PolicyKit1.Authority.UnregisterAuthenticationAgent() methods on the #org.freedesktop.PolicyKit1.Authority interface of the PolicyKit daemon.</para>"/>
|
||||
|
||||
<method name="BeginAuthentication">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="<para>Called
|
||||
by the PolicyKit daemon when the authentication agent needs the
|
||||
user to authenticate as one of the identities in @identities for
|
||||
the action with the identifier @action_id.</para><para>This
|
||||
authentication is normally achieved via the
|
||||
PolkitAgentSession API, which invokes a private
|
||||
setuid helper process to verify the authentication. When
|
||||
successful, it calls the
|
||||
org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2()
|
||||
method on the #org.freedesktop.PolicyKit1.Authority interface of
|
||||
the PolicyKit daemon before returning. If the user dismisses the
|
||||
authentication dialog, the authentication agent should return an
|
||||
error.</para>"/>
|
||||
|
||||
<arg name="action_id" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The identifier for the action that the user is authentication for."/>
|
||||
</arg>
|
||||
|
||||
<arg name="message" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The message to display to the user. This is translated into the locale passed when registering the authentication agent using org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
|
||||
</arg>
|
||||
|
||||
<arg name="icon_name" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The themed icon describing the action or the empty string if no icon is set."/>
|
||||
</arg>
|
||||
|
||||
<arg name="details" direction="in" type="a{ss}">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Details about the authentication request. This is a dictionary of key/value pairs where both key and value are strings. These strings are translated into the locale passed when registering the authentication agent using org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
|
||||
</arg>
|
||||
|
||||
<arg name="cookie" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A cookie identifying the authentication request."/>
|
||||
</arg>
|
||||
|
||||
<arg name="identities" direction="in" type="a(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Array<Identity>"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="An array of #Identity structs that the user can use for authentication."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="CancelAuthentication">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Called by the PolicyKit daemon if the authentication agent needs to cancel an authentication dialog."/>
|
||||
|
||||
<arg name="cookie" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The cookie identifying the authentication request."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
</interface>
|
||||
|
||||
</node>
|
||||
@@ -0,0 +1,438 @@
|
||||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
<node>
|
||||
|
||||
<interface name="org.freedesktop.PolicyKit1.Authority">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Authority Interface"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="This D-Bus interface is implemented by the <literal>/org/freedesktop/PoliycKit1/Authority</literal> object on the well-known name <literal>org.freedesktop.PolicyKit1</literal> on the system message bus."/>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- Subject struct -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareStruct" value="Subject">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Subjects"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="<para>This struct describes subjects such as UNIX processes. It is typically used to check if a given process is authorized for an action.</para><para>The following kinds of subjects are known:</para>
|
||||
<formalpara><title>Unix Process</title><para><literal>subject_kind</literal> should be set to <literal>unix-process</literal> with keys <literal>pidfd</literal> (of type <literal>int32</literal>) and <literal>uid</literal> (of type <literal>int32</literal>) (if the operating system supports ProcessID File Descriptors), or alternatively with keys <literal>pid</literal> (of type <literal>uint32</literal>), <literal>uid</literal> (of type <literal>int32</literal>) and <literal>start-time</literal> (of type <literal>uint64</literal>).</para></formalpara>
|
||||
<formalpara><title>Unix Session</title><para><literal>subject_kind</literal> should be set to <literal>unix-session</literal> with the key <literal>session-id</literal> (of type <literal>string</literal>).</para></formalpara>
|
||||
<formalpara><title>System Bus Name</title><para><literal>subject_kind</literal> should be set to <literal>system-bus-name</literal> with the key <literal>name</literal> (of type <literal>string</literal>).</para></formalpara>"/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:subject_kind">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The type of the subject."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="Dict<String,Variant>:subject_details">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Details about the subject. Depending of the value of @subject_kind, a set of well-defined key/value pairs are guaranteed to be available."/>
|
||||
</annotation>
|
||||
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- Identity struct -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareStruct" value="Identity">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Identities"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="<para>This struct describes identities such as UNIX users and UNIX groups. It is typically used to check if a given process is authorized for an action.</para><para>The following kinds of identities are known:</para>
|
||||
<formalpara><title>Unix User</title><para><literal>identity_kind</literal> should be set to <literal>unix-user</literal> with key <literal>uid</literal> (of type <literal>uint32</literal>).</para></formalpara>
|
||||
<formalpara><title>Unix Group</title><para><literal>identity_kind</literal> should be set to <literal>unix-group</literal> with key <literal>gid</literal> (of type <literal>uint32</literal>).</para></formalpara>
|
||||
|
||||
"/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:identity_kind">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Type of identity."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="Dict<String,Variant>:identity_details">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Details about the identity. Depending of the value of @identity_kind, a set of well-defined key/value pairs are guaranteed to be available."/>
|
||||
</annotation>
|
||||
|
||||
<!-- TODO: document values in hash map for each identity type-->
|
||||
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- ActionDescription struct -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareStruct" value="ActionDescription">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Actions"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="This struct describes actions registered with the PolicyKit daemon."/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:action_id">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Action Identifier."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:description">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Localized description of the action."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:message">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Localized message to be displayed when making the user authenticate for an action."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:vendor_name">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Name of the provider of the action or the empty string."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:vendor_url">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A URL pointing to a place with more information about the action or the empty string."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:icon_name">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The themed icon describing the action or the empty string if no icon is set."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="ImplicitAuthorization:implicit_any">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A value from the #ImplicitAuthorization enumeration for implicit authorizations that apply to any #Subject."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="ImplicitAuthorization:implicit_inactive">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A value from the #ImplicitAuthorization enumeration for implicit authorizations that apply any #Subject in an inactive user session on the local console."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="ImplicitAuthorization:implicit_active">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A value from the #ImplicitAuthorization enumeration for implicit authorizations that apply any #Subject in an active user session on the local console."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="Dict<String,String>:annotations">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Annotations for the action."/>
|
||||
</annotation>
|
||||
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- Flags used for checking authorizations -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareFlags" value="CheckAuthorizationFlags">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Flags used when checking authorizations"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Flags used in the org.freedesktop.PolicyKit1.Authority.CheckAuthorization() method."/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Flags.Member" value="AllowUserInteraction">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="If the #Subject can obtain the authorization through authentication, and an authentication agent is available, then attempt to do so. Note, this means that the org.freedesktop.PolicyKit1.Authority.CheckAuthorization() method will block while the user is being asked to authenticate."/>
|
||||
</annotation>
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- An structure containing the results of an authorization check -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareStruct" value="AuthorizationResult">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Authorization Results"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Describes the result of calling org.freedesktop.PolicyKit1.Authority.CheckAuthorization()."/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="Boolean:is_authorized">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="TRUE if the given #Subject is authorized for the given action."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="Boolean:is_challenge">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="TRUE if the given #Subject could be authorized if more information was provided, and %CheckAuthorizationFlags.AllowUserInteraction wasn't passed or no suitable authentication agent was available."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="Dict<String,String>:details">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Details for the result or empty if not authorized. Known key/value-pairs include <literal>polkit.temporary_authorization_id</literal> (if the authorization is temporary, this is set to the opaque temporary authorization id), <literal>polkit.retains_authorization_after_challenge</literal> (Set to a non-empty string if the authorization will be retained after authentication (if is_challenge is TRUE)) and <literal>polkit.lockdown</literal> (set to a non-empty string if the action is locked down)."/>
|
||||
</annotation>
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- An enumeration for implicit authorizations -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareEnum" value="ImplicitAuthorization">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Implicit authorizations"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="An enumeration for granting implicit authorizations."/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Enum.Member" value="NotAuthorized">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The #Subject is not authorized."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Enum.Member" value="AuthenticationRequired">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Authentication is required."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Enum.Member" value="AdministratorAuthenticationRequired">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Authentication as an administrator is required."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Enum.Member" value="AuthenticationRequiredRetained">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Authentication is required. If the authorization is obtained, it is retained."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Enum.Member" value="AdministratorAuthenticationRequiredRetained">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Authentication as an administrator is required. If the authorization is obtained, it is retained."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Enum.Member" value="Authorized">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The subject is authorized."/>
|
||||
</annotation>
|
||||
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- The error domain used for reporting errors -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareErrorDomain" value="Error">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Errors"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Errors that can be returned by various method calls."/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.Failed">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The operation failed."/>
|
||||
</annotation>
|
||||
<annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.Cancelled">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The operation was cancelled."/>
|
||||
</annotation>
|
||||
<annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.NotSupported">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The operation is not supported."/>
|
||||
</annotation>
|
||||
<annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.NotAuthorized">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="You are not authorized to perform the requested operation."/>
|
||||
</annotation>
|
||||
|
||||
<!-- errors not exposed in GObject library follows here -->
|
||||
<annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique">
|
||||
<annotation name="org.gtk.EggDBus.ErrorDomain.Member.Value" value="1000"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The passed @cancellation_id is already in use."/>
|
||||
</annotation>
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- Flags describing what features the Authority implementation supports -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareFlags" value="AuthorityFeatures">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Authority Features"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Flags describing features supported by the Authority implementation."/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Flags.Member" value="TemporaryAuthorization">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The authority supports temporary authorizations that can be obtained through authentication."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Flags.Member" value="Lockdown">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The authority supports the org.freedesktop.PolicyKit1.Authority.AddLockdownForAction() and org.freedesktop.PolicyKit1.Authority.RemoveLockdownForAction() methods."/>
|
||||
</annotation>
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<property name="BackendName" type="s" access="read">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The name of the currently used Authority backend."/>
|
||||
</property>
|
||||
|
||||
<property name="BackendVersion" type="s" access="read">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The version of the currently used Authority backend."/>
|
||||
</property>
|
||||
|
||||
<property name="BackendFeatures" type="u" access="read">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="AuthorityFeatures"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The features supported by the currently used Authority backend."/>
|
||||
</property>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<method name="EnumerateActions">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Enumerates all registered PolicyKit actions."/>
|
||||
|
||||
<arg name="locale" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The locale to get descriptions in or the blank string to use the system locale."/>
|
||||
</arg>
|
||||
|
||||
<arg name="action_descriptions" direction="out" type="a(ssssssuuua{ss})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Array<ActionDescription>"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="An array of #ActionDescription structs."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<method name="CheckAuthorization">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="<para>Checks if @subject is authorized to perform the action with identifier @action_id.</para><para>If @cancellation_id is non-empty and already in use for the caller, the %org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique error is returned.</para><para>Note that %CheckAuthorizationFlags.AllowUserInteraction SHOULD be passed ONLY if the event that triggered the authorization check is stemming from an user action, e.g. the user pressing a button or attaching a device.</para>"/>
|
||||
|
||||
<arg name="subject" direction="in" type="(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A #Subject struct."/>
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Subject"/>
|
||||
</arg>
|
||||
|
||||
<arg name="action_id" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Identifier for the action that @subject is attempting to do."/>
|
||||
</arg>
|
||||
|
||||
<arg name="details" direction="in" type="a{ss}">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Details describing the action. Keys starting with <literal>polkit.</literal> are reserved for internal use and cannot be used."/>
|
||||
</arg>
|
||||
|
||||
<arg name="flags" direction="in" type="u">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="CheckAuthorizationFlags"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A set of #CheckAuthorizationFlags."/>
|
||||
</arg>
|
||||
|
||||
<arg name="cancellation_id" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A unique id used to cancel the the authentication check via org.freedesktop.PolicyKit1.Authority.CancelCheckAuthorization() or the empty string if cancellation is not needed."/>
|
||||
</arg>
|
||||
|
||||
<arg name="result" direction="out" type="(bba{ss})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="AuthorizationResult"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="An #AuthorizationResult structure."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="CancelCheckAuthorization">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Cancels an authorization check."/>
|
||||
|
||||
<arg name="cancellation_id" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The @cancellation_id passed to org.freedesktop.PolicyKit1.Authority.CheckAuthorization()."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<method name="RegisterAuthenticationAgent">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="<para>Register an authentication agent.</para><para>Note that this should be called by the same effective UID which will be passed to org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2().</para>"/>
|
||||
|
||||
<arg name="subject" direction="in" type="(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Subject"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The subject to register the authentication agent for, typically a session subject."/>
|
||||
</arg>
|
||||
|
||||
<arg name="locale" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The locale of the authentication agent."/>
|
||||
</arg>
|
||||
|
||||
<arg name="object_path" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The object path of authentication agent object on the unique name of the caller."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="UnregisterAuthenticationAgent">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Unregister an authentication agent."/>
|
||||
|
||||
<arg name="subject" direction="in" type="(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Subject"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The @subject passed to org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
|
||||
</arg>
|
||||
|
||||
<arg name="object_path" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The @object_path passed to org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="AuthenticationAgentResponse">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful
|
||||
authentication, intended only for use by a privileged helper process
|
||||
internal to polkit. This method will fail unless a sufficiently privileged
|
||||
caller invokes it. Deprecated in favor of org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2."/>
|
||||
|
||||
<arg name="cookie" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The cookie identifying the authentication request that was passed to the authentication agent."/>
|
||||
</arg>
|
||||
|
||||
<arg name="identity" direction="in" type="(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Identity"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A #Identity struct describing what identity was authenticated."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="AuthenticationAgentResponse2">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful
|
||||
authentication, intended only for use by a privileged helper process
|
||||
internal to polkit. This method will fail unless a sufficiently privileged
|
||||
caller invokes it. Note this method was added in 0.114, and should be preferred over org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse()
|
||||
as it fixes a security issue."/>
|
||||
|
||||
<arg name="uid" direction="in" type="u">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The real uid of the agent. Normally set by the setuid helper program.
|
||||
Must match the effective UID of the caller of org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
|
||||
</arg>
|
||||
|
||||
<arg name="cookie" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The cookie identifying the authentication request that was passed to the authentication agent."/>
|
||||
</arg>
|
||||
|
||||
<arg name="identity" direction="in" type="(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Identity"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="A #Identity struct describing what identity was authenticated."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<!-- TemporaryAuthorization struct -->
|
||||
<annotation name="org.gtk.EggDBus.DeclareStruct" value="TemporaryAuthorization">
|
||||
<annotation name="org.gtk.EggDBus.DocString.Summary" value="Temporary Authorizations"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="This struct describes a temporary authorization."/>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:id">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="An opaque identifier for the temporary authorization."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="String:action_id">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The action the temporary authorization is for."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="Subject:subject">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Subject"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The subject the temporary authorization is for."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="UInt64:time_obtained">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="When the temporary authorization was obtained, in seconds since the Epoch Jan 1, 1970 0:00 UTC."/>
|
||||
</annotation>
|
||||
|
||||
<annotation name="org.gtk.EggDBus.Struct.Member" value="UInt64:time_expires">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="When the temporary authorization is set to expire, in seconds since the Epoch Jan 1, 1970 0:00 UTC."/>
|
||||
</annotation>
|
||||
</annotation>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<method name="EnumerateTemporaryAuthorizations">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Retrieves all temporary authorizations that applies to @subject."/>
|
||||
|
||||
<arg name="subject" direction="in" type="(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Subject"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The subject to get temporary authorizations for."/>
|
||||
</arg>
|
||||
|
||||
<arg name="temporary_authorizations" direction="out" type="a(ss(sa{sv})tt)">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Array<TemporaryAuthorization>"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="An array of #TemporaryAuthorization structs."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="RevokeTemporaryAuthorizations">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Revokes all temporary authorizations that applies to @subject."/>
|
||||
|
||||
<arg name="subject" direction="in" type="(sa{sv})">
|
||||
<annotation name="org.gtk.EggDBus.Type" value="Subject"/>
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The subject to revoke temporary authorizations from."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="RevokeTemporaryAuthorizationById">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Revokes all temporary authorizations that applies to @subject."/>
|
||||
|
||||
<arg name="id" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="The opaque identifier of the temporary authorization."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<method name="AddLockdownForAction">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Locks down an action so administrator authentication is always needed to obtain a temporary authorization for the action."/>
|
||||
<arg name="action_id" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Identifier for the action."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="RemoveLockdownForAction">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Removes the effect of a previous org.freedesktop.PolicyKit1.Authority.AddLockdownForAction() call."/>
|
||||
<arg name="action_id" direction="in" type="s">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="Identifier for the action."/>
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<!-- ---------------------------------------------------------------------------------------------------- -->
|
||||
|
||||
<signal name="Changed">
|
||||
<annotation name="org.gtk.EggDBus.DocString" value="This signal is emitted when actions and/or authorizations change"/>
|
||||
</signal>
|
||||
|
||||
</interface>
|
||||
</node>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
|
||||
|
||||
<!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="@polkitd_user@">
|
||||
<allow own="org.freedesktop.PolicyKit1"/>
|
||||
</policy>
|
||||
|
||||
<policy context="default">
|
||||
<allow send_destination="org.freedesktop.PolicyKit1"/>
|
||||
</policy>
|
||||
|
||||
<!-- Allow uid 0 to send messages on the org.freedesktop.PolicyKit1.AuthenticationAgent interface -->
|
||||
<policy user="@polkitd_user@">
|
||||
<allow send_interface="org.freedesktop.PolicyKit1.AuthenticationAgent"/>
|
||||
</policy>
|
||||
|
||||
</busconfig>
|
||||
@@ -0,0 +1,5 @@
|
||||
[D-BUS Service]
|
||||
Name=org.freedesktop.PolicyKit1
|
||||
Exec=@libprivdir@/polkitd --no-debug
|
||||
User=root
|
||||
SystemdService=polkit.service
|
||||
@@ -0,0 +1,26 @@
|
||||
<!ELEMENT policyconfig (vendor?, vendor_url?, icon_name?, action+)>
|
||||
|
||||
<!ELEMENT vendor (#PCDATA)>
|
||||
<!ELEMENT vendor_url (#PCDATA)>
|
||||
<!ELEMENT icon_name (#PCDATA)>
|
||||
|
||||
<!ELEMENT action (vendor?, vendor_url?, description+, message+, icon_name?, defaults, annotate*)>
|
||||
<!ATTLIST action id CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT description (#PCDATA)>
|
||||
<!ATTLIST description gettext-domain CDATA #IMPLIED>
|
||||
<!ATTLIST description xml:lang CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT message (#PCDATA)>
|
||||
<!ATTLIST message gettext-domain CDATA #IMPLIED>
|
||||
<!ATTLIST message xml:lang CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT defaults (allow_any|allow_inactive|allow_active)*>
|
||||
|
||||
<!-- CDATA must be one of no, auth_self, auth_admin, auth_self_keep, auth_admin_keep, yes -->
|
||||
<!ELEMENT allow_any (#PCDATA)>
|
||||
<!ELEMENT allow_inactive (#PCDATA)>
|
||||
<!ELEMENT allow_active (#PCDATA)>
|
||||
|
||||
<!ELEMENT annotate (#PCDATA)>
|
||||
<!ATTLIST annotate key CDATA #REQUIRED>
|
||||
@@ -0,0 +1,6 @@
|
||||
#%PAM-1.0
|
||||
|
||||
auth include @PAM_FILE_INCLUDE_AUTH@
|
||||
account include @PAM_FILE_INCLUDE_ACCOUNT@
|
||||
password include @PAM_FILE_INCLUDE_PASSWORD@
|
||||
session include @PAM_FILE_INCLUDE_SESSION@
|
||||
@@ -0,0 +1,11 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: polkit-agent-1
|
||||
Description: PolicyKit Authentication Agent API
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lpolkit-agent-1
|
||||
Cflags: -I${includedir}/polkit-1
|
||||
Requires: polkit-gobject-1
|
||||
@@ -0,0 +1,17 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
rulesdir=@datarootdir@/polkit-1/rules.d/
|
||||
policydir=@datarootdir@/polkit-1/actions/
|
||||
actiondir=@datarootdir@/polkit-1/actions/
|
||||
|
||||
Name: polkit-gobject-1
|
||||
Description: PolicyKit Authorization API
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lpolkit-gobject-1
|
||||
Cflags: -I${includedir}/polkit-1
|
||||
Requires: gio-2.0 >= 2.18 glib-2.0 >= 2.18
|
||||
# Programs using pkcheck can use this to determine
|
||||
# whether or not it can be passed a uid.
|
||||
pkcheck_supports_uid=true
|
||||
@@ -0,0 +1 @@
|
||||
u @polkitd_user@ @polkitd_uid@ "User for polkitd"
|
||||
@@ -0,0 +1,35 @@
|
||||
[Unit]
|
||||
Description=Authorization Manager
|
||||
Documentation=man:polkit(8)
|
||||
|
||||
[Service]
|
||||
Type=dbus
|
||||
BusName=org.freedesktop.PolicyKit1
|
||||
CapabilityBoundingSet=CAP_SETUID CAP_SETGID
|
||||
DeviceAllow=/dev/null rw
|
||||
DevicePolicy=strict
|
||||
ExecStart=@libprivdir@/polkitd --no-debug
|
||||
User=@polkitd_user@
|
||||
LimitMEMLOCK=0
|
||||
LockPersonality=yes
|
||||
MemoryDenyWriteExecute=yes
|
||||
NoNewPrivileges=yes
|
||||
PrivateDevices=yes
|
||||
PrivateNetwork=yes
|
||||
PrivateTmp=yes
|
||||
ProtectControlGroups=yes
|
||||
ProtectHome=yes
|
||||
ProtectKernelModules=yes
|
||||
ProtectKernelLogs=yes
|
||||
ProtectKernelTunables=yes
|
||||
ProtectSystem=strict
|
||||
ProtectClock=yes
|
||||
ProtectHostname=yes
|
||||
RemoveIPC=yes
|
||||
RestrictAddressFamilies=AF_UNIX
|
||||
RestrictNamespaces=yes
|
||||
RestrictRealtime=yes
|
||||
RestrictSUIDSGID=yes
|
||||
SystemCallArchitectures=native
|
||||
SystemCallFilter=@system-service
|
||||
UMask=0077
|
||||
@@ -0,0 +1,44 @@
|
||||
PolicyKit to polkit1 migration notes (DRAFT)
|
||||
|
||||
Build files:
|
||||
|
||||
• Replace polkit-dbus and polkit-grant with polkit-gobject-1 >= 0.91
|
||||
• There's no polkit-policy-file-validate in 0.91 yet.
|
||||
• The install directory for *.policy files is now $datadir/polkit-1/actions
|
||||
not $datadir/PolicyKit/policy
|
||||
|
||||
Policy files:
|
||||
|
||||
• There's no more auth_admin_keep_always authorisation. Use auth_admin_keep
|
||||
instead, and rethink what you're trying to achieve.
|
||||
auth_admin_keep is kept for the lifetime of the PolkitSubject.
|
||||
• If you're getting messages about "action foo is not registered" then check
|
||||
the polkitd-1 daemon output -- it'll print the reason why the policy format
|
||||
is invalid to stdout.
|
||||
|
||||
Source files:
|
||||
|
||||
• Don't include <polkit-dbus/polkit-dbus.h>, only include <polkit/polkit.h>
|
||||
• No kit_* OOM handling in the new library
|
||||
• polkit_sysdeps_get_exe_for_pid() doesn't exist anymore, just read contents
|
||||
of /proc/<pid>/cmdline
|
||||
• PolKitContext is now PolkitAuthority
|
||||
• PolKitError is now GError
|
||||
• polkit_bool_t is now gboolean
|
||||
• PolKitCaller is now PolkitSubject and a lot less powerful, but much quicker
|
||||
to create
|
||||
• polkit_caller_new_from_dbus_name() to polkit_system_bus_name_new()
|
||||
• PolKitAction is no more, just use the action_id everywhere.
|
||||
• polkit_context_is_caller_authorized() to
|
||||
polkit_authority_check_authorization_sync()
|
||||
• No need to do polkit_context_set_io_watch_functions() and icky
|
||||
g_io_add_watch() stuff to get changes from Polkit
|
||||
• polkit_context_new() to polkit_authority_get(), and polkit_context_unref() to
|
||||
g_object_unref() as expected
|
||||
• polkit_caller_get_pid() no longer exists, use
|
||||
http://cgit.freedesktop.org/PolicyKit/tree/src/polkit-dbus/polkit-dbus.c?id=POLICY_KIT_0_9#n417
|
||||
• polkit_caller_get_uid() no longer exists, use dbus_bus_get_unix_user() as in
|
||||
http://cgit.freedesktop.org/PolicyKit/tree/src/polkit-dbus/polkit-dbus.c?id=POLICY_KIT_0_9#n411
|
||||
• If you want data about the session from the PolKitContext, you have to ask
|
||||
ConsoleKit directly as in http://cgit.freedesktop.org/PolicyKit/tree/src/polkit-dbus/polkit-dbus.c?id=POLICY_KIT_0_9#n467
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
Needed for 1.0
|
||||
--------------
|
||||
|
||||
- check that all public but unstable API is properly guard off with
|
||||
I_KNOW_THIS_API_IS_SUBJECT_TO_CHANGE_ETC
|
||||
|
||||
- man page review / section review
|
||||
|
||||
- make sure library API is reasonably MT-safe
|
||||
|
||||
- avoid watching all name owner changes in PolkitBackendAuthority and
|
||||
PolkitBackendServer; remove the name-owner-changed vfunc
|
||||
|
||||
GNOME Authentication Agent
|
||||
--------------------------
|
||||
|
||||
- maybe expand on the notification icon so it is more detailed
|
||||
what temporary authorizations the session has - and maybe a way
|
||||
to only drop some of them
|
||||
@@ -0,0 +1 @@
|
||||
@libdir@/polkit-1/extensions
|
||||
@@ -0,0 +1,36 @@
|
||||
xsltproc = find_program('xsltproc', required: false)
|
||||
assert(xsltproc.found(), 'xsltproc is required for man pages generation')
|
||||
|
||||
xsltproc_cmd = [
|
||||
xsltproc,
|
||||
'--output', '@OUTPUT@',
|
||||
'--nonet',
|
||||
'--stringparam', 'man.base.url.for.relative.links', pk_api_docpath + '/',
|
||||
'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl',
|
||||
'@INPUT@',
|
||||
]
|
||||
|
||||
mans = [
|
||||
['polkit', '8'],
|
||||
['polkitd', '8'],
|
||||
['pkexec', '1'],
|
||||
['pkcheck', '1'],
|
||||
['pkaction', '1'],
|
||||
['pkttyagent', '1'],
|
||||
]
|
||||
|
||||
foreach man: mans
|
||||
xml = files(man[0] + '.xml')
|
||||
content_files += xml
|
||||
|
||||
output = '@0@.@1@'.format(man[0], man[1])
|
||||
|
||||
custom_target(
|
||||
output,
|
||||
input: xml,
|
||||
output: output,
|
||||
command: xsltproc_cmd,
|
||||
install: true,
|
||||
install_dir: pk_mandir / ('man' + man[1]),
|
||||
)
|
||||
endforeach
|
||||
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||
<!ENTITY version SYSTEM "../version.xml">
|
||||
]>
|
||||
<refentry id="pkaction.1" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<refentryinfo>
|
||||
<title>pkaction</title>
|
||||
<date>May 2009</date>
|
||||
<productname>polkit</productname>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>pkaction</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="version"></refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>pkaction</refname>
|
||||
<refpurpose>Get details about a registered action</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>pkaction</command>
|
||||
<arg><option>--version</option></arg>
|
||||
<arg><option>--help</option></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>pkaction</command>
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--verbose</option>
|
||||
</arg>
|
||||
</group>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>pkaction</command>
|
||||
<arg choice="plain">
|
||||
<option>--action-id</option>
|
||||
<replaceable>action</replaceable>
|
||||
</arg>
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--verbose</option>
|
||||
</arg>
|
||||
</group>
|
||||
</cmdsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id="pkaction-description">
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>pkaction</command> is used to obtain information about registered
|
||||
polkit actions. If called without <option>--action-id</option> then all
|
||||
actions are displayed. Otherwise the action <replaceable>action</replaceable>.
|
||||
If called without the <option>--verbose</option> option only the name
|
||||
of the action is shown. Otherwise details about the actions are shown.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkaction-return-values">
|
||||
<title>RETURN VALUE</title>
|
||||
<para>
|
||||
On success <command>pkaction</command> returns 0. Otherwise a
|
||||
non-zero value is returned and a diagnostic message is printed
|
||||
on standard error.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkaction-author"><title>AUTHOR</title>
|
||||
<para>
|
||||
Written by David Zeuthen <email>davidz@redhat.com</email> with
|
||||
a lot of help from many others.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkaction-bugs">
|
||||
<title>BUGS</title>
|
||||
<para>
|
||||
Please send bug reports to either the distribution or the
|
||||
polkit-devel mailing list,
|
||||
see the link <ulink url="https://gitlab.freedesktop.org/polkit/polkit/-/issues/"/>
|
||||
on how to subscribe.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkaction-see-also">
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<link linkend="polkit.8"><citerefentry><refentrytitle>polkit</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="polkitd.8"><citerefentry><refentrytitle>polkitd</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkcheck.1"><citerefentry><refentrytitle>pkcheck</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkexec.1"><citerefentry><refentrytitle>pkexec</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkttyagent.1"><citerefentry><refentrytitle>pkttyagent</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -0,0 +1,224 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||
<!ENTITY version SYSTEM "../version.xml">
|
||||
]>
|
||||
<refentry id="pkcheck.1" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<refentryinfo>
|
||||
<title>pkcheck</title>
|
||||
<date>May 2009</date>
|
||||
<productname>polkit</productname>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>pkcheck</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="version"></refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>pkcheck</refname>
|
||||
<refpurpose>Check whether a process is authorized</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>pkcheck</command>
|
||||
<arg><option>--version</option></arg>
|
||||
<arg><option>--help|-h</option></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>pkcheck</command>
|
||||
<arg><option>--list-temp</option></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>pkcheck</command>
|
||||
<arg><option>--revoke-temp</option></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>pkcheck</command>
|
||||
<arg choice="plain">
|
||||
<option>--action-id|-a</option>
|
||||
<replaceable>action</replaceable>
|
||||
</arg>
|
||||
|
||||
<group choice="req">
|
||||
<arg choice="plain">
|
||||
<option>--process|-p</option>
|
||||
<group choice="req">
|
||||
<arg choice="plain">
|
||||
<replaceable>pid</replaceable>
|
||||
</arg>
|
||||
<arg choice="plain">
|
||||
<replaceable>pid,pid-start-time</replaceable>
|
||||
</arg>
|
||||
<arg choice="plain">
|
||||
<replaceable>pid,pid-start-time,uid</replaceable>
|
||||
</arg>
|
||||
</group>
|
||||
</arg>
|
||||
<arg choice="plain">
|
||||
<option>--system-bus-name|-s</option>
|
||||
<replaceable>busname</replaceable>
|
||||
</arg>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--allow-user-interaction|-u</option>
|
||||
</arg>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--enable-internal-agent</option>
|
||||
</arg>
|
||||
</group>
|
||||
|
||||
<group rep="repeat">
|
||||
<arg choice="plain">
|
||||
<option>--detail|-d</option>
|
||||
<replaceable>key</replaceable>
|
||||
<replaceable>value</replaceable>
|
||||
</arg>
|
||||
</group>
|
||||
</cmdsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id="pkcheck-descsription">
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>pkcheck</command> is used to check whether a process, specified by
|
||||
either <option>--process</option> (see below) or <option>--system-bus-name</option>,
|
||||
is authorized for <replaceable>action</replaceable>. The <option>--detail</option>
|
||||
option can be used zero or more times to pass details about <replaceable>action</replaceable>.
|
||||
If <option>--allow-user-interaction</option> is passed, <command>pkcheck</command> blocks
|
||||
while waiting for authentication.
|
||||
</para>
|
||||
<para>
|
||||
The invocation <command>pkcheck --list-temp</command> will list
|
||||
all temporary authorizations for the current session and
|
||||
<command>pkcheck --revoke-temp</command> will revoke all
|
||||
temporary authorizations for the current session.
|
||||
</para>
|
||||
<para>
|
||||
This command is a simple wrapper around the polkit D-Bus interface; see the
|
||||
D-Bus interface documentation for details.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkcheck-return-value">
|
||||
<title>RETURN VALUE</title>
|
||||
<para>
|
||||
If the specified process is
|
||||
authorized, <command>pkcheck</command> exits with a return value
|
||||
of 0. If the authorization result contains any details, these
|
||||
are printed on standard output as key/value pairs using
|
||||
environment style reporting, e.g. first the key followed by a an equal sign, then the
|
||||
value followed by a newline.
|
||||
<programlisting>
|
||||
KEY1=VALUE1
|
||||
KEY2=VALUE2
|
||||
KEY3=VALUE3
|
||||
...</programlisting>
|
||||
Octets that are not in [a-zA-Z0-9_] are escaped using octal codes prefixed
|
||||
with <emphasis>\</emphasis>.
|
||||
For example, the UTF-8 string <emphasis>føl,你好</emphasis> will be printed
|
||||
as <emphasis>f\303\270l\54\344\275\240\345\245\275</emphasis>.
|
||||
</para>
|
||||
<para>
|
||||
If the specified process is not
|
||||
authorized, <command>pkcheck</command> exits with a return value
|
||||
of 1 and a diagnostic message is printed on standard error. Details
|
||||
are printed on standard output.
|
||||
</para>
|
||||
<para>
|
||||
If the specified process is not
|
||||
authorized because no suitable authentication agent is available or if the
|
||||
<option>--allow-user-interaction</option> wasn't passed, <command>pkcheck</command>
|
||||
exits with a return value of 2 and a diagnostic message is printed on standard error.
|
||||
Details are printed on standard output.
|
||||
</para>
|
||||
<para>
|
||||
If the specified process is not authorized because the
|
||||
authentication dialog / request was dismissed by the user,
|
||||
<command>pkcheck</command> exits with a return value of 3 and a
|
||||
diagnostic message is printed on standard error. Details are
|
||||
printed on standard output.
|
||||
</para>
|
||||
<para>
|
||||
If an error occurred while checking for authorization, <command>pkcheck</command> exits
|
||||
with a return value of 127 with a diagnostic message printed on standard error.
|
||||
</para>
|
||||
<para>
|
||||
If one or more of the options passed are malformed, <command>pkcheck</command> exits
|
||||
with a return value of 126. If stdin is a tty, then this manual page is also shown.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkcheck-notes">
|
||||
<title>NOTES</title>
|
||||
<para>
|
||||
Do not use either the bare <replaceable>pid</replaceable> or
|
||||
<replaceable>pid,start-time</replaceable> syntax forms for
|
||||
<option>--process</option>. There are race conditions in both.
|
||||
New code should always use
|
||||
<replaceable>pid,pid-start-time,uid</replaceable>. The value of
|
||||
<replaceable>start-time</replaceable> can be determined by
|
||||
consulting e.g. the
|
||||
<citerefentry><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
file system depending on the operating system. If fewer than 3
|
||||
arguments are passed, <command>pkcheck</command> will attempt to
|
||||
look up them up internally, but note that this may be racy.
|
||||
</para>
|
||||
<para>
|
||||
If your program is a daemon with e.g. a custom Unix domain
|
||||
socket, you should determine the <replaceable>uid</replaceable>
|
||||
parameter via operating system mechanisms such as
|
||||
<literal>PEERCRED</literal>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkcheck-auth-agent"><title>AUTHENTICATION AGENT</title>
|
||||
<para>
|
||||
<command>pkcheck</command>, like any other polkit
|
||||
application, will use the authentication agent registered for
|
||||
the process in question. However, if no authentication agent is
|
||||
available, then <command>pkcheck</command> can register its own
|
||||
textual authentication agent if the option
|
||||
<option>--enable-internal-agent</option> is passed.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkcheck-author"><title>AUTHOR</title>
|
||||
<para>
|
||||
Written by David Zeuthen <email>davidz@redhat.com</email> with
|
||||
a lot of help from many others.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkcheck-bugs">
|
||||
<title>BUGS</title>
|
||||
<para>
|
||||
Please send bug reports to either the distribution or the
|
||||
polkit-devel mailing list,
|
||||
see the link <ulink url="https://gitlab.freedesktop.org/polkit/polkit/-/issues/"/>
|
||||
on how to subscribe.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkcheck-see-also">
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<link linkend="polkit.8"><citerefentry><refentrytitle>polkit</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="polkitd.8"><citerefentry><refentrytitle>polkitd</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkaction.1"><citerefentry><refentrytitle>pkaction</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkexec.1"><citerefentry><refentrytitle>pkexec</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkttyagent.1"><citerefentry><refentrytitle>pkttyagent</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -0,0 +1,284 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||
<!ENTITY version SYSTEM "../version.xml">
|
||||
]>
|
||||
<refentry id="pkexec.1" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<refentryinfo>
|
||||
<title>pkexec</title>
|
||||
<date>May 2009</date>
|
||||
<productname>polkit</productname>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>pkexec</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="version"></refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>pkexec</refname>
|
||||
<refpurpose>Execute a command as another user</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>pkexec</command>
|
||||
<arg><option>--version</option></arg>
|
||||
<arg><option>--disable-internal-agent</option></arg>
|
||||
<arg><option>--help</option></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>pkexec</command>
|
||||
<arg choise="plain">
|
||||
<option>--keep-cwd</option>
|
||||
</arg>
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--user</option>
|
||||
<replaceable>username</replaceable>
|
||||
</arg>
|
||||
</group>
|
||||
<arg choice="plain"><replaceable>PROGRAM</replaceable></arg>
|
||||
<group rep="repeat">
|
||||
<arg choice="plain"><replaceable>ARGUMENTS</replaceable></arg>
|
||||
</group>
|
||||
</cmdsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id="pkexec-description"><title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>pkexec</command> allows an authorized user to execute
|
||||
<replaceable>PROGRAM</replaceable> as another user. If
|
||||
<replaceable>PROGRAM</replaceable> is not specified, the default
|
||||
shell will be run. If <replaceable>username</replaceable> is
|
||||
not specified, then the program will be executed as the
|
||||
administrative super user, <emphasis>root</emphasis>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-return-value"><title>RETURN VALUE</title>
|
||||
<para>
|
||||
Upon successful completion, the return value is the return value
|
||||
of <replaceable>PROGRAM</replaceable>. If the calling process is
|
||||
not authorized or an authorization could not be obtained through
|
||||
authentication or an error occured, <command>pkexec</command>
|
||||
exits with a return value of 127. If the authorization could not
|
||||
be obtained because the user dismissed the authentication
|
||||
dialog, <command>pkexec</command> exits with a return value of
|
||||
126.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-auth-agent"><title>AUTHENTICATION AGENT</title>
|
||||
<para>
|
||||
<command>pkexec</command>, like any other polkit application,
|
||||
will use the authentication agent registered for the calling
|
||||
process or session. However, if no authentication agent is
|
||||
available, then <command>pkexec</command> will register its own
|
||||
textual authentication agent. This behavior can be turned off by
|
||||
passing the <option>--disable-internal-agent</option> option.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-security-notes"><title>SECURITY NOTES</title>
|
||||
<para>
|
||||
Executing a program as another user is a privileged
|
||||
operation. By default the action to check for (see
|
||||
<xref linkend="pkexec-action"/>) requires administrator
|
||||
authentication. In addition, the authentication dialog presented
|
||||
to the user will display the full path to the program to be
|
||||
executed so the user is aware of what will happen.
|
||||
</para>
|
||||
<para>
|
||||
The environment that <replaceable>PROGRAM</replaceable> will run
|
||||
it, will be set to a minimal known and safe environment in order
|
||||
to avoid injecting code
|
||||
through <literal>LD_LIBRARY_PATH</literal> or similar
|
||||
mechanisms. In addition the <literal>PKEXEC_UID</literal>
|
||||
environment variable is set to the user id of the process
|
||||
invoking <command>pkexec</command>. As a
|
||||
result, <command>pkexec</command> will not by default allow you to run
|
||||
X11 applications as another user since
|
||||
the <literal>$DISPLAY</literal> and <literal>$XAUTHORITY</literal>
|
||||
environment variables are not set. These two variables will be retained
|
||||
if the <emphasis>org.freedesktop.policykit.exec.allow_gui</emphasis> annotation
|
||||
on an action is set to a nonempty value; this is discouraged, though, and
|
||||
should only be used for legacy programs.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>pkexec</command> will run <replaceable>PROGRAM</replaceable>
|
||||
in <replaceable>username</replaceable>'s home directory, unless
|
||||
<option>--keep-cwd</option> is used to override this behavior
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that <command>pkexec</command> does no validation of
|
||||
the <replaceable>ARGUMENTS</replaceable> passed
|
||||
to <replaceable>PROGRAM</replaceable>. In the normal case (where
|
||||
administrator authentication is required every
|
||||
time <command>pkexec</command> is used), this is not a problem
|
||||
since if the user is an administrator he might as well just
|
||||
run <command>pkexec bash</command> to get root.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if an action is used for which the user can retain
|
||||
authorization (or if the user is implicitly authorized) this
|
||||
could be a security hole. Therefore, as a rule of thumb,
|
||||
programs for which the default required authorization is
|
||||
changed, should <emphasis role='strong'>never</emphasis> implicitly trust user input (e.g. like any
|
||||
other well-written <emphasis>suid</emphasis> program).
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-action"><title>ACTION AND AUTHORIZATIONS</title>
|
||||
<para>
|
||||
By default, the
|
||||
<emphasis>org.freedesktop.policykit.exec</emphasis> action is
|
||||
used. To use another action, use the
|
||||
<emphasis>org.freedesktop.policykit.exec.path</emphasis>
|
||||
annotation on an action with the value set to the full path of
|
||||
the program. In addition to specifying the program, the
|
||||
authentication message, description, icon and defaults can be
|
||||
specified. If the <emphasis>org.freedesktop.policykit.exec.argv1</emphasis>
|
||||
annotation is present, the action will only be picked if the
|
||||
first argument to the program matches the value of the annotation.
|
||||
</para>
|
||||
<para>
|
||||
Note that authentication messages may reference variables (see
|
||||
<xref linkend="pkexec-variables"/>), for example
|
||||
<literal>$(user)</literal> will be expanded to the value of the
|
||||
<literal>user</literal> variable.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-wrapper"><title>WRAPPER USAGE</title>
|
||||
<para>
|
||||
To avoid modifying existing software to prefix their
|
||||
command-line invocations with <command>pkexec</command>,
|
||||
it's possible to use <command>pkexec</command> in a
|
||||
<ulink url="http://en.wikipedia.org/wiki/Shebang_(Unix)">she-bang wrapper</ulink>
|
||||
like this:
|
||||
</para>
|
||||
<programlisting><![CDATA[
|
||||
#!/usr/bin/pkexec /usr/bin/python
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
print "Hello, I'm running as uid %d"%(os.getuid())
|
||||
|
||||
for n in range(len(sys.argv)):
|
||||
print "arg[%d]=`%s'"%(n, sys.argv[n])
|
||||
]]></programlisting>
|
||||
<para>
|
||||
If this script is installed into <filename>/usr/bin/my-pk-test</filename>,
|
||||
then the following annotations
|
||||
</para>
|
||||
<programlisting><![CDATA[
|
||||
[...]
|
||||
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/python</annotate>
|
||||
<annotate key="org.freedesktop.policykit.exec.argv1">/usr/bin/my-pk-test</annotate>
|
||||
[...]
|
||||
]]></programlisting>
|
||||
<para>
|
||||
can be used to select the appropriate polkit action. Be careful
|
||||
to get the latter annotation right, otherwise it will match any
|
||||
<command>pkexec</command> invocation of
|
||||
<filename>/usr/bin/python</filename> scripts.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-variables"><title>VARIABLES</title>
|
||||
<para>
|
||||
The following variables are set by
|
||||
<command>pkexec</command>. They can be used in authorization
|
||||
rules and messages shown in authentication dialogs:
|
||||
</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><emphasis>program</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Fully qualified path to the program to be executed.
|
||||
Example: <quote>/bin/cat</quote>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>command_line</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The requested command-line (do not use this for any
|
||||
security checks, it is not secure).
|
||||
Example: <quote>cat /srv/xyz/foobar</quote>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>user</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The user name of the user to execute the program as.
|
||||
Example: <quote>davidz</quote>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>user.gecos</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The full name of the user to execute the program as.
|
||||
Example: <quote>David Zeuthen</quote>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>user.display</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
A representation of the user to execute the program as
|
||||
that is suitable for display in an authentication dialog.
|
||||
Is typically set to a combination of the user name and the
|
||||
full name.
|
||||
Example: <quote>David Zeuthen (davidz)</quote>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-author"><title>AUTHOR</title>
|
||||
<para>
|
||||
Written by David Zeuthen <email>davidz@redhat.com</email> with
|
||||
a lot of help from many others.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-bugs">
|
||||
<title>BUGS</title>
|
||||
<para>
|
||||
Please send bug reports to either the distribution or the
|
||||
polkit-devel mailing list,
|
||||
see the link <ulink url="https://gitlab.freedesktop.org/polkit/polkit/-/issues/"/>
|
||||
on how to subscribe.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkexec-see-also">
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<link linkend="polkit.8"><citerefentry><refentrytitle>polkit</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="polkitd.8"><citerefentry><refentrytitle>polkitd</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkaction.1"><citerefentry><refentrytitle>pkaction</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkcheck.1"><citerefentry><refentrytitle>pkcheck</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkttyagent.1"><citerefentry><refentrytitle>pkttyagent</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -0,0 +1,156 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||
<!ENTITY version SYSTEM "../version.xml">
|
||||
]>
|
||||
<refentry id="pkttyagent.1" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<refentryinfo>
|
||||
<title>pkttyagent</title>
|
||||
<date>May 2009</date>
|
||||
<productname>polkit</productname>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>pkttyagent</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="version"></refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>pkttyagent</refname>
|
||||
<refpurpose>Textual authentication helper</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>pkttyagent</command>
|
||||
<arg><option>--version</option></arg>
|
||||
<arg><option>--help</option></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<cmdsynopsis>
|
||||
<command>pkttyagent</command>
|
||||
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--process</option>
|
||||
<group choice="req">
|
||||
<arg choice="plain">
|
||||
<replaceable>pid</replaceable>
|
||||
</arg>
|
||||
<arg choice="plain">
|
||||
<replaceable>pid,pid-start-time</replaceable>
|
||||
</arg>
|
||||
</group>
|
||||
</arg>
|
||||
<arg choice="plain">
|
||||
<option>--system-bus-name</option>
|
||||
<replaceable>busname</replaceable>
|
||||
</arg>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--notify-fd</option>
|
||||
<replaceable>fd</replaceable>
|
||||
</arg>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<arg choice="plain">
|
||||
<option>--fallback</option>
|
||||
</arg>
|
||||
</group>
|
||||
|
||||
</cmdsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id="pkttyagent-descsription">
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>pkttyagent</command> is used to start a textual
|
||||
authentication agent for the subject specified by either
|
||||
<option>--process</option> or
|
||||
<option>--system-bus-name</option>. If neither of these options
|
||||
are given, the parent process is used.
|
||||
</para>
|
||||
<para>
|
||||
To get notified when the authentication agent has been
|
||||
registered either listen to the <link
|
||||
linkend="eggdbus-signal-org.freedesktop.PolicyKit1.Authority::Changed">Changed</link>
|
||||
D-Bus signal or use <option>--notify-fd</option> to pass the
|
||||
number of a file descriptor that has been passed to the
|
||||
program. This file descriptor will then be closed when the
|
||||
authentication agent has been successfully registered.
|
||||
</para>
|
||||
<para>
|
||||
If <option>--fallback</option> is used, the textual
|
||||
authentication agent will not replace an existing authentication
|
||||
agent.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkttyagent-return-value">
|
||||
<title>RETURN VALUE</title>
|
||||
<para>
|
||||
If the authentication agent could not be registered,
|
||||
<command>pkttyagent</command> exits with an exit code of
|
||||
127. Diagnostic messages are printed on standard error.
|
||||
</para>
|
||||
<para>
|
||||
If one or more of the options passed are malformed,
|
||||
<command>pkttyagent</command> exits with an exit code of 126. If
|
||||
stdin is a tty, then this manual page is also shown.
|
||||
</para>
|
||||
<para>
|
||||
If the authentication agent was successfully registered,
|
||||
<command>pkttyagent</command> will keep running, interacting
|
||||
with the user as needed. When its services are no longer needed,
|
||||
the process can be killed.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkttyagent-notes">
|
||||
<title>NOTES</title>
|
||||
<para>
|
||||
Since process identifiers can be recycled, the caller should
|
||||
always use <replaceable>pid,pid-start-time</replaceable> when
|
||||
using the <option>--process</option> option. The value of
|
||||
<replaceable>pid-start-time</replaceable> can be determined by
|
||||
consulting e.g. the
|
||||
<citerefentry><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
file system depending on the operating system. If only <replaceable>pid</replaceable>
|
||||
is passed to the <option>--process</option> option, then <command>pkttyagent</command>
|
||||
will look up the start time itself but note that this may be racy.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkttyagent-author"><title>AUTHOR</title>
|
||||
<para>
|
||||
Written by David Zeuthen <email>davidz@redhat.com</email> with
|
||||
a lot of help from many others.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkttyagent-bugs">
|
||||
<title>BUGS</title>
|
||||
<para>
|
||||
Please send bug reports to either the distribution or the
|
||||
polkit-devel mailing list,
|
||||
see the link <ulink url="https://gitlab.freedesktop.org/polkit/polkit/-/issues/"/>
|
||||
on how to subscribe.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="pkttyagent-see-also">
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<link linkend="polkit.8"><citerefentry><refentrytitle>polkit</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="polkitd.8"><citerefentry><refentrytitle>polkitd</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkaction.1"><citerefentry><refentrytitle>pkaction</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkcheck.1"><citerefentry><refentrytitle>pkcheck</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkexec.1"><citerefentry><refentrytitle>pkexec</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||
<!ENTITY version SYSTEM "../version.xml">
|
||||
]>
|
||||
<refentry id="polkitd.8">
|
||||
<refentryinfo>
|
||||
<title>polkitd</title>
|
||||
<date>May 2009</date>
|
||||
<productname>polkit</productname>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>polkitd</refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
<refmiscinfo class="version"></refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>polkitd</refname>
|
||||
<refpurpose>The polkit system daemon</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>polkitd</command>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id="polkitd-description"><title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>polkitd</command> provides
|
||||
the <emphasis>org.freedesktop.PolicyKit1</emphasis> D-Bus
|
||||
service on the system message bus. Users or administrators
|
||||
should never need to start this daemon as it will be
|
||||
automatically started by
|
||||
<citerefentry><refentrytitle>dbus-daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
or
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
whenever an application calls into the service.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>polkitd</command> must be started with superuser
|
||||
privileges but drops privileges early by switching to the
|
||||
unprivileged <emphasis>polkitd</emphasis> system user.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
See the <link
|
||||
linkend="polkit.8"><citerefentry><refentrytitle>polkit</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>
|
||||
man page for more information.
|
||||
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="polkitd-author"><title>AUTHOR</title>
|
||||
<para>
|
||||
Written by David Zeuthen <email>davidz@redhat.com</email> with
|
||||
a lot of help from many others.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="polkitd-bugs">
|
||||
<title>BUGS</title>
|
||||
<para>
|
||||
Please send bug reports to either the distribution or the
|
||||
polkit-devel mailing list,
|
||||
see the link <ulink url="https://gitlab.freedesktop.org/polkit/polkit/-/issues/"/>
|
||||
on how to subscribe.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="polkitd-see-also">
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<link linkend="polkit.8"><citerefentry><refentrytitle>polkit</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkaction.1"><citerefentry><refentrytitle>pkaction</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkcheck.1"><citerefentry><refentrytitle>pkcheck</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkexec.1"><citerefentry><refentrytitle>pkexec</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<link linkend="pkttyagent.1"><citerefentry><refentrytitle>pkttyagent</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
|
||||
<citerefentry><refentrytitle>dbus-daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -0,0 +1,23 @@
|
||||
pk_api_docpath = pk_prefix / gnome.gtkdoc_html_dir(pk_api_name)
|
||||
|
||||
enable_man = get_option('man')
|
||||
if enable_man
|
||||
subdir('man')
|
||||
endif
|
||||
|
||||
enable_gtk_doc = get_option('gtk_doc')
|
||||
if enable_gtk_doc
|
||||
content_files += configure_file(
|
||||
input: 'extensiondir.xml.in',
|
||||
output: '@BASENAME@',
|
||||
configuration: {'libdir': pk_prefix / pk_libdir},
|
||||
)
|
||||
|
||||
content_files += configure_file(
|
||||
input: 'version.xml.in',
|
||||
output: '@BASENAME@',
|
||||
configuration: {'VERSION': pk_version},
|
||||
)
|
||||
|
||||
subdir('polkit')
|
||||
endif
|
||||
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 39 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
+141
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2 //EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
||||
<refentry id="eggdbus-interface-org.freedesktop.PolicyKit1.AuthenticationAgent">
|
||||
<refmeta>
|
||||
<refentrytitle role="top_of_page">org.freedesktop.PolicyKit1.AuthenticationAgent Interface</refentrytitle>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>org.freedesktop.PolicyKit1.AuthenticationAgent Interface</refname>
|
||||
<refpurpose>Authentication Agent Interface</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv role="synopsis">
|
||||
<title role="synopsis.title">Methods</title>
|
||||
<synopsis>
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.AuthenticationAgent.BeginAuthentication">BeginAuthentication</link> (IN String action_id,
|
||||
IN String message,
|
||||
IN String icon_name,
|
||||
IN Dict<String,String> details,
|
||||
IN String cookie,
|
||||
IN Array<<link linkend="eggdbus-struct-Identity">Identity</link>> identities)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.AuthenticationAgent.CancelAuthentication">CancelAuthentication</link> (IN String cookie)
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refsect1 role="desc" id="eggdbus-if-description-org.freedesktop.PolicyKit1.AuthenticationAgent">
|
||||
<title role="desc.title">Description</title>
|
||||
<para>
|
||||
<para>This D-Bus interface is used for communication between the system-wide PolicyKit daemon and one or more authentication agents each running in a user session.</para><para>An authentication agent must implement this interface and register (passing the object path of the object implementing the interface) using the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent()</link> and <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.UnregisterAuthenticationAgent">UnregisterAuthenticationAgent()</link> methods on the <link linkend="eggdbus-interface-org.freedesktop.PolicyKit1.Authority">org.freedesktop.PolicyKit1.Authority</link> interface of the PolicyKit daemon.</para>
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="details" id="eggdbus-if-method-details-org.freedesktop.PolicyKit1.AuthenticationAgent">
|
||||
<title role="details.title">Method Details</title>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.AuthenticationAgent.BeginAuthentication">
|
||||
<title>BeginAuthentication ()</title>
|
||||
<programlisting>
|
||||
BeginAuthentication (IN String action_id,
|
||||
IN String message,
|
||||
IN String icon_name,
|
||||
IN Dict<String,String> details,
|
||||
IN String cookie,
|
||||
IN Array<<link linkend="eggdbus-struct-Identity">Identity</link>> identities)
|
||||
</programlisting>
|
||||
<para>
|
||||
<para>
|
||||
Called by the PolicyKit daemon when the authentication agent
|
||||
needs the user to authenticate as one of the identities in
|
||||
<parameter>identities</parameter> for the action with the
|
||||
identifier <parameter>action_id</parameter>.</para><para>Upon
|
||||
succesful authentication, the authentication agent must invoke
|
||||
the <link
|
||||
linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>
|
||||
method on the <link
|
||||
linkend="eggdbus-interface-org.freedesktop.PolicyKit1.Authority">org.freedesktop.PolicyKit1.Authority</link>
|
||||
interface of the PolicyKit daemon before returning. This is normally
|
||||
achieved via the <link linkend="PolkitAgentSession">PolkitAgentSession</link>
|
||||
API, which invokes a private setuid helper process to verify the
|
||||
authentication.
|
||||
</para>
|
||||
<para>
|
||||
The authentication agent should not return until after authentication is complete.
|
||||
If the user dismisses the authentication dialog, the authentication agent should return the <link linkend="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.Cancelled">org.freedesktop.PolicyKit1.Error.Cancelled</link> error.
|
||||
</para>
|
||||
</para>
|
||||
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>action_id</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The identifier for the action that the user is authentication for.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>message</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The message to display to the user. This is translated into the locale passed when registering the authentication agent using <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent()</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>icon_name</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The themed icon describing the action or the empty string if no icon is set.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN Dict<String,String> <parameter>details</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Details about the authentication request. This is a dictionary
|
||||
of key/value pairs where both key and value are strings.
|
||||
Known key/value-pairs include
|
||||
<literal>polkit.caller-pid</literal> (the process id of the
|
||||
mechanism making the authorization check) and
|
||||
<literal>polkit.subject-pid</literal> (the process id of the
|
||||
subject the check is for).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>cookie</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
A cookie identifying the authentication request.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN Array<<link linkend="eggdbus-struct-Identity">Identity</link>> <parameter>identities</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
An array of <link linkend="eggdbus-struct-Identity">Identity</link> structs that the user can use for authentication.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.AuthenticationAgent.CancelAuthentication">
|
||||
<title>CancelAuthentication ()</title>
|
||||
<programlisting>
|
||||
CancelAuthentication (IN String cookie)
|
||||
</programlisting>
|
||||
<para>
|
||||
Called by the PolicyKit daemon if the authentication agent needs to cancel an authentication dialog.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>cookie</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The cookie identifying the authentication request.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
+960
@@ -0,0 +1,960 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2 //EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
||||
<refentry id="eggdbus-interface-org.freedesktop.PolicyKit1.Authority">
|
||||
<refmeta>
|
||||
<refentrytitle role="top_of_page">org.freedesktop.PolicyKit1.Authority Interface</refentrytitle>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>org.freedesktop.PolicyKit1.Authority Interface</refname>
|
||||
<refpurpose>Authority Interface</refpurpose>
|
||||
</refnamediv>
|
||||
<refsynopsisdiv role="synopsis">
|
||||
<title role="synopsis.title">Methods</title>
|
||||
<synopsis>
|
||||
Flags <link linkend="eggdbus-enum-CheckAuthorizationFlags">CheckAuthorizationFlags</link>
|
||||
Enumeration <link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link>
|
||||
ErrorDomain <link linkend="eggdbus-errordomain-org.freedesktop.PolicyKit1.Error.">org.freedesktop.PolicyKit1.Error.*</link>
|
||||
Flags <link linkend="eggdbus-enum-AuthorityFeatures">AuthorityFeatures</link>
|
||||
Structure <link linkend="eggdbus-struct-Subject">Subject</link>
|
||||
Structure <link linkend="eggdbus-struct-Identity">Identity</link>
|
||||
Structure <link linkend="eggdbus-struct-ActionDescription">ActionDescription</link>
|
||||
Structure <link linkend="eggdbus-struct-AuthorizationResult">AuthorizationResult</link>
|
||||
Structure <link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuthorization</link>
|
||||
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.EnumerateActions">EnumerateActions</link> (IN String locale,
|
||||
OUT Array<<link linkend="eggdbus-struct-ActionDescription">ActionDescription</link>> action_descriptions)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String action_id,
|
||||
IN Dict<String,String> details,
|
||||
IN <link linkend="eggdbus-enum-CheckAuthorizationFlags">CheckAuthorizationFlags</link> flags,
|
||||
IN String cancellation_id,
|
||||
OUT <link linkend="eggdbus-struct-AuthorizationResult">AuthorizationResult</link> result)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CancelCheckAuthorization">CancelCheckAuthorization</link> (IN String cancellation_id)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String locale,
|
||||
IN String object_path)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgentWithOptions">RegisterAuthenticationAgentWithOptions</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String locale,
|
||||
IN String object_path,
|
||||
IN Dict<String,Variant> options)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.UnregisterAuthenticationAgent">UnregisterAuthenticationAgent</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String object_path)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse</link> (IN String cookie,
|
||||
IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2</link> (IN uint32 uid, IN String cookie,
|
||||
IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.EnumerateTemporaryAuthorizations">EnumerateTemporaryAuthorizations</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
OUT Array<<link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuthorization</link>> temporary_authorizations)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RevokeTemporaryAuthorizations">RevokeTemporaryAuthorizations</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject)
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RevokeTemporaryAuthorizationById">RevokeTemporaryAuthorizationById</link> (IN String id)
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
<refsect1 role="signal_proto" id="eggdbus-if-signals-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="signal_proto.title">Signals</title>
|
||||
<synopsis>
|
||||
<link linkend="eggdbus-signal-org.freedesktop.PolicyKit1.Authority::Changed">Changed</link> ()
|
||||
</synopsis>
|
||||
</refsect1>
|
||||
<refsect1 role="properties" id="eggdbus-if-properties-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="properties.title">Properties</title>
|
||||
<synopsis>
|
||||
<link linkend="eggdbus-property-org.freedesktop.PolicyKit1.Authority:BackendName">BackendName</link> readable String
|
||||
<link linkend="eggdbus-property-org.freedesktop.PolicyKit1.Authority:BackendVersion">BackendVersion</link> readable String
|
||||
<link linkend="eggdbus-property-org.freedesktop.PolicyKit1.Authority:BackendFeatures">BackendFeatures</link> readable <link linkend="eggdbus-enum-AuthorityFeatures">AuthorityFeatures</link>
|
||||
</synopsis>
|
||||
</refsect1>
|
||||
<refsect1 role="desc" id="eggdbus-if-description-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="desc.title">Description</title>
|
||||
<para>
|
||||
This D-Bus interface is implemented by the <literal>/org/freedesktop/PolicyKit1/Authority</literal> object on the well-known name <literal>org.freedesktop.PolicyKit1</literal> on the system message bus.
|
||||
</para>
|
||||
</refsect1>
|
||||
<refsect1 role="desc" id="eggdbus-if-enumerations-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="desc.title">Enumerations</title>
|
||||
<refsect2 role="enum" id="eggdbus-enum-CheckAuthorizationFlags">
|
||||
<title>The CheckAuthorizationFlags Flags</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
None = 0x00000000,
|
||||
AllowUserInteraction = 0x00000001
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
Flags used in the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link> method.
|
||||
</para>
|
||||
<variablelist role="constant">
|
||||
<varlistentry id="eggdbus-constant-CheckAuthorizationFlags.None" role="constant">
|
||||
<term><literal>None</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
No flags set.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-CheckAuthorizationFlags.AllowUserInteraction" role="constant">
|
||||
<term><literal>AllowUserInteraction</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
If the <link linkend="eggdbus-struct-Subject">Subject</link> can obtain the authorization through authentication, and an authentication agent is available, then attempt to do so. Note, this means that the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link> method will block while the user is being asked to authenticate.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="enum" id="eggdbus-enum-ImplicitAuthorization">
|
||||
<title>The ImplicitAuthorization Enumeration</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
NotAuthorized = 0,
|
||||
AuthenticationRequired = 1,
|
||||
AdministratorAuthenticationRequired = 2,
|
||||
AuthenticationRequiredRetained = 3,
|
||||
AdministratorAuthenticationRequiredRetained = 4,
|
||||
Authorized = 5
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
An enumeration for granting implicit authorizations.
|
||||
</para>
|
||||
<variablelist role="constant">
|
||||
<varlistentry id="eggdbus-constant-ImplicitAuthorization.NotAuthorized" role="constant">
|
||||
<term><literal>NotAuthorized</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The <link linkend="eggdbus-struct-Subject">Subject</link> is not authorized.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-ImplicitAuthorization.AuthenticationRequired" role="constant">
|
||||
<term><literal>AuthenticationRequired</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Authentication is required.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-ImplicitAuthorization.AdministratorAuthenticationRequired" role="constant">
|
||||
<term><literal>AdministratorAuthenticationRequired</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Authentication as an administrator is required.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-ImplicitAuthorization.AuthenticationRequiredRetained" role="constant">
|
||||
<term><literal>AuthenticationRequiredRetained</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Authentication is required. If the authorization is obtained, it is retained.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-ImplicitAuthorization.AdministratorAuthenticationRequiredRetained" role="constant">
|
||||
<term><literal>AdministratorAuthenticationRequiredRetained</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Authentication as an administrator is required. If the authorization is obtained, it is retained.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-ImplicitAuthorization.Authorized" role="constant">
|
||||
<term><literal>Authorized</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The subject is authorized.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="enum" id="eggdbus-errordomain-org.freedesktop.PolicyKit1.Error."> <title>The org.freedesktop.PolicyKit1.Error.* Error Domain</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
org.freedesktop.PolicyKit1.Error.Failed,
|
||||
org.freedesktop.PolicyKit1.Error.Cancelled,
|
||||
org.freedesktop.PolicyKit1.Error.NotSupported,
|
||||
org.freedesktop.PolicyKit1.Error.NotAuthorized,
|
||||
org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
Errors that can be returned by various method calls.
|
||||
</para>
|
||||
<variablelist role="constant">
|
||||
<varlistentry id="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.Failed" role="constant">
|
||||
<term><literal>org.freedesktop.PolicyKit1.Error.Failed</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The operation failed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.Cancelled" role="constant">
|
||||
<term><literal>org.freedesktop.PolicyKit1.Error.Cancelled</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The operation was cancelled.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.NotSupported" role="constant">
|
||||
<term><literal>org.freedesktop.PolicyKit1.Error.NotSupported</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The operation is not supported.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.NotAuthorized" role="constant">
|
||||
<term><literal>org.freedesktop.PolicyKit1.Error.NotAuthorized</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
You are not authorized to perform the requested operation.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique" role="constant">
|
||||
<term><literal>org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The passed <parameter>cancellation_id</parameter> is already in use.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="enum" id="eggdbus-enum-AuthorityFeatures">
|
||||
<title>The AuthorityFeatures Flags</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
None = 0x00000000,
|
||||
TemporaryAuthorization = 0x00000001
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
Flags describing features supported by the Authority implementation.
|
||||
</para>
|
||||
<variablelist role="constant">
|
||||
<varlistentry id="eggdbus-constant-AuthorityFeatures.None" role="constant">
|
||||
<term><literal>None</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
No flags set.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="eggdbus-constant-AuthorityFeatures.TemporaryAuthorization" role="constant">
|
||||
<term><literal>TemporaryAuthorization</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The authority supports temporary authorizations that can be obtained through authentication.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
<refsect1 role="desc" id="eggdbus-if-structures-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="desc.title">Structures</title>
|
||||
<refsect2 role="struct" id="eggdbus-struct-Subject">
|
||||
<title>The Subject Structure</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
String subject_kind,
|
||||
Dict<String,Variant> subject_details
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
<para>This struct describes subjects such as UNIX processes. It is typically used to check if a given process is authorized for an action.</para><para>The following kinds of subjects are known:</para> <formalpara><title>Unix Process</title><para><literal>subject_kind</literal> should be set to <literal>unix-process</literal> with keys <literal>pidfd</literal> (of type <literal>int32</literal>) and <literal>uid</literal> (of type <literal>int32</literal>) (if the operating system supports ProcessID File Descriptors), or alternatively with keys <literal>pid</literal> (of type <literal>uint32</literal>), <literal>uid</literal> (of type <literal>int32</literal>) and <literal>start-time</literal> (of type <literal>uint64</literal>).</para></formalpara> <formalpara><title>Unix Session</title><para><literal>subject_kind</literal> should be set to <literal>unix-session</literal> with the key <literal>session-id</literal> (of type <literal>string</literal>).</para></formalpara> <formalpara><title>System Bus Name</title><para><literal>subject_kind</literal> should be set to <literal>system-bus-name</literal> with the key <literal>name</literal> (of type <literal>string</literal>).</para></formalpara>
|
||||
</para>
|
||||
<variablelist role="struct">
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>subject_kind</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The type of the subject.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>Dict<String,Variant> <structfield>subject_details</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Details about the subject. Depending of the value of <parameter>subject_kind</parameter>, a set of well-defined key/value pairs are guaranteed to be available.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="struct" id="eggdbus-struct-Identity">
|
||||
<title>The Identity Structure</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
String identity_kind,
|
||||
Dict<String,Variant> identity_details
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
<para>This struct describes identities such as UNIX users and UNIX groups. It is typically used to check if a given process is authorized for an action.</para><para>The following kinds of identities are known:</para> <formalpara><title>Unix User</title><para><literal>identity_kind</literal> should be set to <literal>unix-user</literal> with key <literal>uid</literal> (of type <literal>uint32</literal>).</para></formalpara> <formalpara><title>Unix Group</title><para><literal>identity_kind</literal> should be set to <literal>unix-group</literal> with key <literal>gid</literal> (of type <literal>uint32</literal>).</para></formalpara>
|
||||
</para>
|
||||
<variablelist role="struct">
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>identity_kind</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Type of identity.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>Dict<String,Variant> <structfield>identity_details</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Details about the identity. Depending of the value of <parameter>identity_kind</parameter>, a set of well-defined key/value pairs are guaranteed to be available.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="struct" id="eggdbus-struct-ActionDescription">
|
||||
<title>The ActionDescription Structure</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
String action_id,
|
||||
String description,
|
||||
String message,
|
||||
String vendor_name,
|
||||
String vendor_url,
|
||||
String icon_name,
|
||||
<link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link> implicit_any,
|
||||
<link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link> implicit_inactive,
|
||||
<link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link> implicit_active,
|
||||
Dict<String,String> annotations
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
This struct describes actions registered with the PolicyKit daemon.
|
||||
</para>
|
||||
<variablelist role="struct">
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>action_id</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Action Identifier.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>description</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Localized description of the action.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>message</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Localized message to be displayed when making the user authenticate for an action.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>vendor_name</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Name of the provider of the action or the empty string.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>vendor_url</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
A URL pointing to a place with more information about the action or the empty string.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>icon_name</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The themed icon describing the action or the empty string if no icon is set.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal><link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link> <structfield>implicit_any</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
A value from the <link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link>. enumeration for implicit authorizations that apply to any <link linkend="eggdbus-struct-Subject">Subject</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal><link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link> <structfield>implicit_inactive</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
A value from the <link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link>. enumeration for implicit authorizations that apply any <link linkend="eggdbus-struct-Subject">Subject</link> in an inactive user session on the local console.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal><link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link> <structfield>implicit_active</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
A value from the <link linkend="eggdbus-enum-ImplicitAuthorization">ImplicitAuthorization</link>. enumeration for implicit authorizations that apply any <link linkend="eggdbus-struct-Subject">Subject</link> in an active user session on the local console.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>Dict<String,String> <structfield>annotations</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Annotations for the action.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="struct" id="eggdbus-struct-AuthorizationResult">
|
||||
<title>The AuthorizationResult Structure</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
Boolean is_authorized,
|
||||
Boolean is_challenge,
|
||||
Dict<String,String> details
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
Describes the result of calling <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link>.
|
||||
</para>
|
||||
<variablelist role="struct">
|
||||
<varlistentry>
|
||||
<term><literal>Boolean <structfield>is_authorized</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
TRUE if the given <link linkend="eggdbus-struct-Subject">Subject</link> is authorized for the given action.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>Boolean <structfield>is_challenge</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
TRUE if the given <link linkend="eggdbus-struct-Subject">Subject</link> could be authorized if more information was provided, and <link linkend="eggdbus-constant-CheckAuthorizationFlags.AllowUserInteraction">CheckAuthorizationFlags.AllowUserInteraction</link> wasn't passed or no suitable authentication agent was available.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>Dict<String,String> <structfield>details</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Details for the result. Known key/value-pairs include <literal>polkit.temporary_authorization_id</literal> (if the authorization is temporary, this is set to the opaque temporary authorization id), <literal>polkit.retains_authorization_after_challenge</literal> (Set to a non-empty string if the authorization will be retained after authentication (if is_challenge is TRUE)), <literal>polkit.dismissed</literal> (Set to a non-empty string if the authentication dialog was dismissed by the user).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="struct" id="eggdbus-struct-TemporaryAuthorization">
|
||||
<title>The TemporaryAuthorization Structure</title>
|
||||
<para>
|
||||
<programlisting>
|
||||
{
|
||||
String id,
|
||||
String action_id,
|
||||
<link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
UInt64 time_obtained,
|
||||
UInt64 time_expires
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
This struct describes a temporary authorization.
|
||||
</para>
|
||||
<variablelist role="struct">
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>id</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
An opaque identifier for the temporary authorization.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>String <structfield>action_id</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The action the temporary authorization is for.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal><link linkend="eggdbus-struct-Subject">Subject</link> <structfield>subject</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The subject the temporary authorization is for.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>UInt64 <structfield>time_obtained</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
When the temporary authorization was obtained, in seconds since the Epoch Jan 1, 1970 0:00 UTC.
|
||||
Note that the PolicyKit daemon is using monotonic time internally so the returned value may change if system time changes.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>UInt64 <structfield>time_expires</structfield></literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
When the temporary authorization is set to expire, in seconds since the Epoch Jan 1, 1970 0:00 UTC.
|
||||
Note that the PolicyKit daemon is using monotonic time internally so the returned value may change if system time changes.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
<refsect1 role="details" id="eggdbus-if-method-details-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="details.title">Method Details</title>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.EnumerateActions">
|
||||
<title>EnumerateActions ()</title>
|
||||
<programlisting>
|
||||
EnumerateActions (IN String locale,
|
||||
OUT Array<<link linkend="eggdbus-struct-ActionDescription">ActionDescription</link>> action_descriptions)
|
||||
</programlisting>
|
||||
<para>
|
||||
Enumerates all registered PolicyKit actions.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>locale</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The locale to get descriptions in or the blank string to use the system locale.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>OUT Array<<link linkend="eggdbus-struct-ActionDescription">ActionDescription</link>> <parameter>action_descriptions</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
An array of <link linkend="eggdbus-struct-ActionDescription">ActionDescription</link> structs.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">
|
||||
<title>CheckAuthorization ()</title>
|
||||
<programlisting>
|
||||
CheckAuthorization (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String action_id,
|
||||
IN Dict<String,String> details,
|
||||
IN <link linkend="eggdbus-enum-CheckAuthorizationFlags">CheckAuthorizationFlags</link> flags,
|
||||
IN String cancellation_id,
|
||||
OUT <link linkend="eggdbus-struct-AuthorizationResult">AuthorizationResult</link> result)
|
||||
</programlisting>
|
||||
<para>
|
||||
<para>
|
||||
Checks if <parameter>subject</parameter> is authorized to
|
||||
perform the action with identifier
|
||||
<parameter>action_id</parameter>
|
||||
</para>
|
||||
<para>
|
||||
If <parameter>cancellation_id</parameter> is non-empty and
|
||||
already in use for the caller, the <link
|
||||
linkend="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique">org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique</link>
|
||||
error is returned.
|
||||
</para>
|
||||
<para>
|
||||
Note that <link
|
||||
linkend="eggdbus-constant-CheckAuthorizationFlags.AllowUserInteraction">CheckAuthorizationFlags.AllowUserInteraction</link>
|
||||
SHOULD be passed ONLY if the event that triggered the
|
||||
authorization check is stemming from an user action, e.g. the
|
||||
user pressing a button or attaching a device.
|
||||
</para>
|
||||
<para>
|
||||
</para>
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-struct-Subject">Subject</link> <parameter>subject</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
A <link linkend="eggdbus-struct-Subject">Subject</link> struct.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>action_id</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Identifier for the action that <parameter>subject</parameter> is attempting to do.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN Dict<String,String> <parameter>details</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Details describing the action. Keys starting with <literal>polkit.</literal> are can only be set if defined in this document.
|
||||
</para>
|
||||
<para>
|
||||
Known keys include <literal>polkit.message</literal> and
|
||||
<literal>polkit.gettext_domain</literal> that can be used to
|
||||
override the message shown to the user. This latter is needed
|
||||
because the user could be running an authentication agent in
|
||||
another locale than the calling process.
|
||||
</para>
|
||||
<para>
|
||||
The (translated version of) <literal>polkit.message</literal>
|
||||
may include references to other keys that are expanded with
|
||||
their respective values. For example if the key
|
||||
<literal>device_file</literal> has the value
|
||||
<literal>/dev/sda</literal> then the message
|
||||
"<literal>Authenticate to format $(device_file)</literal>" is
|
||||
expanded to "<literal>Authenticate to format
|
||||
/dev/sda</literal>".
|
||||
</para>
|
||||
<para>
|
||||
The key <literal>polkit.icon_name</literal> is used to override the icon shown in the authentication dialog.
|
||||
</para>
|
||||
<para>
|
||||
If non-empty, then the request will fail with
|
||||
<link linkend="eggdbus-constant-Error.org.freedesktop.PolicyKit1.Error.Failed">org.freedesktop.PolicyKit1.Error.Failed</link>
|
||||
unless the process doing the check itsef is sufficiently authorized (e.g. running as uid 0).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-enum-CheckAuthorizationFlags">CheckAuthorizationFlags</link> <parameter>flags</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
A set of <link linkend="eggdbus-enum-CheckAuthorizationFlags">CheckAuthorizationFlags</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>cancellation_id</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
A unique id used to cancel the the authentication check via <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CancelCheckAuthorization">CancelCheckAuthorization()</link> or the empty string if cancellation is not needed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>OUT <link linkend="eggdbus-struct-AuthorizationResult">AuthorizationResult</link> <parameter>result</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
An <link linkend="eggdbus-struct-AuthorizationResult">AuthorizationResult</link> structure.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CancelCheckAuthorization">
|
||||
<title>CancelCheckAuthorization ()</title>
|
||||
<programlisting>
|
||||
CancelCheckAuthorization (IN String cancellation_id)
|
||||
</programlisting>
|
||||
<para>
|
||||
Cancels an authorization check.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>cancellation_id</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The <parameter>cancellation_id</parameter> passed to <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">
|
||||
<title>RegisterAuthenticationAgent ()</title>
|
||||
<programlisting>
|
||||
RegisterAuthenticationAgent (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String locale,
|
||||
IN String object_path)
|
||||
</programlisting>
|
||||
<para>
|
||||
<para>Register an authentication agent.</para><para>Note that this should be called by same effective UID which will be passed to <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>.</para>
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-struct-Subject">Subject</link> <parameter>subject</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The subject to register the authentication agent for, typically a session subject.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>locale</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The locale of the authentication agent.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>object_path</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The object path of authentication agent object on the unique name of the caller.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgentWithOptions">
|
||||
<title>RegisterAuthenticationAgentWithOptions ()</title>
|
||||
<programlisting>
|
||||
RegisterAuthenticationAgentWithOptions (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String locale,
|
||||
IN String object_path,
|
||||
IN Dict<String,Variant> options)
|
||||
</programlisting>
|
||||
<para>
|
||||
<para>Like <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent</link> but takes additional options. If the option <literal>fallback</literal> (of type <literal>Boolean</literal>) is TRUE, then the authentcation agent will only be used as a fallback, e.g. if another agent (without the <literal>fallback</literal> option set TRUE) is available, it will be used instead.</para>
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.UnregisterAuthenticationAgent">
|
||||
<title>UnregisterAuthenticationAgent ()</title>
|
||||
<programlisting>
|
||||
UnregisterAuthenticationAgent (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
IN String object_path)
|
||||
</programlisting>
|
||||
<para>
|
||||
Unregister an authentication agent.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-struct-Subject">Subject</link> <parameter>subject</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The <parameter>subject</parameter> passed to <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent()</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>object_path</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The <parameter>object_path</parameter> passed to <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent()</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">
|
||||
<title>AuthenticationAgentResponse ()</title>
|
||||
<programlisting>
|
||||
AuthenticationAgentResponse (IN String cookie,
|
||||
IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
|
||||
</programlisting>
|
||||
<para>
|
||||
Method for authentication agents to invoke on successful
|
||||
authentication, intended only for use by a privileged helper process
|
||||
internal to polkit. This method will fail unless a sufficiently privileged
|
||||
+caller invokes it. Deprecated in favor of <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>cookie</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The cookie identifying the authentication request that was passed to the authentication agent.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-struct-Identity">Identity</link> <parameter>identity</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
A <link linkend="eggdbus-struct-Identity">Identity</link> struct describing what identity was authenticated.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">
|
||||
<title>AuthenticationAgentResponse2 ()</title>
|
||||
<programlisting>
|
||||
AuthenticationAgentResponse2 (IN uint32 uid,
|
||||
IN String cookie,
|
||||
IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
|
||||
</programlisting>
|
||||
<para>
|
||||
Method for authentication agents to invoke on successful
|
||||
authentication, intended only for use by a privileged helper process
|
||||
internal to polkit. This method will fail unless a sufficiently privileged
|
||||
caller invokes it. Note this method was introduced in 0.114 and should be
|
||||
preferred over <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse()</link>
|
||||
as it fixes a security issue.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN uint32 <parameter>uid</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The user id of the agent; normally this is the owner of the parent pid
|
||||
of the process that invoked the internal setuid helper.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>cookie</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The cookie identifying the authentication request that was passed to the authentication agent.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-struct-Identity">Identity</link> <parameter>identity</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
A <link linkend="eggdbus-struct-Identity">Identity</link> struct describing what identity was authenticated.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.EnumerateTemporaryAuthorizations">
|
||||
<title>EnumerateTemporaryAuthorizations ()</title>
|
||||
<programlisting>
|
||||
EnumerateTemporaryAuthorizations (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
|
||||
OUT Array<<link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuthorization</link>> temporary_authorizations)
|
||||
</programlisting>
|
||||
<para>
|
||||
Retrieves all temporary authorizations that applies to <parameter>subject</parameter>.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-struct-Subject">Subject</link> <parameter>subject</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The subject to get temporary authorizations for.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>OUT Array<<link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuthorization</link>> <parameter>temporary_authorizations</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
An array of <link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuthorization</link> structs.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RevokeTemporaryAuthorizations">
|
||||
<title>RevokeTemporaryAuthorizations ()</title>
|
||||
<programlisting>
|
||||
RevokeTemporaryAuthorizations (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject)
|
||||
</programlisting>
|
||||
<para>
|
||||
Revokes all temporary authorizations that applies to <parameter>subject</parameter>.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN <link linkend="eggdbus-struct-Subject">Subject</link> <parameter>subject</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The subject to revoke temporary authorizations from.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
<refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RevokeTemporaryAuthorizationById">
|
||||
<title>RevokeTemporaryAuthorizationById ()</title>
|
||||
<programlisting>
|
||||
RevokeTemporaryAuthorizationById (IN String id)
|
||||
</programlisting>
|
||||
<para>
|
||||
Revokes all temporary authorizations that applies to <parameter>subject</parameter>.
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
<varlistentry>
|
||||
<term><literal>IN String <parameter>id</parameter></literal>:</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The opaque identifier of the temporary authorization.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
<refsect1 role="signals" id="eggdbus-if-signal-details-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="signals.title">Signal Details</title>
|
||||
<refsect2 role="signal" id="eggdbus-signal-org.freedesktop.PolicyKit1.Authority::Changed">
|
||||
<title>The "Changed" signal</title>
|
||||
<programlisting>
|
||||
Changed ()
|
||||
</programlisting>
|
||||
<para>
|
||||
This signal is emitted when actions and/or authorizations change
|
||||
</para>
|
||||
<variablelist role="params">
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
<refsect1 role="property_details" id="eggdbus-if-property-details-org.freedesktop.PolicyKit1.Authority">
|
||||
<title role="property_details.title">Property Details</title>
|
||||
<refsect2 role="property" id="eggdbus-property-org.freedesktop.PolicyKit1.Authority:BackendName">
|
||||
<title>The "BackendName" property</title>
|
||||
<programlisting>
|
||||
BackendName readable String
|
||||
</programlisting>
|
||||
<para>
|
||||
The name of the currently used Authority backend.
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="property" id="eggdbus-property-org.freedesktop.PolicyKit1.Authority:BackendVersion">
|
||||
<title>The "BackendVersion" property</title>
|
||||
<programlisting>
|
||||
BackendVersion readable String
|
||||
</programlisting>
|
||||
<para>
|
||||
The version of the currently used Authority backend.
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 role="property" id="eggdbus-property-org.freedesktop.PolicyKit1.Authority:BackendFeatures">
|
||||
<title>The "BackendFeatures" property</title>
|
||||
<programlisting>
|
||||
BackendFeatures readable <link linkend="eggdbus-enum-AuthorityFeatures">AuthorityFeatures</link>
|
||||
</programlisting>
|
||||
<para>
|
||||
The features supported by the currently used Authority backend.
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -0,0 +1,36 @@
|
||||
doc_module = pk_api_name
|
||||
|
||||
src_dirs = [
|
||||
source_root / 'src/polkit',
|
||||
source_root / 'src/polkitagent',
|
||||
]
|
||||
|
||||
private_headers = [
|
||||
'polkitagenthelperprivate.h',
|
||||
'polkitprivate.h',
|
||||
]
|
||||
|
||||
content_files += files(
|
||||
'docbook-interface-org.freedesktop.PolicyKit1.AuthenticationAgent.xml',
|
||||
'docbook-interface-org.freedesktop.PolicyKit1.Authority.xml',
|
||||
)
|
||||
|
||||
html_images = [
|
||||
'../polkit-architecture.png',
|
||||
'../polkit-authentication-agent-example.png',
|
||||
'../polkit-authentication-agent-example-wheel.png',
|
||||
]
|
||||
|
||||
gnome.gtkdoc(
|
||||
doc_module,
|
||||
main_xml: doc_module + '-docs.xml',
|
||||
src_dir: src_dirs,
|
||||
ignore_headers: private_headers,
|
||||
dependencies: libpolkit_agent_dep,
|
||||
namespace: meson.project_name(),
|
||||
html_assets: html_images,
|
||||
fixxref_args: '--html-dir=' + pk_api_docpath,
|
||||
gobject_typesfile: doc_module + '.types',
|
||||
content_files: content_files,
|
||||
install: true,
|
||||
)
|
||||
@@ -0,0 +1,343 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||
<!ENTITY version SYSTEM "../version.xml">
|
||||
<!ENTITY extensiondir SYSTEM "../extensiondir.xml">
|
||||
]>
|
||||
<part id="overview">
|
||||
<title>polkit Overview</title>
|
||||
<chapter id="polkit-intro">
|
||||
<title>Introduction</title>
|
||||
<para>
|
||||
polkit provides an authorization API intended to be used by
|
||||
privileged programs (<quote>MECHANISMS</quote>) offering service
|
||||
to unprivileged programs (<quote>CLIENTS</quote>). See the
|
||||
<link linkend="polkit.8">polkit</link> manual page for
|
||||
the system architecture and big picture.
|
||||
</para>
|
||||
</chapter>
|
||||
|
||||
<chapter id="polkit-apps">
|
||||
<title>Writing polkit applications</title>
|
||||
<para>
|
||||
polkit applications are applications using the polkit authority
|
||||
as a decider component. They do this by installing a <filename
|
||||
class='extension'>.policy</filename> file into the <filename
|
||||
class='directory'>/usr/share/polkit-1/actions</filename>
|
||||
directory and communicating with the polkit authority at runtime
|
||||
(either via the <link linkend="ref-dbus-api">D-Bus API</link> or
|
||||
indirectly through the <link
|
||||
linkend="ref-api">libpolkit-gobject-1</link> library or the
|
||||
<link linkend="pkcheck.1">pkcheck</link> command).
|
||||
</para>
|
||||
|
||||
<simplesect id="polkit-apps-best-practices">
|
||||
<title>Best practices</title>
|
||||
<itemizedlist mark='opencircle' spacing='compact'>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DO</emphasis> use polkit if you are
|
||||
writing a privileged mechanism (that is, running as
|
||||
<emphasis>root</emphasis> or otherwise has special
|
||||
permissions) that is intended to be used by unprivileged
|
||||
programs.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DO</emphasis> carefully consider
|
||||
what actions to define. In many cases there isn't a 1:1
|
||||
mapping between operations and polkit actions. Often a
|
||||
polkit action has more to do with the object the operation
|
||||
is acting on than the operation itself. It is important to
|
||||
strike the right balance between too fine-grained and too
|
||||
coarse-grained.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DO</emphasis> try to pick actions
|
||||
and implicit authorizations so applications using your
|
||||
mechanism will work out-of-the box for users logged in at
|
||||
the console. Not interrupting console users with
|
||||
authentication dialogs should be considered a
|
||||
priority. For example, it is not wise to require console
|
||||
users to authenticate for such mundane tasks as adding a
|
||||
printer queue (if the administrator really wants the OS to
|
||||
act this way, he can always deploy suitable authorization
|
||||
rules).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DO</emphasis> consider the impact of the
|
||||
chosen implicit authorizations on multi-user systems. Generally,
|
||||
ordinary users should be able to neither modify important system's
|
||||
behavior for other users, nor view other users' private data. If
|
||||
your application needs an authorization framework at all, it is
|
||||
fairly likely that the default configuration should deny
|
||||
authorization in at least some cases. Default to using
|
||||
<literal>auth_admin</literal>* instead of
|
||||
<literal>auth_self</literal>*. (On single-user desktops, the
|
||||
single user is typically configured as a polkit administrator, so
|
||||
the two variants behave equally. On multi-user systems,
|
||||
non-administrator users will be restricted by the default
|
||||
configuration.)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DO</emphasis> pass polkit variables
|
||||
along with <link
|
||||
linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link>
|
||||
requests so it's possible to write <emphasis>authorization
|
||||
rules</emphasis> matching on these. Also document these
|
||||
variables in your documentation (for example, see the
|
||||
<ulink
|
||||
url="http://udisks.freedesktop.org/docs/latest/udisks-polkit-actions.html">udisks2
|
||||
actions and variables</ulink>).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DO</emphasis> pass a customized
|
||||
authentication message (using the
|
||||
<literal>polkit.message</literal> and
|
||||
<literal>polkit.gettext_domain</literal> variables) that
|
||||
include more detailed information about the request than
|
||||
whatever is declared in the <filename
|
||||
class='extension'>.policy</filename> file's
|
||||
<literal>message</literal> element. For example, it's
|
||||
better to show <quote>Authentication is needed to format
|
||||
INTEL SSDSA2MH080G1GC (/dev/sda)</quote> than just
|
||||
<quote>Authentication is needed to format the
|
||||
device</quote>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DO</emphasis> make sure
|
||||
your application works even when the
|
||||
<literal>org.freedesktop.PolicyKit1</literal>
|
||||
D-Bus service is not available (this can
|
||||
happen if
|
||||
<link linkend="polkitd.8"><citerefentry><refentrytitle>polkitd</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>
|
||||
is not installed or if the <emphasis>polkit.service</emphasis> systemd unit/service has been
|
||||
<ulink url="http://0pointer.de/blog/projects/three-levels-of-off.html">masked</ulink>). If you are using the
|
||||
<link linkend="ref-api">libpolkit-gobject-1</link> library this
|
||||
means handling
|
||||
<link linkend="polkit-authority-get-sync">polkit_authority_get_sync()</link>
|
||||
or
|
||||
<link linkend="polkit-authority-get-finish">polkit_authority_get_finish()</link>
|
||||
returning <constant>NULL</constant> or
|
||||
<link linkend="polkit-authority-check-authorization">polkit_authority_check_authorization()</link> /
|
||||
<link linkend="polkit-authority-check-authorization-sync">polkit_authority_check_authorization_sync()</link>
|
||||
failing with an error not in the
|
||||
<link linkend="POLKIT-ERROR:CAPS">POLKIT_ERROR</link>
|
||||
domain.
|
||||
An appropriate way of dealing with the polkit authority
|
||||
not being available, could be to allow only uid 0 to
|
||||
perform operations, forbid all operations or something
|
||||
else.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DON'T</emphasis> use polkit if your
|
||||
program isn't intended to be used by unprivileged
|
||||
programs. For example, if you are writing developer tools
|
||||
or low-level core OS command-line tools it's fine to just
|
||||
require the user to be root. Users can always run your
|
||||
tool through e.g.
|
||||
<citerefentry><refentrytitle>sudo</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<link
|
||||
linkend="pkexec.1"><citerefentry><refentrytitle>pkexec</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>
|
||||
or write a simple polkit-using mechanism that allows
|
||||
access to a (safe) subset of your tool.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DON'T</emphasis> use polkit unless
|
||||
you actually have to. In other words, not every single
|
||||
privileged program providing service to unprivileged
|
||||
programs has to use polkit. For example, if you have a
|
||||
small well-written <ulink
|
||||
url="http://en.wikipedia.org/wiki/Setuid">setuid</ulink>
|
||||
helper to help deal with some implementation-detail of the
|
||||
OS (such as elevating the priority of the sound server
|
||||
process to real-time for console users) it's not really
|
||||
helpful to define a polkit action for this since,
|
||||
realistically, no-one is going to choose to
|
||||
<emphasis>not</emphasis> grant the privilege. Remember, a
|
||||
secure program is often one with little amount of code and
|
||||
few dependencies.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DON'T</emphasis> call <link
|
||||
linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link>
|
||||
for all your actions every time the authority emits the
|
||||
<link
|
||||
linkend="eggdbus-signal-org.freedesktop.PolicyKit1.Authority::Changed">Changed</link>
|
||||
signal. Not only is this a waste of resources, the result
|
||||
may also be inaccurate as authorization rules can return
|
||||
whatever they want, whenever they want.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DON'T</emphasis> block the main
|
||||
thread in your mechanism (e.g. the one used to service IPC
|
||||
requests from unprivileged programs) while waiting for the
|
||||
authority to reply - calls to <link
|
||||
linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link>
|
||||
may take a very long time (seconds, even minutes) to
|
||||
complete as user interaction may be involved. Instead,
|
||||
use either the <link
|
||||
linkend="polkit-authority-check-authorization">asynchronous
|
||||
API</link> or a dedicated thread with the <link
|
||||
linkend="polkit-authority-check-authorization-sync">synchronous
|
||||
API</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis role='bold'>DON'T</emphasis> include any
|
||||
authorization rules with your application as this is only
|
||||
intended for administrators and special-purpose operating
|
||||
systems / environments. See <xref linkend="polkit-rules"/>
|
||||
for more information.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</simplesect>
|
||||
|
||||
<simplesect id="polkit-apps-unprivileged">
|
||||
<title>Usage in unprivileged programs</title>
|
||||
|
||||
<para>
|
||||
An unprivileged program normally does not use polkit directly
|
||||
- it simply calls into a privileged mechanism and the
|
||||
mechanism either renders service (or refuses the request)
|
||||
after checking with polkit (which may include presenting an
|
||||
authentication dialog). In this setup, the unprivileged
|
||||
program is oblivious to the fact that polkit is being used -
|
||||
it simply just waits for the privileged mechanism to carry out
|
||||
the request (which, if authentication dialogs are involved may
|
||||
take many seconds). This is a good thing because not worrying
|
||||
about implementation details like polkit, helps simplify the
|
||||
unprivileged program.
|
||||
</para>
|
||||
<para>
|
||||
Occasionally unprivileged programs need to disable, modify or
|
||||
remove UI elements to convey to the user that a certain action
|
||||
cannot be carried out (because e.g. the user is not
|
||||
authorized) or authentication is needed (by e.g. displaying a
|
||||
padlock icon in the UI). In this case, the best approach is
|
||||
usually to have the unprivileged program get this information
|
||||
from the privileged mechanism instead of polkit. This is
|
||||
especially true because often there is no reliable way that
|
||||
the unprivileged program can know what polkit action is going
|
||||
to be used. In general, there is no guarantee that operations
|
||||
(such as D-Bus methods) map 1:1: to polkit action - for
|
||||
example, a disk manager service's <literal>Format()</literal>
|
||||
method may check for the action
|
||||
<literal>net.company.diskmanager.format-removable</literal> if
|
||||
the disk is removable and
|
||||
<literal>net.company.diskmanager.format-fixed</literal>
|
||||
otherwise.
|
||||
</para>
|
||||
<para>
|
||||
However, in certain cases, for example when using the
|
||||
<emphasis>org.freedesktop.policykit.imply</emphasis> annotation
|
||||
(see the
|
||||
<link linkend="polkit.8"><citerefentry><refentrytitle>polkit</refentrytitle><manvolnum>8</manvolnum></citerefentry></link> man page),
|
||||
it is meaningful for an unprivileged program to query the
|
||||
polkit authority (to e.g. update UI elements) and it is
|
||||
in fact allowed to do so as long as the unprivileged program doesn't pass any variables along with the
|
||||
<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">CheckAuthorization()</link>
|
||||
call (otherwise it would be easy to spoof authentication dialogs and bypass authorization rules).
|
||||
In fact, since this use-case is so common,
|
||||
<link linkend="ref-api">libpolkit-gobject-1</link> provides the
|
||||
<link linkend="PolkitPermission"><type>PolkitPermission</type></link> type (which is derived from
|
||||
<ulink url="http://developer.gnome.org/gio/unstable/GPermission.html"><type>GPermission</type></ulink>)
|
||||
that can be used together with
|
||||
<ulink url="http://developer.gnome.org/gtk3/unstable/GtkLockButton.html"><type>GtkLockButton</type></ulink>.
|
||||
Note that for <type>GtkLockButton</type> to work well, the
|
||||
polkit action backing it should use <literal>auth_admin_keep</literal>
|
||||
for its implicit authorizations (or more rarely
|
||||
<literal>auth_self_keep</literal> for services which don't affect other
|
||||
users).
|
||||
This is often used to implement an <ulink
|
||||
url="http://developer.gnome.org/hig-book/3.2/hig-book.html#windows-instant-apply">instant
|
||||
apply</ulink> paradigm whereby the user
|
||||
<emphasis>unlocks</emphasis> (by authenticating) e.g. a
|
||||
preference pane window and is then free to change settings
|
||||
until the authorization expires or is revoked.
|
||||
</para>
|
||||
</simplesect>
|
||||
|
||||
<simplesect id="polkit-apps-no-auth-agent">
|
||||
<title>No authentication agent</title>
|
||||
<para>
|
||||
If a polkit application wants to handle the case where no
|
||||
authentication agent exists (for example if the app is launched
|
||||
via a
|
||||
<citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
login), the application can use the <link
|
||||
linkend="PolkitAgentTextListener">PolkitAgentTextListener</link>
|
||||
type to spawn its own authentication agent as
|
||||
needed. Alternatively, the <xref linkend="pkttyagent.1"/>
|
||||
helper can be used to do this.
|
||||
</para>
|
||||
</simplesect>
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="polkit-agents">
|
||||
<title>Writing polkit Authentication Agents</title>
|
||||
<para>
|
||||
Authentication agents are provided by desktop environments. When
|
||||
an user session starts, the agent registers with the polkit
|
||||
Authority using the <link
|
||||
linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent()</link>
|
||||
method. When services are needed, the authority will invoke
|
||||
methods on the <link
|
||||
linkend="eggdbus-interface-org.freedesktop.PolicyKit1.AuthenticationAgent">org.freedesktop.PolicyKit1.AuthenticationAgent</link>
|
||||
D-Bus interface. Once the user is authenticated, (a privileged
|
||||
part of) the agent invokes the <link
|
||||
linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>
|
||||
method. This method should be treated as an internal
|
||||
implementation detail, and callers should use the
|
||||
<link linkend="PolkitAgentSession">PolkitAgentSession</link> API to invoke
|
||||
it, which currently uses a setuid helper program.
|
||||
</para>
|
||||
<para>
|
||||
The <link linkend="ref-authentication-agent-api">libpolkit-agent-1</link>
|
||||
library provides helpers to make it easy to build authentication
|
||||
agents that use the native authentication system
|
||||
e.g. pam<literal>(8)</literal>.
|
||||
</para>
|
||||
<para>
|
||||
If the environment variable <literal>POLKIT_DEBUG</literal> is
|
||||
set, the libpolkit-agent-1 library prints out diagnostic
|
||||
information on standard output.
|
||||
</para>
|
||||
</chapter>
|
||||
|
||||
</part>
|
||||
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||
<!ENTITY version SYSTEM "../version.xml">
|
||||
<!ENTITY extensiondir SYSTEM "../extensiondir.xml">
|
||||
]>
|
||||
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<bookinfo>
|
||||
<title>polkit Reference Manual</title>
|
||||
<releaseinfo>
|
||||
For version &version; — the latest version of this
|
||||
documentation can be found at <ulink role="online-location"
|
||||
url="https://polkit.pages.freedesktop.org/polkit">https://polkit.pages.freedesktop.org/polkit</ulink>.
|
||||
</releaseinfo>
|
||||
</bookinfo>
|
||||
|
||||
<xi:include href="overview.xml"/>
|
||||
|
||||
<part id="ref-dbus-api">
|
||||
<title>D-Bus API Reference</title>
|
||||
<xi:include href="docbook-interface-org.freedesktop.PolicyKit1.Authority.xml"/>
|
||||
<xi:include href="docbook-interface-org.freedesktop.PolicyKit1.AuthenticationAgent.xml"/>
|
||||
</part>
|
||||
|
||||
<part id="ref-api">
|
||||
<title>Library API Reference</title>
|
||||
<xi:include href="xml/polkitauthority.xml"/>
|
||||
<xi:include href="xml/polkitauthorizationresult.xml"/>
|
||||
<xi:include href="xml/polkitdetails.xml"/>
|
||||
<xi:include href="xml/polkiterror.xml"/>
|
||||
<xi:include href="xml/polkitactiondescription.xml"/>
|
||||
<xi:include href="xml/polkittemporaryauthorization.xml"/>
|
||||
<xi:include href="xml/polkitpermission.xml"/>
|
||||
<chapter id="subjects">
|
||||
<title>Subjects</title>
|
||||
<xi:include href="xml/polkitsubject.xml"/>
|
||||
<xi:include href="xml/polkitunixprocess.xml"/>
|
||||
<xi:include href="xml/polkitunixsession.xml"/>
|
||||
<xi:include href="xml/polkitsystembusname.xml"/>
|
||||
</chapter>
|
||||
<chapter id="Identities">
|
||||
<title>Identities</title>
|
||||
<xi:include href="xml/polkitidentity.xml"/>
|
||||
<xi:include href="xml/polkitunixuser.xml"/>
|
||||
<xi:include href="xml/polkitunixgroup.xml"/>
|
||||
<xi:include href="xml/polkitunixnetgroup.xml"/>
|
||||
</chapter>
|
||||
</part>
|
||||
|
||||
<part id="ref-authentication-agent-api">
|
||||
<title>Authentication Agent API Reference</title>
|
||||
<xi:include href="xml/polkitagentlistener.xml"/>
|
||||
<xi:include href="xml/polkitagenttextlistener.xml"/>
|
||||
<xi:include href="xml/polkitagentsession.xml"/>
|
||||
</part>
|
||||
|
||||
<part id="manpages">
|
||||
<title>Manual Pages</title>
|
||||
<xi:include href="../man/polkit.xml"/>
|
||||
<xi:include href="../man/polkitd.xml"/>
|
||||
<xi:include href="../man/pkcheck.xml"/>
|
||||
<xi:include href="../man/pkaction.xml"/>
|
||||
<xi:include href="../man/pkexec.xml"/>
|
||||
<xi:include href="../man/pkttyagent.xml"/>
|
||||
</part>
|
||||
|
||||
<chapter id="polkit-hierarchy">
|
||||
<title>Object Hierarchy</title>
|
||||
<xi:include href="xml/tree_index.sgml"/>
|
||||
</chapter>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
<index id="polit-index">
|
||||
<title>Index</title>
|
||||
</index>
|
||||
|
||||
<appendix id="license">
|
||||
<title>License</title>
|
||||
<para>
|
||||
<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../COPYING" parse="text"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</para>
|
||||
</appendix>
|
||||
</book>
|
||||
@@ -0,0 +1,373 @@
|
||||
<SECTION>
|
||||
<FILE>polkitunixuser</FILE>
|
||||
PolkitUnixUser
|
||||
polkit_unix_user_new
|
||||
polkit_unix_user_new_for_name
|
||||
polkit_unix_user_get_uid
|
||||
polkit_unix_user_set_uid
|
||||
polkit_unix_user_get_name
|
||||
<SUBSECTION Standard>
|
||||
PolkitUnixUserClass
|
||||
POLKIT_UNIX_USER
|
||||
POLKIT_IS_UNIX_USER
|
||||
POLKIT_TYPE_UNIX_USER
|
||||
polkit_unix_user_get_type
|
||||
POLKIT_UNIX_USER_CLASS
|
||||
POLKIT_IS_UNIX_USER_CLASS
|
||||
POLKIT_UNIX_USER_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitauthority</FILE>
|
||||
PolkitAuthority
|
||||
PolkitAuthorityFeatures
|
||||
PolkitCheckAuthorizationFlags
|
||||
polkit_authority_get_async
|
||||
polkit_authority_get_finish
|
||||
polkit_authority_get_sync
|
||||
polkit_authority_get
|
||||
polkit_authority_get_owner
|
||||
polkit_authority_get_backend_name
|
||||
polkit_authority_get_backend_version
|
||||
polkit_authority_get_backend_features
|
||||
polkit_authority_check_authorization
|
||||
polkit_authority_check_authorization_finish
|
||||
polkit_authority_check_authorization_sync
|
||||
polkit_authority_enumerate_actions
|
||||
polkit_authority_enumerate_actions_finish
|
||||
polkit_authority_enumerate_actions_sync
|
||||
polkit_authority_register_authentication_agent
|
||||
polkit_authority_register_authentication_agent_finish
|
||||
polkit_authority_register_authentication_agent_sync
|
||||
polkit_authority_register_authentication_agent_with_options
|
||||
polkit_authority_register_authentication_agent_with_options_finish
|
||||
polkit_authority_register_authentication_agent_with_options_sync
|
||||
polkit_authority_unregister_authentication_agent
|
||||
polkit_authority_unregister_authentication_agent_finish
|
||||
polkit_authority_unregister_authentication_agent_sync
|
||||
polkit_authority_authentication_agent_response
|
||||
polkit_authority_authentication_agent_response_finish
|
||||
polkit_authority_authentication_agent_response_sync
|
||||
polkit_authority_enumerate_temporary_authorizations
|
||||
polkit_authority_enumerate_temporary_authorizations_finish
|
||||
polkit_authority_enumerate_temporary_authorizations_sync
|
||||
polkit_authority_revoke_temporary_authorizations
|
||||
polkit_authority_revoke_temporary_authorizations_finish
|
||||
polkit_authority_revoke_temporary_authorizations_sync
|
||||
polkit_authority_revoke_temporary_authorization_by_id
|
||||
polkit_authority_revoke_temporary_authorization_by_id_finish
|
||||
polkit_authority_revoke_temporary_authorization_by_id_sync
|
||||
<SUBSECTION Standard>
|
||||
PolkitAuthorityClass
|
||||
POLKIT_AUTHORITY
|
||||
POLKIT_IS_AUTHORITY
|
||||
POLKIT_TYPE_AUTHORITY
|
||||
polkit_authority_get_type
|
||||
POLKIT_AUTHORITY_CLASS
|
||||
POLKIT_IS_AUTHORITY_CLASS
|
||||
POLKIT_AUTHORITY_GET_CLASS
|
||||
polkit_check_authorization_flags_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitauthorizationresult</FILE>
|
||||
PolkitAuthorizationResult
|
||||
polkit_authorization_result_new
|
||||
polkit_authorization_result_get_is_authorized
|
||||
polkit_authorization_result_get_is_challenge
|
||||
polkit_authorization_result_get_retains_authorization
|
||||
polkit_authorization_result_get_temporary_authorization_id
|
||||
polkit_authorization_result_get_dismissed
|
||||
polkit_authorization_result_get_details
|
||||
<SUBSECTION Standard>
|
||||
PolkitAuthorizationResultClass
|
||||
POLKIT_AUTHORIZATION_RESULT
|
||||
POLKIT_IS_AUTHORIZATION_RESULT
|
||||
POLKIT_TYPE_AUTHORIZATION_RESULT
|
||||
polkit_authorization_result_get_type
|
||||
POLKIT_AUTHORIZATION_RESULT_CLASS
|
||||
POLKIT_IS_AUTHORIZATION_RESULT_CLASS
|
||||
POLKIT_AUTHORIZATION_RESULT_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitsystembusname</FILE>
|
||||
PolkitSystemBusName
|
||||
polkit_system_bus_name_new
|
||||
polkit_system_bus_name_get_name
|
||||
polkit_system_bus_name_set_name
|
||||
polkit_system_bus_name_get_process_sync
|
||||
<SUBSECTION Standard>
|
||||
PolkitSystemBusNameClass
|
||||
POLKIT_SYSTEM_BUS_NAME
|
||||
POLKIT_IS_SYSTEM_BUS_NAME
|
||||
POLKIT_TYPE_SYSTEM_BUS_NAME
|
||||
polkit_system_bus_name_get_type
|
||||
POLKIT_SYSTEM_BUS_NAME_CLASS
|
||||
POLKIT_IS_SYSTEM_BUS_NAME_CLASS
|
||||
POLKIT_SYSTEM_BUS_NAME_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitunixgroup</FILE>
|
||||
PolkitUnixGroup
|
||||
polkit_unix_group_new
|
||||
polkit_unix_group_new_for_name
|
||||
polkit_unix_group_get_gid
|
||||
polkit_unix_group_set_gid
|
||||
<SUBSECTION Standard>
|
||||
PolkitUnixGroupClass
|
||||
POLKIT_UNIX_GROUP
|
||||
POLKIT_IS_UNIX_GROUP
|
||||
POLKIT_TYPE_UNIX_GROUP
|
||||
polkit_unix_group_get_type
|
||||
POLKIT_UNIX_GROUP_CLASS
|
||||
POLKIT_IS_UNIX_GROUP_CLASS
|
||||
POLKIT_UNIX_GROUP_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitunixnetgroup</FILE>
|
||||
PolkitUnixNetgroup
|
||||
polkit_unix_netgroup_new
|
||||
polkit_unix_netgroup_get_name
|
||||
polkit_unix_netgroup_set_name
|
||||
<SUBSECTION Standard>
|
||||
PolkitUnixNetgroupClass
|
||||
POLKIT_UNIX_NETGROUP
|
||||
POLKIT_IS_UNIX_NETGROUP
|
||||
POLKIT_TYPE_UNIX_NETGROUP
|
||||
polkit_unix_netgroup_get_type
|
||||
POLKIT_UNIX_NETGROUP_CLASS
|
||||
POLKIT_IS_UNIX_NETGROUP_CLASS
|
||||
POLKIT_UNIX_NETGROUP_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitunixsession</FILE>
|
||||
PolkitUnixSession
|
||||
polkit_unix_session_new
|
||||
polkit_unix_session_new_for_process
|
||||
polkit_unix_session_new_for_process_finish
|
||||
polkit_unix_session_new_for_process_sync
|
||||
polkit_unix_session_get_session_id
|
||||
polkit_unix_session_set_session_id
|
||||
<SUBSECTION Standard>
|
||||
PolkitUnixSessionClass
|
||||
POLKIT_UNIX_SESSION
|
||||
POLKIT_IS_UNIX_SESSION
|
||||
POLKIT_TYPE_UNIX_SESSION
|
||||
polkit_unix_session_get_type
|
||||
POLKIT_UNIX_SESSION_CLASS
|
||||
POLKIT_IS_UNIX_SESSION_CLASS
|
||||
POLKIT_UNIX_SESSION_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitunixprocess</FILE>
|
||||
PolkitUnixProcess
|
||||
polkit_unix_process_new
|
||||
polkit_unix_process_new_full
|
||||
polkit_unix_process_new_for_owner
|
||||
polkit_unix_process_set_pid
|
||||
polkit_unix_process_get_pid
|
||||
polkit_unix_process_set_start_time
|
||||
polkit_unix_process_get_start_time
|
||||
polkit_unix_process_set_uid
|
||||
polkit_unix_process_get_uid
|
||||
polkit_unix_process_get_owner
|
||||
<SUBSECTION Standard>
|
||||
PolkitUnixProcessClass
|
||||
POLKIT_UNIX_PROCESS
|
||||
POLKIT_IS_UNIX_PROCESS
|
||||
POLKIT_TYPE_UNIX_PROCESS
|
||||
polkit_unix_process_get_type
|
||||
POLKIT_UNIX_PROCESS_CLASS
|
||||
POLKIT_IS_UNIX_PROCESS_CLASS
|
||||
POLKIT_UNIX_PROCESS_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitidentity</FILE>
|
||||
PolkitIdentity
|
||||
PolkitIdentityIface
|
||||
polkit_identity_hash
|
||||
polkit_identity_equal
|
||||
polkit_identity_to_string
|
||||
polkit_identity_from_string
|
||||
<SUBSECTION Standard>
|
||||
POLKIT_IDENTITY
|
||||
POLKIT_IS_IDENTITY
|
||||
POLKIT_TYPE_IDENTITY
|
||||
polkit_identity_get_type
|
||||
POLKIT_IDENTITY_GET_IFACE
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitsubject</FILE>
|
||||
PolkitSubject
|
||||
PolkitSubjectIface
|
||||
polkit_subject_hash
|
||||
polkit_subject_equal
|
||||
polkit_subject_exists
|
||||
polkit_subject_exists_finish
|
||||
polkit_subject_exists_sync
|
||||
polkit_subject_to_string
|
||||
polkit_subject_from_string
|
||||
<SUBSECTION Standard>
|
||||
POLKIT_SUBJECT
|
||||
POLKIT_IS_SUBJECT
|
||||
POLKIT_TYPE_SUBJECT
|
||||
polkit_subject_get_type
|
||||
POLKIT_SUBJECT_GET_IFACE
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitactiondescription</FILE>
|
||||
PolkitActionDescription
|
||||
PolkitImplicitAuthorization
|
||||
polkit_action_description_get_action_id
|
||||
polkit_action_description_get_description
|
||||
polkit_action_description_get_message
|
||||
polkit_action_description_get_vendor_name
|
||||
polkit_action_description_get_vendor_url
|
||||
polkit_action_description_get_icon_name
|
||||
polkit_action_description_get_implicit_any
|
||||
polkit_action_description_get_implicit_inactive
|
||||
polkit_action_description_get_implicit_active
|
||||
polkit_action_description_get_annotation
|
||||
polkit_action_description_get_annotation_keys
|
||||
polkit_implicit_authorization_to_string
|
||||
polkit_implicit_authorization_from_string
|
||||
<SUBSECTION Standard>
|
||||
PolkitActionDescriptionClass
|
||||
POLKIT_ACTION_DESCRIPTION
|
||||
POLKIT_IS_ACTION_DESCRIPTION
|
||||
POLKIT_TYPE_ACTION_DESCRIPTION
|
||||
polkit_action_description_get_type
|
||||
POLKIT_ACTION_DESCRIPTION_CLASS
|
||||
POLKIT_IS_ACTION_DESCRIPTION_CLASS
|
||||
POLKIT_ACTION_DESCRIPTION_GET_CLASS
|
||||
polkit_implicit_authorization_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkiterror</FILE>
|
||||
POLKIT_ERROR
|
||||
PolkitError
|
||||
<SUBSECTION Standard>
|
||||
polkit_error_quark
|
||||
POLKIT_TYPE_ERROR
|
||||
polkit_error_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitdetails</FILE>
|
||||
PolkitDetails
|
||||
polkit_details_new
|
||||
polkit_details_lookup
|
||||
polkit_details_insert
|
||||
polkit_details_get_keys
|
||||
<SUBSECTION Standard>
|
||||
PolkitDetailsClass
|
||||
POLKIT_DETAILS
|
||||
POLKIT_IS_DETAILS
|
||||
POLKIT_TYPE_DETAILS
|
||||
polkit_details_get_type
|
||||
POLKIT_DETAILS_CLASS
|
||||
POLKIT_IS_DETAILS_CLASS
|
||||
POLKIT_DETAILS_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitagentsession</FILE>
|
||||
<TITLE>PolkitAgentSession</TITLE>
|
||||
PolkitAgentSession
|
||||
polkit_agent_session_new
|
||||
polkit_agent_session_initiate
|
||||
polkit_agent_session_response
|
||||
polkit_agent_session_cancel
|
||||
<SUBSECTION Standard>
|
||||
POLKIT_AGENT_SESSION
|
||||
POLKIT_AGENT_IS_SESSION
|
||||
POLKIT_AGENT_TYPE_SESSION
|
||||
polkit_agent_session_get_type
|
||||
POLKIT_AGENT_SESSION_CLASS
|
||||
POLKIT_AGENT_IS_SESSION_CLASS
|
||||
POLKIT_AGENT_SESSION_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitagentlistener</FILE>
|
||||
<TITLE>PolkitAgentListener</TITLE>
|
||||
PolkitAgentListener
|
||||
PolkitAgentListenerClass
|
||||
polkit_agent_listener_initiate_authentication
|
||||
polkit_agent_listener_initiate_authentication_finish
|
||||
PolkitAgentRegisterFlags
|
||||
polkit_agent_listener_register
|
||||
polkit_agent_listener_register_with_options
|
||||
polkit_agent_listener_unregister
|
||||
polkit_agent_register_listener
|
||||
<SUBSECTION Standard>
|
||||
POLKIT_AGENT_LISTENER
|
||||
POLKIT_AGENT_IS_LISTENER
|
||||
POLKIT_AGENT_TYPE_LISTENER
|
||||
polkit_agent_listener_get_type
|
||||
POLKIT_AGENT_LISTENER_CLASS
|
||||
POLKIT_AGENT_IS_LISTENER_CLASS
|
||||
POLKIT_AGENT_LISTENER_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitagenttextlistener</FILE>
|
||||
<TITLE>PolkitAgentTextListener</TITLE>
|
||||
PolkitAgentTextListener
|
||||
polkit_agent_text_listener_new
|
||||
<SUBSECTION Standard>
|
||||
POLKIT_AGENT_TEXT_LISTENER
|
||||
POLKIT_AGENT_IS_TEXT_LISTENER
|
||||
POLKIT_AGENT_TYPE_TEXT_LISTENER
|
||||
polkit_agent_text_listener_get_type
|
||||
POLKIT_AGENT_TEXT_LISTENER_CLASS
|
||||
POLKIT_AGENT_IS_TEXT_LISTENER_CLASS
|
||||
POLKIT_AGENT_TEXT_LISTENER_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkittemporaryauthorization</FILE>
|
||||
<TITLE>PolkitTemporaryAuthorization</TITLE>
|
||||
PolkitTemporaryAuthorization
|
||||
polkit_temporary_authorization_get_id
|
||||
polkit_temporary_authorization_get_action_id
|
||||
polkit_temporary_authorization_get_subject
|
||||
polkit_temporary_authorization_get_time_obtained
|
||||
polkit_temporary_authorization_get_time_expires
|
||||
<SUBSECTION Standard>
|
||||
POLKIT_TEMPORARY_AUTHORIZATION
|
||||
POLKIT_IS_TEMPORARY_AUTHORIZATION
|
||||
POLKIT_TYPE_TEMPORARY_AUTHORIZATION
|
||||
polkit_temporary_authorization_get_type
|
||||
POLKIT_TEMPORARY_AUTHORIZATION_CLASS
|
||||
POLKIT_IS_TEMPORARY_AUTHORIZATION_CLASS
|
||||
POLKIT_TEMPORARY_AUTHORIZATION_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>polkitpermission</FILE>
|
||||
PolkitPermission
|
||||
polkit_permission_new
|
||||
polkit_permission_new_finish
|
||||
polkit_permission_new_sync
|
||||
polkit_permission_get_action_id
|
||||
polkit_permission_get_subject
|
||||
<SUBSECTION Standard>
|
||||
PolkitPermissionClass
|
||||
POLKIT_PERMISSION
|
||||
POLKIT_IS_PERMISSION
|
||||
POLKIT_TYPE_PERMISSION
|
||||
polkit_permission_get_type
|
||||
POLKIT_PERMISSION_CLASS
|
||||
POLKIT_IS_PERMISSION_CLASS
|
||||
POLKIT_PERMISSION_GET_CLASS
|
||||
</SECTION>
|
||||
@@ -0,0 +1,21 @@
|
||||
polkit_authority_get_type
|
||||
polkit_action_description_get_type
|
||||
polkit_details_get_type
|
||||
polkit_check_authorization_flags_get_type
|
||||
polkit_implicit_authorization_get_type
|
||||
polkit_identity_get_type
|
||||
polkit_unix_user_get_type
|
||||
polkit_unix_group_get_type
|
||||
polkit_unix_netgroup_get_type
|
||||
polkit_subject_get_type
|
||||
polkit_unix_process_get_type
|
||||
polkit_unix_session_get_type
|
||||
polkit_system_bus_name_get_type
|
||||
polkit_error_get_type
|
||||
polkit_authorization_result_get_type
|
||||
polkit_temporary_authorization_get_type
|
||||
polkit_permission_get_type
|
||||
|
||||
polkit_agent_session_get_type
|
||||
polkit_agent_listener_get_type
|
||||
polkit_agent_text_listener_get_type
|
||||
@@ -0,0 +1 @@
|
||||
@VERSION@
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<its:rules xmlns:its="http://www.w3.org/2005/11/its"
|
||||
version="2.0">
|
||||
<its:translateRule selector="//*" translate="no"/>
|
||||
<its:translateRule selector="//action/description |
|
||||
//action/message"
|
||||
translate="yes"/>
|
||||
</its:rules>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<locatingRules>
|
||||
<locatingRule name="polkit policy" pattern="*.policy">
|
||||
<documentRule localName="policyconfig" target="polkit.its"/>
|
||||
</locatingRule>
|
||||
</locatingRules>
|
||||
@@ -0,0 +1,430 @@
|
||||
project(
|
||||
'polkit', ['c'],
|
||||
version: '124',
|
||||
license: 'LGPL2+',
|
||||
default_options: [
|
||||
'buildtype=debugoptimized',
|
||||
'prefix=/usr',
|
||||
'cpp_std=c++17',
|
||||
],
|
||||
meson_version: '>= 0.50.0',
|
||||
)
|
||||
|
||||
pk_version = meson.project_version()
|
||||
|
||||
pk_api_version = '1'
|
||||
pk_api_name = '@0@-@1@'.format(meson.project_name(), pk_api_version)
|
||||
|
||||
pk_gir_ns = 'Polkit'
|
||||
pk_gir_version = '1.0'
|
||||
|
||||
pk_prefix = get_option('prefix')
|
||||
pk_datadir = get_option('datadir')
|
||||
pk_includedir = get_option('includedir')
|
||||
pk_libdir = get_option('libdir')
|
||||
pk_mandir = get_option('mandir')
|
||||
pk_sysconfdir = get_option('sysconfdir')
|
||||
|
||||
pk_pkgdatadir = pk_datadir / pk_api_name
|
||||
pk_pkgincludedir = pk_includedir / pk_api_name
|
||||
# note that this is always 'lib', not lib64 or lib/x86_64-linux-gnu
|
||||
pk_libprivdir = 'lib' / pk_api_name
|
||||
pk_pkgsysconfdir = pk_sysconfdir / pk_api_name
|
||||
|
||||
pk_actiondir = pk_api_name / 'actions'
|
||||
pk_pkgactiondir = pk_datadir / pk_actiondir
|
||||
|
||||
soversion = 0
|
||||
current = 0
|
||||
revision = 0
|
||||
libversion = '@0@.@1@.@2@'.format(soversion, current, revision)
|
||||
|
||||
gnome = import('gnome')
|
||||
i18n = import('i18n')
|
||||
pkg = import('pkgconfig')
|
||||
|
||||
source_root = meson.current_source_dir()
|
||||
build_root = meson.current_build_dir()
|
||||
|
||||
data_dir = source_root / 'data'
|
||||
its_dir = source_root / 'gettext'
|
||||
po_dir = source_root / 'po'
|
||||
|
||||
its_data = files(
|
||||
'gettext/its/polkit.its',
|
||||
'gettext/its/polkit.loc',
|
||||
)
|
||||
|
||||
install_data(
|
||||
its_data,
|
||||
install_dir: pk_datadir / 'gettext/its',
|
||||
)
|
||||
|
||||
top_inc = include_directories('.')
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
config_h = configuration_data()
|
||||
|
||||
# defines
|
||||
set_defines = [
|
||||
# package
|
||||
['PACKAGE_BUGREPORT', 'https://gitlab.freedesktop.org/polkit/polkit/-/issues/'],
|
||||
['PACKAGE_NAME', meson.project_name()],
|
||||
['PACKAGE_URL', 'http://www.freedesktop.org/wiki/Software/polkit'],
|
||||
['PACKAGE_VERSION', pk_version],
|
||||
['VERSION', pk_version],
|
||||
# i18n
|
||||
['GETTEXT_PACKAGE', pk_api_name],
|
||||
]
|
||||
|
||||
foreach define: set_defines
|
||||
config_h.set_quoted(define[0], define[1])
|
||||
endforeach
|
||||
|
||||
# Globally define_GNU_SOURCE and therefore enable the GNU extensions
|
||||
config_h.set('_GNU_SOURCE', true)
|
||||
|
||||
# functions
|
||||
check_functions = [
|
||||
'clearenv',
|
||||
'fdatasync',
|
||||
'setnetgrent',
|
||||
]
|
||||
|
||||
foreach func: check_functions
|
||||
config_h.set('HAVE_' + func.to_upper(), cc.has_function(func))
|
||||
endforeach
|
||||
|
||||
# compiler flags
|
||||
common_c_flags = [
|
||||
# FIXME: this should go as 'c_std=c99' in project's default_options.
|
||||
# https://github.com/mesonbuild/meson/issues/1889
|
||||
# https://github.com/mesonbuild/meson/pull/6729
|
||||
'-std=c99',
|
||||
'-DHAVE_CONFIG_H',
|
||||
]
|
||||
compiler_flags = []
|
||||
compiler_c_flags = []
|
||||
|
||||
if get_option('buildtype').contains('debug')
|
||||
compiler_c_flags += cc.get_supported_arguments([
|
||||
'-Waggregate-return',
|
||||
'-Wdeclaration-after-statement',
|
||||
'-Wformat=2',
|
||||
'-Wimplicit-function-declaration',
|
||||
'-Winit-self',
|
||||
'-Wmissing-declarations',
|
||||
'-Wmissing-include-dirs',
|
||||
'-Wmissing-prototypes',
|
||||
'-Wstrict-prototypes',
|
||||
])
|
||||
endif
|
||||
|
||||
add_project_arguments(common_c_flags + compiler_c_flags, language: 'c')
|
||||
|
||||
glib_req_version = '>= 2.30.0'
|
||||
|
||||
gio_dep = dependency('gio-2.0', version: glib_req_version)
|
||||
gio_unix_dep = dependency('gio-unix-2.0', version: glib_req_version)
|
||||
glib_dep = dependency('glib-2.0', version: glib_req_version)
|
||||
gobject_dep = dependency('gobject-2.0', version: glib_req_version)
|
||||
|
||||
expat_dep = dependency('expat')
|
||||
assert(cc.has_header('expat.h', dependencies: expat_dep), 'Can\'t find expat.h. Please install expat.')
|
||||
assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t find expat library. Please install expat.')
|
||||
|
||||
duktape_req_version = '>= 2.2.0'
|
||||
|
||||
js_engine = get_option('js_engine')
|
||||
libs_only = get_option('libs-only')
|
||||
if libs_only
|
||||
js_engine = ''
|
||||
endif
|
||||
|
||||
if js_engine == 'duktape'
|
||||
js_dep = dependency('duktape', version: duktape_req_version, required: false)
|
||||
if not js_dep.found()
|
||||
message('Falling back to looking for library and header...')
|
||||
js_dep = cc.find_library('duktape', has_headers: ['duktape.h'], required: true)
|
||||
endif
|
||||
libm_dep = cc.find_library('m')
|
||||
thread_dep = dependency('threads')
|
||||
func = 'pthread_condattr_setclock'
|
||||
config_h.set('HAVE_' + func.to_upper(), cc.has_function(func, prefix : '#include <pthread.h>'))
|
||||
elif js_engine == 'mozjs'
|
||||
js_dep = dependency('mozjs-115')
|
||||
|
||||
_system = host_machine.system().to_lower()
|
||||
if _system.contains('freebsd')
|
||||
config_h.set('__BSD_VISIBLE', 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
dbus_dep = dependency('dbus-1', required: false)
|
||||
dbus_policydir = pk_prefix / pk_datadir / 'dbus-1/system.d'
|
||||
if dbus_dep.found()
|
||||
dbus_system_bus_services_dir = dbus_dep.get_pkgconfig_variable('system_bus_services_dir', define_variable: ['datadir', pk_prefix / pk_datadir])
|
||||
else
|
||||
# libdbus development files not installed, assume a standard layout
|
||||
dbus_system_bus_services_dir = pk_prefix / pk_datadir / 'dbus-1' / 'system-services'
|
||||
endif
|
||||
|
||||
# check OS
|
||||
host_system = host_machine.system()
|
||||
config_h.set('HAVE_' + host_system.to_upper(), true)
|
||||
|
||||
# Check whether setnetgrent has a return value
|
||||
config_h.set('HAVE_NETGROUP_H', cc.has_header('netgroup.h'))
|
||||
|
||||
if config_h.get('HAVE_SETNETGRENT', false)
|
||||
setnetgrent_return_src = '''
|
||||
#include <stddef.h>
|
||||
#ifdef HAVE_NETGROUP_H
|
||||
#include <netgroup.h>
|
||||
#else
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
int main() {
|
||||
int r = setnetgrent (NULL);
|
||||
};
|
||||
'''
|
||||
|
||||
config_h.set('HAVE_SETNETGRENT_RETURN', cc.compiles(setnetgrent_return_src, name: 'setnetgrent return support'))
|
||||
endif
|
||||
|
||||
# Select wether to use libsystemd-login, libelogind or ConsoleKit for session tracking
|
||||
session_tracking = get_option('session_tracking')
|
||||
enable_logind = (session_tracking != 'ConsoleKit')
|
||||
if enable_logind
|
||||
if session_tracking == 'libsystemd-login'
|
||||
logind_dep = dependency('libsystemd', required: false)
|
||||
if not logind_dep.found()
|
||||
logind_dep = dependency('libsystemd-login', not_found_message: 'libsystemd support requested but libsystemd or libsystemd-login library not found')
|
||||
endif
|
||||
else
|
||||
logind_dep = dependency('libelogind', not_found_message: 'libelogind support requested but libelogind library not found')
|
||||
endif
|
||||
|
||||
func = 'sd_uid_get_display'
|
||||
config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
|
||||
func = 'sd_pidfd_get_session'
|
||||
config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
|
||||
|
||||
# systemd unit / service files
|
||||
systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
|
||||
if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
|
||||
systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
|
||||
# FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
|
||||
systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
|
||||
endif
|
||||
|
||||
systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d')
|
||||
endif
|
||||
config_h.set('HAVE_LIBSYSTEMD', enable_logind)
|
||||
|
||||
config_h.set('HAVE_PIDFD_OPEN', cc.get_define('SYS_pidfd_open', prefix: '#include <sys/syscall.h>') != '')
|
||||
|
||||
# User for running polkitd
|
||||
polkitd_user = get_option('polkitd_user')
|
||||
config_h.set_quoted('POLKITD_USER', polkitd_user)
|
||||
|
||||
polkitd_uid = get_option('polkitd_uid')
|
||||
config_h.set('POLKITD_UID', polkitd_uid)
|
||||
|
||||
# Select which authentication framework to use
|
||||
auth_deps = []
|
||||
|
||||
auth_fw = get_option('authfw')
|
||||
enable_pam = (auth_fw == 'pam')
|
||||
if enable_pam
|
||||
# Check for PAM
|
||||
pam_dep = cc.find_library('pam')
|
||||
assert(pam_dep.found() and cc.has_function('pam_start', dependencies: pam_dep), 'Could not find pam/pam-devel, please install the needed packages.')
|
||||
|
||||
# how to call pam_strerror
|
||||
pam_strerror_src = '''
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <security/pam_appl.h>
|
||||
#endif
|
||||
int main() {
|
||||
@0@
|
||||
};
|
||||
'''
|
||||
|
||||
# FIXME: Not necessary anymore?
|
||||
if cc.compiles(pam_strerror_src.format('pam_handle_t *pamh = 0; char *s = pam_strerror(pamh, PAM_SUCCESS);'))
|
||||
# FIXME: unused?
|
||||
config_h.set('PAM_STRERROR_TWO_ARGS', true)
|
||||
else
|
||||
message('how to call pam_strerror: ' + cc.compiles(pam_strerror_src.format('char *s = pam_strerror(PAM_SUCCESS);')).to_string('1', 'unknown'))
|
||||
endif
|
||||
|
||||
pam_prefix = get_option('pam_prefix')
|
||||
if pam_prefix == ''
|
||||
pam_prefix = pk_prefix / 'lib/pam.d'
|
||||
else
|
||||
message('PAM files will be installed in prefix ' + pam_prefix)
|
||||
endif
|
||||
|
||||
pam_module_dir = get_option('pam_module_dir')
|
||||
if pam_module_dir == ''
|
||||
pam_module_dir = pk_libdir / 'security'
|
||||
endif
|
||||
|
||||
auth_deps += pam_dep
|
||||
elif auth_fw == 'shadow'
|
||||
auth_deps += cc.find_library('crypt')
|
||||
endif
|
||||
config_h.set('POLKIT_AUTHFW_' + auth_fw.to_upper(), true)
|
||||
|
||||
# FIXME: sigtimedwait is not used anywhere?
|
||||
'''
|
||||
if host_system == 'solaris'
|
||||
rt_dep = cc.find_library('rt')
|
||||
cc.has_function('sigtimedwait', dependencies: rt_dep)
|
||||
else
|
||||
cc.has_function('sigtimedwait')
|
||||
endif
|
||||
'''
|
||||
|
||||
os_type = get_option('os_type')
|
||||
if os_type == ''
|
||||
os_paths = [
|
||||
['redhat', '/etc/sysconfig/network-scripts'],
|
||||
['suse', '/etc/SuSE-release'],
|
||||
['debian', '/etc/debian_version'],
|
||||
['gentoo', '/etc/gentoo-release'],
|
||||
['pardus', '/etc/pardus-release'],
|
||||
['lfs', '/etc/lfs-release'],
|
||||
]
|
||||
|
||||
foreach os_path: os_paths
|
||||
if run_command('test', '-e', os_path[1]).returncode() == 0
|
||||
os_type = os_path[0]
|
||||
break
|
||||
endif
|
||||
endforeach
|
||||
|
||||
if os_type == ''
|
||||
message('Linux distribution autodetection failed, specify the distribution to target using -Dos_type=')
|
||||
endif
|
||||
endif
|
||||
|
||||
pam_include = get_option('pam_include')
|
||||
if pam_include == ''
|
||||
if ['suse', 'solaris'].contains(os_type)
|
||||
pam_conf = {
|
||||
'PAM_FILE_INCLUDE_AUTH': 'common-auth',
|
||||
'PAM_FILE_INCLUDE_ACCOUNT': 'common-account',
|
||||
'PAM_FILE_INCLUDE_PASSWORD': 'common-password',
|
||||
'PAM_FILE_INCLUDE_SESSION': 'common-session',
|
||||
}
|
||||
elif os_type.contains('bsd')
|
||||
pam_conf = {
|
||||
'PAM_FILE_INCLUDE_AUTH': 'system',
|
||||
'PAM_FILE_INCLUDE_ACCOUNT': 'system',
|
||||
'PAM_FILE_INCLUDE_PASSWORD': 'system',
|
||||
'PAM_FILE_INCLUDE_SESSION': 'system',
|
||||
}
|
||||
elif os_type == 'lfs'
|
||||
pam_conf = {
|
||||
'PAM_FILE_INCLUDE_AUTH': 'system-auth',
|
||||
'PAM_FILE_INCLUDE_ACCOUNT': 'system-account',
|
||||
'PAM_FILE_INCLUDE_PASSWORD': 'system-password',
|
||||
'PAM_FILE_INCLUDE_SESSION': 'system-session',
|
||||
}
|
||||
#if ['redhat', 'gentoo', 'pardus'].contains(os_type)
|
||||
else
|
||||
pam_conf = {
|
||||
'PAM_FILE_INCLUDE_AUTH': 'system-auth',
|
||||
'PAM_FILE_INCLUDE_ACCOUNT': 'system-auth',
|
||||
'PAM_FILE_INCLUDE_PASSWORD': 'system-auth',
|
||||
'PAM_FILE_INCLUDE_SESSION': 'system-auth',
|
||||
}
|
||||
endif
|
||||
else
|
||||
pam_conf = {
|
||||
'PAM_FILE_INCLUDE_AUTH': pam_include,
|
||||
'PAM_FILE_INCLUDE_ACCOUNT': pam_include,
|
||||
'PAM_FILE_INCLUDE_PASSWORD': pam_include,
|
||||
'PAM_FILE_INCLUDE_SESSION': pam_include,
|
||||
}
|
||||
endif
|
||||
|
||||
enable_introspection = get_option('introspection')
|
||||
if enable_introspection
|
||||
dependency('gobject-introspection-1.0', version: '>= 0.6.2')
|
||||
endif
|
||||
|
||||
content_files = files('COPYING')
|
||||
|
||||
subdir('actions')
|
||||
subdir('data')
|
||||
subdir('src')
|
||||
subdir('docs')
|
||||
subdir('po')
|
||||
|
||||
enable_tests = get_option('tests')
|
||||
if enable_tests
|
||||
subdir('test')
|
||||
endif
|
||||
|
||||
configure_file(
|
||||
output: 'config.h',
|
||||
configuration: config_h,
|
||||
)
|
||||
|
||||
|
||||
if not libs_only
|
||||
meson.add_install_script(
|
||||
'meson_post_install.py',
|
||||
get_option('bindir'),
|
||||
pk_libprivdir,
|
||||
pk_pkgsysconfdir,
|
||||
polkitd_user,
|
||||
)
|
||||
endif
|
||||
|
||||
output = '\n ' + meson.project_name() + ' ' + meson.project_version() + '\n'
|
||||
output += ' ============\n\n'
|
||||
output += ' prefix: ' + pk_prefix + '\n'
|
||||
output += ' datadir: ' + pk_datadir + '\n\n'
|
||||
output += ' includedir: ' + pk_includedir + '\n'
|
||||
output += ' libdir: ' + pk_libdir + '\n'
|
||||
output += ' sysconfdir: ' + pk_sysconfdir + '\n'
|
||||
output += ' source code location: ' + source_root + '\n'
|
||||
output += ' compiler: ' + cc.get_id() + '\n'
|
||||
output += ' c_flags: ' + ' '.join(compiler_c_flags) + '\n\n'
|
||||
if enable_man
|
||||
output += ' xsltproc: ' + xsltproc.path() + '\n'
|
||||
endif
|
||||
output += ' introspection: ' + enable_introspection.to_string() + '\n'
|
||||
output += ' Distribution/OS: ' + os_type + '\n'
|
||||
output += ' Authentication framework: ' + auth_fw + '\n'
|
||||
output += ' Session tracking: ' + session_tracking + '\n'
|
||||
if enable_logind
|
||||
output += ' systemdsystemunitdir: ' + systemd_systemdsystemunitdir + '\n'
|
||||
endif
|
||||
output += ' polkitd user: ' + polkitd_user + ' \n'
|
||||
if polkitd_uid != '-'
|
||||
output += ' polkitd UID: ' + polkitd_uid + ' \n'
|
||||
endif
|
||||
output += ' Javascript engine: ' + js_engine + '\n'
|
||||
output += ' PAM support: ' + enable_pam.to_string() + '\n\n'
|
||||
if libs_only
|
||||
output += ' !!! Only building polkit libraries, not polkitd !!!\n\n'
|
||||
endif
|
||||
if enable_pam
|
||||
output += ' PAM file auth: ' + pam_conf['PAM_FILE_INCLUDE_AUTH'] + '\n'
|
||||
output += ' PAM file acount: ' + pam_conf['PAM_FILE_INCLUDE_ACCOUNT'] + '\n'
|
||||
output += ' PAM file password: ' + pam_conf['PAM_FILE_INCLUDE_PASSWORD'] + '\n'
|
||||
output += ' PAM file session: ' + pam_conf['PAM_FILE_INCLUDE_SESSION'] + '\n'
|
||||
output += ' PAM config location: ' + pam_prefix + '\n\n'
|
||||
endif
|
||||
output += ' Building api docs: ' + enable_gtk_doc.to_string() + '\n'
|
||||
output += ' Building man pages: ' + enable_man.to_string() + '\n'
|
||||
output += ' Building examples: ' + enable_examples.to_string() + '\n'
|
||||
output += ' Building tests: ' + enable_tests.to_string()
|
||||
message(output)
|
||||
@@ -0,0 +1,21 @@
|
||||
option('session_tracking', type: 'combo', choices: ['libsystemd-login', 'libelogind', 'ConsoleKit'], value: 'ConsoleKit', description: 'session tracking (libsystemd-login/libelogind/ConsoleKit)')
|
||||
option('systemdsystemunitdir', type: 'string', value: '', description: 'custom directory for systemd system units')
|
||||
|
||||
option('libs-only', type: 'boolean', value: false, description: 'Only build libraries (skips building polkitd)')
|
||||
option('polkitd_user', type: 'string', value: 'polkitd', description: 'User for running polkitd (polkitd)')
|
||||
option('polkitd_uid', type: 'string', value: '-', description: 'Fixed UID for user running polkitd (polkitd)')
|
||||
|
||||
option('authfw', type: 'combo', choices: ['pam', 'shadow', 'bsdauth'], value: 'pam', description: 'Authentication framework (pam/shadow)')
|
||||
option('os_type', type: 'combo', choices: ['redhat', 'suse', 'gentoo', 'pardus', 'solaris', 'netbsd', 'lfs', ''], value: '', description: 'distribution or OS')
|
||||
|
||||
option('pam_include', type: 'string', value: '', description: 'pam file to include')
|
||||
option('pam_module_dir', type: 'string', value: '', description: 'directory to install PAM security module')
|
||||
option('pam_prefix', type: 'string', value: '', description: 'specify where pam files go')
|
||||
|
||||
option('examples', type: 'boolean', value: false, description: 'Build example programs')
|
||||
option('tests', type: 'boolean', value: false, description: 'Build tests')
|
||||
option('introspection', type: 'boolean', value: true, description: 'Enable introspection for this build')
|
||||
|
||||
option('gtk_doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
|
||||
option('man', type: 'boolean', value: false, description: 'build manual pages')
|
||||
option('js_engine', type: 'combo', choices: ['mozjs', 'duktape'], value: 'duktape', description: 'javascript engine')
|
||||
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import pwd
|
||||
import sys
|
||||
|
||||
destdir = os.environ.get('DESTDIR')
|
||||
prefix = os.environ['MESON_INSTALL_DESTDIR_PREFIX']
|
||||
|
||||
def destdir_path(p):
|
||||
if os.path.isabs(p):
|
||||
if destdir is None:
|
||||
return p
|
||||
else:
|
||||
return os.path.join(destdir, os.path.relpath(p, '/'))
|
||||
else:
|
||||
return os.path.join(prefix, p)
|
||||
|
||||
bindir = destdir_path(sys.argv[1])
|
||||
pkglibdir = destdir_path(sys.argv[2])
|
||||
pkgsysconfdir = destdir_path(sys.argv[3])
|
||||
polkitd_user = sys.argv[4]
|
||||
|
||||
try:
|
||||
polkitd_gid = pwd.getpwnam(polkitd_user).pw_gid
|
||||
except KeyError:
|
||||
polkitd_gid = None
|
||||
|
||||
dst = os.path.join(bindir, 'pkexec')
|
||||
|
||||
if os.geteuid() == 0:
|
||||
os.chown(dst, 0, -1)
|
||||
os.chmod(dst, 0o4755)
|
||||
else:
|
||||
print(
|
||||
'Owner and mode of {} need to be setuid root (04755) after '
|
||||
'installation'.format(
|
||||
dst,
|
||||
)
|
||||
)
|
||||
|
||||
dst = os.path.join(pkgsysconfdir, 'rules.d')
|
||||
|
||||
if not os.path.exists(dst):
|
||||
os.makedirs(dst, mode=0o750)
|
||||
if os.geteuid() == 0 and polkitd_gid is not None:
|
||||
os.chown(dst, 0, polkitd_gid)
|
||||
else:
|
||||
print(
|
||||
'Owner of {} needs to be set to root and group to {} after installation'.format(
|
||||
dst, polkitd_user,
|
||||
)
|
||||
)
|
||||
|
||||
# polkit-agent-helper-1 need to be setuid root because it's used to
|
||||
# authenticate not only the invoking user, but possibly also root
|
||||
# and/or other users.
|
||||
dst = os.path.join(pkglibdir, 'polkit-agent-helper-1')
|
||||
|
||||
if os.geteuid() == 0:
|
||||
os.chown(dst, 0, -1)
|
||||
os.chmod(dst, 0o4755)
|
||||
else:
|
||||
print(
|
||||
'Owner and mode of {} need to be setuid root (04755) after '
|
||||
'installation'.format(
|
||||
dst,
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,23 @@
|
||||
# please keep this list sorted alphabetically
|
||||
#
|
||||
cs
|
||||
da
|
||||
de
|
||||
hr
|
||||
hu
|
||||
id
|
||||
it
|
||||
ka
|
||||
nl
|
||||
nn
|
||||
pl
|
||||
pt
|
||||
pt_BR
|
||||
ro
|
||||
ru
|
||||
sk
|
||||
sv
|
||||
tr
|
||||
uk
|
||||
zh_CN
|
||||
zh_TW
|
||||
@@ -0,0 +1,78 @@
|
||||
# Makefile variables for PO directory in any package using GNU gettext.
|
||||
|
||||
# Usually the message domain is the same as the package name.
|
||||
DOMAIN = polkit-1
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
|
||||
# These options get passed to xgettext.
|
||||
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments
|
||||
|
||||
# This is the copyright holder that gets inserted into the header of the
|
||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||
# package. (Note that the msgstr strings, extracted from the package's
|
||||
# sources, belong to the copyright holder of the package.) Translators are
|
||||
# expected to transfer the copyright for their translations to this person
|
||||
# or entity, or to disclaim their copyright. The empty string stands for
|
||||
# the public domain; in this case the translators are expected to disclaim
|
||||
# their copyright.
|
||||
COPYRIGHT_HOLDER = polkit Authors
|
||||
|
||||
# This tells whether or not to prepend "GNU " prefix to the package
|
||||
# name that gets inserted into the header of the $(DOMAIN).pot file.
|
||||
# Possible values are "yes", "no", or empty. If it is empty, try to
|
||||
# detect it automatically by scanning the files in $(top_srcdir) for
|
||||
# "GNU packagename" string.
|
||||
PACKAGE_GNU = no
|
||||
|
||||
# This is the email address or URL to which the translators shall report
|
||||
# bugs in the untranslated strings:
|
||||
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||
# - Strings which use unclear terms or require additional context to be
|
||||
# understood.
|
||||
# - Strings which make invalid assumptions about notation of date, time or
|
||||
# money.
|
||||
# - Pluralisation problems.
|
||||
# - Incorrect English spelling.
|
||||
# - Incorrect formatting.
|
||||
# It can be your email address, or a mailing list address where translators
|
||||
# can write to without being subscribed, or the URL of a web page through
|
||||
# which the translators can contact you.
|
||||
MSGID_BUGS_ADDRESS = https://gitlab.freedesktop.org/polkit/polkit/-/issues/
|
||||
|
||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||
# message catalogs shall be used. It is usually empty.
|
||||
EXTRA_LOCALE_CATEGORIES =
|
||||
|
||||
# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
|
||||
# context. Possible values are "yes" and "no". Set this to yes if the
|
||||
# package uses functions taking also a message context, like pgettext(), or
|
||||
# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
|
||||
USE_MSGCTXT = yes
|
||||
|
||||
# These options get passed to msgmerge.
|
||||
# Useful options are in particular:
|
||||
# --previous to keep previous msgids of translated messages,
|
||||
# --quiet to reduce the verbosity.
|
||||
MSGMERGE_OPTIONS =
|
||||
|
||||
# These options get passed to msginit.
|
||||
# If you want to disable line wrapping when writing PO files, add
|
||||
# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
|
||||
# MSGINIT_OPTIONS.
|
||||
MSGINIT_OPTIONS =
|
||||
|
||||
# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
|
||||
# has changed. Possible values are "yes" and "no". Set this to no if
|
||||
# the POT file is checked in the repository and the version control
|
||||
# program ignores timestamps.
|
||||
PO_DEPENDS_ON_POT = no
|
||||
|
||||
# This tells whether or not to forcibly update $(DOMAIN).pot and
|
||||
# regenerate PO files on "make dist". Possible values are "yes" and
|
||||
# "no". Set this to no if the POT file and PO files are maintained
|
||||
# externally.
|
||||
DIST_DEPENDS_ON_UPDATE_PO = no
|
||||
@@ -0,0 +1,8 @@
|
||||
# List of source files containing translatable strings.
|
||||
# Please keep this file sorted alphabetically.
|
||||
actions/org.freedesktop.policykit.policy.in
|
||||
src/examples/org.freedesktop.policykit.examples.pkexec.policy.in
|
||||
src/programs/pkaction.c
|
||||
src/programs/pkcheck.c
|
||||
src/programs/pkexec.c
|
||||
src/programs/pkttyagent.c
|
||||
@@ -0,0 +1 @@
|
||||
.pc
|
||||
@@ -0,0 +1,216 @@
|
||||
# Danish translations for PolicyKit.
|
||||
# Copyright (C) 2013 SUSE Linux GmbH
|
||||
# This file is distributed under the same license as the PolicyKit package.
|
||||
#
|
||||
# Tomáš Chvátal <tchvatal@suse.cz>, 2013.
|
||||
# Marek Černocký <marek@manet.cz>, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2023-06-20 15:27+0000\n"
|
||||
"PO-Revision-Date: 2023-08-26 00:16+0200\n"
|
||||
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
|
||||
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Poedit 3.3.2\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Spustit program jako jiný uživatel"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "Pro spuštění programu pod jiným uživatelem je vyžadováno ověření"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Spustit ukázkový program polkit Frobnicate"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Pro spuštění ukázkového programu polkit Frobnicate je vyžadováno ověření "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Pouze vypsat informace o ČINNOSTI"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ČINNOST"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Vypsat podrobné informace o činnosti"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:104
|
||||
msgid "Show version"
|
||||
msgstr "Vypsat verzi"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ČINNOST]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Chyby hlaste na: %s\n"
|
||||
"%s domovská stránka: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:141
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: neočekávaný argument „%s“\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Použití:\n"
|
||||
" pkcheck [VOLBY…]\n"
|
||||
"\n"
|
||||
"Volby nápovědy:\n"
|
||||
" -h, --help Zobrazit nápovědu k volbám\n"
|
||||
"\n"
|
||||
"Volby aplikace:\n"
|
||||
" -a, --action-id=ČINNOST Zkontrolovat oprávnění pro vykonání "
|
||||
"ČINNOSTI\n"
|
||||
" -u, --allow-user-interaction Povolit interakci s uživatelem, pokud "
|
||||
"je potřeba\n"
|
||||
" -d, --details=KLÍČ HODNOTA Přidat (KLÍČ, HODNOTA) do informací o "
|
||||
"činnosti\n"
|
||||
" --enable-internal-agent Použít interního ověřovacího agenta, "
|
||||
"pokud je potřeba\n"
|
||||
" --list-temp Vypsat dočasná oprávnění pro aktuální "
|
||||
"sezení\n"
|
||||
" -p, --process=PID[,ČAS_SPUŠTĚNÍ] Zkontrolovat oprávnění vybraného "
|
||||
"procesu\n"
|
||||
" --revoke-temp Zrušit všechna dočasná oprávnění pro "
|
||||
"aktuální sezení\n"
|
||||
" -s, --system-bus-name=NÁZEV_SBĚRNICE\n"
|
||||
" Zkontrolovat oprávnění vlastníka "
|
||||
"sběrnice NÁZEV_SBĚRNICE\n"
|
||||
" --version Vypsat verzi\n"
|
||||
"\n"
|
||||
"Chyby hlaste na: %s\n"
|
||||
"%s domovská stránka: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: po „%s“ je očekáván argument\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: neplatná hodnota „%s“ pro „--process“\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail, -d'\n"
|
||||
msgstr "%s: po „--detail, -d“ jsou očekávány dva argumenty\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: není určen předmět\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:821
|
||||
msgid "Authentication is needed to run `$(cmdline_short)' as the super user"
|
||||
msgstr ""
|
||||
"Pro spuštění „$(cmdline_short)“ pod účtem správce je vyžadováno ověření"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:831
|
||||
msgid ""
|
||||
"Authentication is needed to run `$(cmdline_short)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Pro spuštění „$(cmdline_short)“ pod uživatelem $(user.display) je vyžadováno "
|
||||
"ověření"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Nenahrazovat již bežícího agenta"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Uzavřít FD při registraci agenta"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: src/programs/pkttyagent.c:95
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registrovat agenta pro určený proces"
|
||||
|
||||
#: src/programs/pkttyagent.c:96
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,ČAS_SPUŠTĚNÍ]"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Registrovat agenta pro vlastníka sběrnice NÁZEV_SBĚRNICE"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "BUS_NAME"
|
||||
msgstr "NÁZEV_SBĚRNICE"
|
||||
|
||||
#: src/programs/pkttyagent.c:155
|
||||
#, c-format
|
||||
msgid "%s: Options --process and --system-bus-name are mutually exclusive\n"
|
||||
msgstr "%s: Volby --process a --system-bus-name se vzájemně vylučují\n"
|
||||
|
||||
#: src/programs/pkttyagent.c:179
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: neplatný identifikátor procesu „%s“\n"
|
||||
@@ -0,0 +1,204 @@
|
||||
# Danish translations for PolicyKit.
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# David Zeuthen <davidz@redhat.com>, 2009.
|
||||
# scootergrisen, 2019.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2011-03-03 13:03-0500\n"
|
||||
"PO-Revision-Date: 2019-02-04 21:06+0200\n"
|
||||
"Last-Translator: scootergrisen\n"
|
||||
"Language-Team: Danish\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Kør et program som en anden bruger"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "Der kræves autentifikation for at køre et program som en anden bruger"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Kør polkits Frobnicate-eksempelprogram"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Der kræves autentifikation for at køre polkits Frobnicate-eksempelprogram "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Output kun information om HANDLING"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "HANDLING"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Output detaljeret handlingsinformation"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:62
|
||||
msgid "Show version"
|
||||
msgstr "Vis version"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id HANDLING]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:83
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Rapportér fejl til: %s\n"
|
||||
"%s hjemmeside: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:97
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Uventet argument `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Anvendelse:\n"
|
||||
" pkcheck [TILVALG...]\n"
|
||||
"\n"
|
||||
"Tilvalg for hjælp:\n"
|
||||
" -h, --help Vis tilvalg for hjælp\n"
|
||||
"\n"
|
||||
"Tilvalg for program:\n"
|
||||
" -a, --action-id=HANDLING Tjek autorisation til at udføre "
|
||||
"HANDLING\n"
|
||||
" -u, --allow-user-interaction Interager med brugeren, hvis det er "
|
||||
"nødvendigt\n"
|
||||
" -d, --details=NØGLE VÆRDI Tilføj (NØGLE, VÆRDI) til information "
|
||||
"om handlingen\n"
|
||||
" --enable-internal-agent Brug en intern autentifikationsagent, "
|
||||
"hvis det er nødvendigt\n"
|
||||
" --list-temp Oplist midlertidige autorisationer for "
|
||||
"den nuværende session\n"
|
||||
" -p, --process=PID[,STARTTID,UID] Tjek autorisation af den angive proces\n"
|
||||
" --revoke-temp Tilbagekald alle midlertidige "
|
||||
"autorisationer for den nuværende session\n"
|
||||
" -s, --system-bus-name=BUSNAVN Tjek autorisation for ejeren af BUSNAVN\n"
|
||||
" --version Vis version\n"
|
||||
"\n"
|
||||
"Rapportér fejl til: %s\n"
|
||||
"%s hjemmeside: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Argument ventet efter `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Ugyldig --process-værdi `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: To argumenter ventet after `--detail'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Emne ikke angivet\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr "Der kræves autentifikation for at køre `$(program)' som superbrugeren"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Der kræves autentifikation for at køre `$(program)' som brugeren "
|
||||
"$(user.display)"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:45
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Erstat ikke den eksisterende agent hvis der er en"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Luk FD når agenten registreres"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registrer agenten for den angivne proces"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:54
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,STARTTID]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Registrer agenten for ejeren af BUSNAVN"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUSNAVN"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:129
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Ugyldig procesangiver `%s'\n"
|
||||
@@ -0,0 +1,221 @@
|
||||
# German translation for polkit.
|
||||
# Copyright (C) 2015 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Christian Kirbach <Christian.Kirbach@gmail.com>, 2015.
|
||||
# Wolfgang Stöggl <c72578@yahoo.de>, 2015.
|
||||
# Jürgen Benvenuti <gastornis@posteo.org>, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2023-09-12 15:27+0000\n"
|
||||
"PO-Revision-Date: 2023-09-12 19:52+0200\n"
|
||||
"Last-Translator: Jürgen Benvenuti <gastornis@posteo.org>\n"
|
||||
"Language-Team: German <gnome-de@gnome.org>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.3.1\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Ein Programm als ein anderer Benutzer ausführen"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Legitimierung ist erforderlich, um ein Programm als ein anderer Benutzer "
|
||||
"auszuführen"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Das polkit-Beispielprogramm Frobnicate ausführen"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Legitimierung ist erforderlich, um das polkit-Beispielprogramm Frobnicate "
|
||||
"auszuführen (user=$(user), user.gecos=$(user.gecos), user.display=$(user."
|
||||
"display), program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Nur Informationen zu AKTION ausgeben"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "AKTION"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Detaillierte Aktions-Informationen ausgeben"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:104
|
||||
msgid "Show version"
|
||||
msgstr "Version anzeigen"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id AKTION]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Fehler melden an: %s\n"
|
||||
"%s Homepage: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:141
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Unerwartetes Argument »%s«\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Aufruf:\n"
|
||||
" pkcheck [OPTION …]\n"
|
||||
"\n"
|
||||
"Hilfeoptionen:\n"
|
||||
" -h, --help Hilfeoptionen anzeigen\n"
|
||||
"\n"
|
||||
"Programmoptionen:\n"
|
||||
" -a, --action-id=ACTION Legitimierung prüfen, um AKTION "
|
||||
"durchzuführen\n"
|
||||
" -u, --allow-user-interaction Interaktion mit Benutzer, falls "
|
||||
"erforderlich\n"
|
||||
" -d, --details=KEY VALUE (KEY, VALUE) zur Information über die "
|
||||
"Aktion hinzufügen\n"
|
||||
" --enable-internal-agent Internen Legitimierungsagenten "
|
||||
"verwenden, falls erforderlich\n"
|
||||
" --list-temp Temporäre Legitimierungen für die "
|
||||
"aktuelle Sitzung auflisten\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Legitimierung des angegebenen Prozesses "
|
||||
"prüfen\n"
|
||||
" --revoke-temp Alle temporären Legitimierungen der "
|
||||
"aktuellen Sitzung aufheben\n"
|
||||
" -s, --system-bus-name=BUS_NAME Legitimierung des Eigentümers von "
|
||||
"BUS_NAME prüfen\n"
|
||||
" --version Version anzeigen\n"
|
||||
"\n"
|
||||
"Fehler melden an: %s\n"
|
||||
"%s Homepage: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Argument erwartet nach »%s«\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Ungültiger Wert »%s« für »--process«\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail, -d'\n"
|
||||
msgstr "%s: Es werden zwei Argumente nach »--detail, -d« erwartet\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Betreff nicht angegeben\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:822
|
||||
msgid "Authentication is needed to run `$(cmdline_short)' as the super user"
|
||||
msgstr ""
|
||||
"Legitimierung ist erforderlich, um »$(cmdline_short)« als Superuser "
|
||||
"auszuführen"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:832
|
||||
msgid ""
|
||||
"Authentication is needed to run `$(cmdline_short)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Legitimierung ist erforderlich, um »$(cmdline_short)« als Benutzer $(user."
|
||||
"display) auszuführen"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Vorhandenen Agenten nicht ersetzen"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Dateideskriptor (FD) schließen, sobald der Agent registriert ist"
|
||||
|
||||
# file descriptor
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: src/programs/pkttyagent.c:95
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Agenten des angegebenen Prozesses registrieren"
|
||||
|
||||
#: src/programs/pkttyagent.c:96
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,STARTZEIT]"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Den Agenten für den Besitzer von BUS_NAME registrieren"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUS_NAME"
|
||||
|
||||
#: src/programs/pkttyagent.c:155
|
||||
#, c-format
|
||||
msgid "%s: Options --process and --system-bus-name are mutually exclusive\n"
|
||||
msgstr ""
|
||||
"%s: Die Optionen »--process« und »--system-bus-name« schließen sich "
|
||||
"gegenseitig aus\n"
|
||||
|
||||
#: src/programs/pkttyagent.c:179
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Ungültige Prozessangabe »%s«\n"
|
||||
@@ -0,0 +1,204 @@
|
||||
# Croatian translation for polkit.
|
||||
# Copyright (C) 2017 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
|
||||
"product=PolicyKit&keywords=I18N+L10N&component=libpolkit\n"
|
||||
"POT-Creation-Date: 2017-04-23 15:27+0000\n"
|
||||
"PO-Revision-Date: 2017-04-23 19:27+0200\n"
|
||||
"Language-Team: Croatian <hr@li.org>\n"
|
||||
"Language: hr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
|
||||
"X-Generator: Poedit 1.8.7.1\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Pokreni programe kao drugi korisnik"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "Potrebna je ovjera za pokretanje programa kao drugog korisnika"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Pokreni primjer PolicyKit programa Frobnicate"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Potrebna je ovjera za pokretanje PolicyKit programa Frobnicate (user="
|
||||
"$(korisnik), program=$(program), command_line=$(naredbeni_redak))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Samo izlazne informacije o RADNJAMA"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "RADNJA"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Opširnije izlazne informacije radnje"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:62
|
||||
msgid "Show version"
|
||||
msgstr "Prikaži inačicu"
|
||||
|
||||
#: ../src/programs/pkaction.c:134
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id RADNJA]"
|
||||
|
||||
#: ../src/programs/pkaction.c:135 ../src/programs/pkttyagent.c:85
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Prijavite greške na: %s\n"
|
||||
"%s početna stranica: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:149 ../src/programs/pkcheck.c:495
|
||||
#: ../src/programs/pkttyagent.c:99
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Neočekivani argument '%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Upotreba:\n"
|
||||
" pkcheck [MOGUĆNOST...]\n"
|
||||
"\n"
|
||||
"Mogućnosti pomoći:\n"
|
||||
" -h, --help Prikaži mogućnosti pomoći\n"
|
||||
"\n"
|
||||
"Mogućnosti aplikacije:\n"
|
||||
" -a, --action-id=RADNJA Provjeri ovjeru za pokretanje RADNJE\n"
|
||||
" -u, --allow-user-interaction Djeluj s korisnikom ako je potrebno\n"
|
||||
" -d, --details=KLJUČ VRIJEDNOST Dodaj (KLJUČ, VRIJEDNOST) u "
|
||||
"informaciju o radnji\n"
|
||||
" --enable-internal-agent Koristi unutrašnjeg agenta ovjere ako "
|
||||
"je potrebno\n"
|
||||
" --list-temp Prikaži privremena ovlaštenja za "
|
||||
"trenutnu sesiju\n"
|
||||
" -p, --process=PID[,POČETNO_VRIJEME,UID] Provjeri ovlaštenja za određeni "
|
||||
"proces\n"
|
||||
" --revoke-temp Opozovi sva privremena ovlaštenja za "
|
||||
"trenutnu sesiju\n"
|
||||
" -s, --system-bus-name=BUS_NAZIV Provjeri ovlaštenja vlasnika od "
|
||||
"BUS_NAZIVA\n"
|
||||
" --version Prikaži inačicu\n"
|
||||
"\n"
|
||||
"Prijavi greške na: %s\n"
|
||||
"%s početna stranica: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:395 ../src/programs/pkcheck.c:428
|
||||
#: ../src/programs/pkcheck.c:440
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Očekivani argument nakon `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:418
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Neispravna --process vrijednost `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:455 ../src/programs/pkcheck.c:464
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Dva argumenta su očekivana nakon `--detail'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:525
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Subjekt nije određen\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:797
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr "Potrebna je ovjera za pokretanje `$(program)' kao super korisnika"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:807
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Potrebna je ovjera za pokretanje `$(program)' kao korisnika $(user.display)"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:45
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Ne zamjenjuj postojećeg agenta ako postoji"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Zatvori FD kada je agent registriran"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registriraj agenta za određeni proces"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:54
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,POČETNO_VRIJEME]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "Register the agent owner of BUS_NAME"
|
||||
msgstr "Registriraj vlasnika agenta BUS_NAZIVA"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUS_NAZIV"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:131
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Neispravan razvrstač procesa `%s'\n"
|
||||
@@ -0,0 +1,214 @@
|
||||
# Hungarian translation for polkit.
|
||||
# Copyright (C) 2016, 2021. Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
#
|
||||
# Gabor Kelemen <kelemeng at ubuntu dot com>, 2016.
|
||||
# Balázs Úr <ur.balazs at fsf dot hu>, 2021.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2020-05-26 15:36+0000\n"
|
||||
"PO-Revision-Date: 2021-03-18 01:19+0100\n"
|
||||
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
|
||||
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Lokalize 19.12.3\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Program futtatása másik felhasználóként"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "Hitelesítés szükséges a program futtatásához másik felhasználóként"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Frobnicate polkit példaprogram futtatása"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges a Frobnicate polkit példaprogram futtatásához (user="
|
||||
"$(user), user.gecos=$(user.gecos), user.display=$(user.display), program="
|
||||
"$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Csak a MŰVELETRŐL írjon ki információkat"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "MŰVELET"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Részletes műveletinformációk megjelenítése"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:95
|
||||
msgid "Show version"
|
||||
msgstr "Verziószám megjelenítése"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id MŰVELET]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:118
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"A hibák itt jelenthetők: %s\n"
|
||||
"A %s honlapja: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:132
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: váratlan argumentum: „%s”\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Használat:\n"
|
||||
" pkcheck [KAPCSOLÓ…]\n"
|
||||
"\n"
|
||||
"Súgó kapcsolói:\n"
|
||||
" -h, --help Súgókapcsolók megjelenítése\n"
|
||||
"\n"
|
||||
"Alkalmazás kapcsolói:\n"
|
||||
" -a, --action-id=MŰVELET A MŰVELET elvégzésére való "
|
||||
"felhatalmazás\n"
|
||||
" ellenőrzése\n"
|
||||
" -u, --allow-user-interaction Felhasználóval való párbeszéd\n"
|
||||
" engedélyezése, ha szükséges\n"
|
||||
" -d, --details=KULCS ÉRTÉK A (KULCS, ÉRTÉK) hozzáadása a "
|
||||
"művelettel\n"
|
||||
" kapcsolatos információkhoz\n"
|
||||
" --enable-internal-agent Belső hitelesítési ügynök használata, "
|
||||
"ha\n"
|
||||
" szükséges\n"
|
||||
" --list-temp Ideiglenes felhatalmazások felsorolása "
|
||||
"az\n"
|
||||
" aktuális munkamenethez\n"
|
||||
" -p, --process=PID[,INDÍTÁSI_IDŐ,UID] A megadott folyamat "
|
||||
"felhatalmazásának\n"
|
||||
" ellenőrzése\n"
|
||||
" --revoke-temp Minden ideiglenes felhatalmazás "
|
||||
"visszavonása\n"
|
||||
" az aktuális munkamenetből\n"
|
||||
" -s, --system-bus-name=BUSZNÉV A BUSZNÉV tulajdonosának "
|
||||
"felhatalmazásának\n"
|
||||
" ellenőrzése\n"
|
||||
" --version Verziószám kiírása\n"
|
||||
"\n"
|
||||
"A hibák itt jelenthetők: %s\n"
|
||||
"A %s honlapja: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: argumentum szükséges a következő után: „%s”\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Érvénytelen --process érték: „%s”\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Két argumentum szükséges a „--detail” után\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Nincs megadva az alany\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr "Hitelesítés szükséges a(z) „$(program)” futtatásához rendszergazdaként"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges a(z) „$(program)” futtatásához $(user.display) "
|
||||
"felhasználóként"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:78
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Ne cserélje a meglévő ügynököt, ha van"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Fájlleíró lezárása az ügynök regisztrálásakor"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:86
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Az ügynök regisztrálása a megadott folyamathoz"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:87
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,INDÍTÁSI_IDŐ]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Az ügynök regisztrálása a BUSZNÉV tulajdonosánál"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUSZNÉV"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:164
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Érvénytelen folyamatmegadás: „%s”\n"
|
||||
@@ -0,0 +1,204 @@
|
||||
# Indonesian translation for polkit.
|
||||
# Copyright (C) 2016 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Lorenz Adam Damara <lorenzadam@resolution-consulting.co.id>, 2016.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2020-03-22 03:56+0000\n"
|
||||
"PO-Revision-Date: 2020-03-31 20:21+0700\n"
|
||||
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
|
||||
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
|
||||
"Language: id\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Jalankan program sebagai pengguna lain"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "Otentikasi diperlukan untuk menjalankan program sebagai pengguna lain"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Jalankan contoh program polkit Frobnicate"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Otentikasi dibutuhkan untuk menjalankan contoh program Frobnicate (user="
|
||||
"$(user), user.gecos=$(user.gecos), user.display=$(user.display), program="
|
||||
"$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Hanya informasi keluaran tentang AKSI"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ACTION"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Informasi detil aksi keluaran"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:95
|
||||
msgid "Show version"
|
||||
msgstr "Tampilkan versi"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ACTION]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:118
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Laporkan kutu ke: %s\n"
|
||||
"halaman beranda %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:132
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: argumen yang tak terduga `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Penggunaan:\n"
|
||||
" pkcheck [PILIHAN...]\n"
|
||||
"\n"
|
||||
"Bantuan Pilihan:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"Pilihan Aplikasi:\n"
|
||||
"-a, --action-id=ACTION Periksa otorisasi untuk melakukan ACTION\n"
|
||||
" -u, --allow-user-interaction Berkomunikasi dengan pengguna jika "
|
||||
"dibutuhkan\n"
|
||||
" -d, --details=KEY VALUE Tambahkan (KEY, VALUE) untuk informasi "
|
||||
"mengenai aksi\n"
|
||||
" --enable-internal-agent Gunakan otentikasi agen internal jika "
|
||||
"dibutuhkan\n"
|
||||
" --list-temp Daftar otorisasi sementara untuk sesi "
|
||||
"ini\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Periksa otorisasi untuk proses yang "
|
||||
"spesifik\n"
|
||||
" --revoke-temp Cabut semua otorisasi sementara untuk "
|
||||
"sesi saat ini\n"
|
||||
" -s, --system-bus-name=BUS_NAME Periksa otorisasi bagi pemilik "
|
||||
"BUS_NAME\n"
|
||||
" --version Tampilkan versi\n"
|
||||
"\n"
|
||||
"Laporkan kutu ke: %s\n"
|
||||
"halaman beranda %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Argumen diharapkan setelah `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: kesalahan nilai --process `%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Dua argumen diharapkan setelah `--detail'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Subyek tidak dispesifikasikan\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr ""
|
||||
"Otentikasi dibutuhkan untuk menjalankan `$(program)' sebagai super user"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Otentikasi dibutuhkan untuk menjalankan `$(program)' sebagai pengguna $(user."
|
||||
"display)"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:78
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Jangan ganti agen yang sudah ada"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Tutup FD ketika agen sudah terdaftar"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:86
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Daftarkan agen untuk proses yang spesifik"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:87
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID,[,START_TIME]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Daftarkan agen bagi pemilik BUS_NAME"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUS_NAME"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:164
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Kesalahan spesifikasi proses `%s'\n"
|
||||
@@ -0,0 +1,212 @@
|
||||
# Italian translation for polkit.
|
||||
# Copyright (C) 2018 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Milo Casagrande <milo@milo.name>, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2018-09-11 03:25+0000\n"
|
||||
"PO-Revision-Date: 2018-09-11 11:51+0200\n"
|
||||
"Language-Team: Italian <gnome-it-list@gnome.org>\n"
|
||||
"Language: it\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
|
||||
"X-Generator: Poedit 2.1.1\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Lancia un programma come un altro utente"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"È richiesto autenticarsi per lanciare un programma come un altro utente"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Lancia il programma di esempio Frobnicate"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"È richiesto autenticarsi per lanciare il programma di esempio Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Stampa informazioni solo riguardo all'AZIONE"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "AZIONE"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Stampa informazioni dettagliate dell'azione"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:62
|
||||
msgid "Show version"
|
||||
msgstr "Mostra la versione"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id AZIONE]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:83
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Segnalare problemi a: %s\n"
|
||||
"Sito web di %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:97
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: argomento «%s» non atteso\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Uso:\n"
|
||||
" pkcheck [OPZIONE...]\n"
|
||||
"\n"
|
||||
"Opzioni d'aiuto:\n"
|
||||
" -h, --help Mostra opzioni di aiuto\n"
|
||||
"\n"
|
||||
"Opzioni dell'applicazione:\n"
|
||||
" -a, --action-id=AZIONE Controlla l'autorizzazione per "
|
||||
"eseguire\n"
|
||||
" AZIONE\n"
|
||||
" -u, --allow-user-interaction Interagisce con l'utente, se "
|
||||
"necessario\n"
|
||||
" -d, --details=CHIAVE VALORE Aggiunge (CHIAVE, VALORE) alle "
|
||||
"informazioni\n"
|
||||
" riguardo all'azione\n"
|
||||
" --enable-internal-agent Usa un agente di autenticazione "
|
||||
"interna,\n"
|
||||
" se necessario\n"
|
||||
" --list-temp Elenca autorizzazione temporane per la\n"
|
||||
" sessione corrente\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Controlla l'autorizzazione del "
|
||||
"processo\n"
|
||||
" specificato\n"
|
||||
" --revoke-temp Revoca tutte le autorizzazione "
|
||||
"temporane\n"
|
||||
" per la sessione corrente\n"
|
||||
" -s, --system-bus-name=NOME_BUS Controlla l'autorizzazione per il\n"
|
||||
" proprietario di NOME_BUS\n"
|
||||
" --version Mostra la versione\n"
|
||||
"\n"
|
||||
"Segnalare problemi a: %s\n"
|
||||
"Sito web di %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: atteso un argomento dopo «%s»\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: valore «%s» di --process non valido\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: attesi due argomenti dopo «--detail»\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: oggetto non specificato\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr "È richiesto autenticarsi per lanciare «$(program)» come super utente"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"È richiesto autenticarsi per lanciare «$(program)» come l'utente $(user."
|
||||
"display)"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:45
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Non sostituisce l'agente esistente"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Chiude il FD quando l'agente viene registrato"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registra l'agente per il processo specificato"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:54
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,TEMPO_INIZIO]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Registra l'agente per il proprietario di NOME_BUS"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "BUS_NAME"
|
||||
msgstr "NOME_BUS"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:129
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: indicatore di processo «%s» non valido\n"
|
||||
@@ -0,0 +1,209 @@
|
||||
# Georgian translation of polkit
|
||||
# Copyright (C) 2023 Polkit's authors
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-08-07 21:51+0200\n"
|
||||
"PO-Revision-Date: 2023-08-07 21:55+0200\n"
|
||||
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
||||
"Language-Team: Georgian <(nothing)>\n"
|
||||
"Language: ka\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.3.2\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "პროგრამის სხვა სახელით გაშვება"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "პროგრამის სხვა სახელით გაშვებას ავთენტიკაცია სჭირდება"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "გაუშვით polkit-ის მაგალითი Frobnicate"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Polkit მაგალითის პროგრამის Frobnicate-ის გასაშვებად საჭიროა ავტორიზაცია "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "ინფორმაციის მხოლოდ ACTION-ის შესახებ გამოტანა"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "[ქმედება]"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "ქმედების დეტალური ინფორმაციის გამოტანა"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:104
|
||||
msgid "Show version"
|
||||
msgstr "ვერსიის ჩვენება"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ACTION]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"შეცდომებზე მისწერეთ: %s\n"
|
||||
"%s ვებგვერდი: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:141
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: მოულოდნელი არგუმენტი `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"გამოყენება:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"დახმარების პარამეტრები:\n"
|
||||
" -h, --help დახმარების პარამეტრების ჩვენება\n"
|
||||
"\n"
|
||||
"განაცხადის პარამეტრები:\n"
|
||||
" -a, --action-id=ACTION ACTION-ის შესასრულებლად ავტორიზაციის შემოწმება \n"
|
||||
" -u, --allow-user-interaction საჭიროების შემთხვევაში მომხმარებელთან "
|
||||
"ურთერთობა\n"
|
||||
" -d, --details=KEY VALUE ქმედების შესახებ ინფორმაციისთვის (KEY, VALUE) "
|
||||
"დამატება\n"
|
||||
" --enable-internal-agent საჭიროების შემთხვევაში შიდა ავთენტიფიკაციის "
|
||||
"აგენტის გამოყენება\n"
|
||||
" --list-temp მიმდინარე სესიისთვის დროებითი ავტორიზაციების სია \n"
|
||||
" -p, --process=PID[,START_TIME,UID] მითითებული პროცესის ავტორიზაციის "
|
||||
"შემოწმება\n"
|
||||
" --revoke-temp მიმდინარე სესიისთვის ყველა დროებითი ავტორიზაციის გაუქმება \n"
|
||||
" -s, --system-bus-name=BUS_NAME BUS_NAME-ის მფლობელის ავტორიზაციის "
|
||||
"შემოწმება\n"
|
||||
" --version ვერსიის ჩვენება\n"
|
||||
"\n"
|
||||
"შეატყობინეთ შეცდომების შესახებ: %s\n"
|
||||
"%s მთავარი გვერდი: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: `%s'-ის შემდეგ მოველოდი არგუმენტს\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: --process -ის არასწორი მნიშვნელობა `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail, -d'\n"
|
||||
msgstr "%s: `--detail'-ის და '-d-ის შემდეგ საჭიროა ორი არგუმენტის მითითება\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: თემა მითითებული არაა\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:821
|
||||
msgid "Authentication is needed to run `$(cmdline_short)' as the super user"
|
||||
msgstr "'$(cmdlne_short)'-ის ზემომხმარებლით გაშვებას ავთენტიკაცია სჭირდება"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:831
|
||||
msgid ""
|
||||
"Authentication is needed to run `$(cmdline_short)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"'$(cmdlne_short)'-ის მომხმარებლით '$(user.display)' გაშვებას ავთენტიკაცია "
|
||||
"სჭირდება"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "თუ აგენტი არსებობს, ის არ ჩანაცვლდება"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "FD-ის დახურვა აგენტის რეგისტრაციის შემდეგ"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: src/programs/pkttyagent.c:95
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "აგენტის რეგისტრაცია მითითებული პროცესისთვის"
|
||||
|
||||
#: src/programs/pkttyagent.c:96
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,START_TIME]"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "აგენტის რეგისტრაცია BUS_NAME-ის მფლობელისთვის"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUS_NAME"
|
||||
|
||||
#: src/programs/pkttyagent.c:155
|
||||
#, c-format
|
||||
msgid "%s: Options --process and --system-bus-name are mutually exclusive\n"
|
||||
msgstr "%s: პარამეტრები --process და --system-bus-name ურთიერთგამომრიცხავია\n"
|
||||
|
||||
#: src/programs/pkttyagent.c:179
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: პროცესის არასწორი მიმთითებელი: %s\n"
|
||||
@@ -0,0 +1,5 @@
|
||||
i18n.gettext(
|
||||
pk_api_name,
|
||||
data_dirs: data_dir,
|
||||
preset: 'glib',
|
||||
)
|
||||
@@ -0,0 +1,209 @@
|
||||
# Dutch translation for polkit.
|
||||
# Copyright (C) 2022 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Nathan Follens <nfollens@gnome.org>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2022-03-27 15:28+0000\n"
|
||||
"PO-Revision-Date: 2022-03-27 20:29+0200\n"
|
||||
"Last-Translator: Nathan Follens <nfollens@gnome.org>\n"
|
||||
"Language-Team: Dutch <gnome-nl-list@gnome.org>\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Voer een programma uit als een andere gebruiker"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Authenticatie is vereist om een programma als een andere gebruiker uit te "
|
||||
"voeren"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Polkit-voorbeeldprogramma Frobnicate uitvoeren"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Authenticatie is vereist om het Polkit-voorbeeldprogramma Frobnicate uit te "
|
||||
"voeren (user=$(user), user.gecos=$(user.gecos), user.display=$(user."
|
||||
"display), program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Enkel informatie over ACTIE uitvoeren"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ACTIE"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Gedetailleerde actie-informatie tonen"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:95
|
||||
msgid "Show version"
|
||||
msgstr "Versie tonen"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ACTIE]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:118
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Gelieve problemen te melden aan: %s\n"
|
||||
"%s projectwebsite: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:132
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Onverwachte parameter `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Gebruik:\n"
|
||||
" pkcheck [OPTIE...]\n"
|
||||
"\n"
|
||||
"Hulpopties:\n"
|
||||
" -h, --help Hulpopties tonen\n"
|
||||
"\n"
|
||||
"Toepassingsopties:\n"
|
||||
" -a, --action-id=ACTIE Controleer vereiste autorisatie voor "
|
||||
"ACTIE\n"
|
||||
" -u, --allow-user-interaction Interageer indien nodig met de "
|
||||
"gebruiker\n"
|
||||
" -d, --details=SLEUTEL WAARDE Voeg (SLEUTEL, WAARDE) toe aan "
|
||||
"informatie over de actie\n"
|
||||
" --enable-internal-agent Gebruik indien nodig een interne "
|
||||
"authenticatieagent\n"
|
||||
" --list-temp Lijst tijdelijke autorisaties voor "
|
||||
"huidige sessies op\n"
|
||||
" -p, --process=PID[,BEGINTIJD,UID] Controleer autorisatie van opgegeven "
|
||||
"proces\n"
|
||||
" --revoke-temp Trek alle tijdelijke autorisaties voor "
|
||||
"huidige sessie in\n"
|
||||
" -s, --system-bus-name=BUSNAAM Controleer autorisatie van eigenaar van "
|
||||
"BUSNAAM\n"
|
||||
" --version Versie tonen\n"
|
||||
"\n"
|
||||
"Gelieve problemen te melden aan: %s\n"
|
||||
"%s projectwebsite: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Parameter verwacht na `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Ongeldige --process-waarde `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Twee parameters verwacht na `--detail'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Onderwerp niet opgegeven\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:807
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr ""
|
||||
"Authenticatie is vereist om `$(program)' uit te voeren als de rootgebruiker"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:817
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Authenticatie is vereist om `$(program)' uit te voeren als gebruiker $(user."
|
||||
"display)"
|
||||
|
||||
#: src/programs/pkttyagent.c:78
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Indien er reeds een bestaande agent is, deze niet vervangen"
|
||||
|
||||
#: src/programs/pkttyagent.c:82
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "FD sluiten wanneer de agent geregistreerd is"
|
||||
|
||||
#: src/programs/pkttyagent.c:82
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: src/programs/pkttyagent.c:86
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registreer de agent voor het opgegeven proces"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,BEGINTIJD]"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Registreer de agent voor de eigenaar van BUSNAAM"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUSNAAM"
|
||||
|
||||
#: src/programs/pkttyagent.c:164
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Ongeldige processpecificeerder `%s'\n"
|
||||
@@ -0,0 +1,207 @@
|
||||
# Norwegian Nynorsk translation for polkit.
|
||||
# Copyright (C) 2020 Karl Ove Hufthammer
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Karl Ove Hufthammer <karl@huftis.org>, 2020.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-05-09 18:09+0200\n"
|
||||
"PO-Revision-Date: 2020-05-09 18:42+0200\n"
|
||||
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
|
||||
"Language-Team: Norwegian Nynorsk <l10n-no@lister.huftis.org>\n"
|
||||
"Language: nn\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 20.04.0\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Køyr program som ein annan brukar"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "Krev autentisering for å køyra program som ein annan brukar"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Køyr polkit sitt eksempelprogram Frobnicate"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Krev autentisering for å køyra polkit sitt eksempelprogram Frobnicate (user="
|
||||
"$(user), user.gecos=$(user.gecos), user.display=$(user.display), program="
|
||||
"$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Vis berre informasjon om HANDLING"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "HANDLING"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Vis detaljert handlingsinformasjon"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:95
|
||||
msgid "Show version"
|
||||
msgstr "Vis programversjon"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id HANDLING]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:118
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Meld frå om feil til: %s\n"
|
||||
"Heimesida til %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:132
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Uventa argument «%s»\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"BRUK:\n"
|
||||
" pkcheck [VAL …]\n"
|
||||
"\n"
|
||||
"Hjelpeval:\n"
|
||||
" -h, --help Vis argumentoversikt\n"
|
||||
"\n"
|
||||
"Programval:\n"
|
||||
" -a, --action-id=HANDLING Kontroller godkjenning for utføring av "
|
||||
"HANDLING\n"
|
||||
" -u, --allow-user-interaction Samhandla om nødvendig med brukaren\n"
|
||||
" -d, --details=NØKKEL VERDI Legg (NØKKEL, VERDI) til informasjon om "
|
||||
"handlinga\n"
|
||||
" --enable-internal-agent Bruk om nødvendig intern autentiserings"
|
||||
"agent\n"
|
||||
" --list-temp Vis oversikt over mellombelse "
|
||||
"godkjenningar for gjeldande økt\n"
|
||||
" -p, --process=PID[,STARTTID,UID] Kontroller godkjenning til vald "
|
||||
"prosess\n"
|
||||
" --revoke-temp Kall tilbake alle mellombelse "
|
||||
"godkjenningar for gjeldande økt\n"
|
||||
" -s, --system-bus-name=BUSSNAMN Kontroller godkjenning til eigaren av "
|
||||
"BUSSNAMN\n"
|
||||
" --version Vis programversjon\n"
|
||||
"\n"
|
||||
"Meld frå om feil til: %s\n"
|
||||
"Heimesida til %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Venta argument etter «%s»\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Ugyldig verdi til «--process»: «%s»\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Venta to argument etter «--detail»\n"
|
||||
|
||||
# subject = prosess (program)
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Prosess må oppgjevast\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr "Krev autentisering for å køyra «$(program)» som rotbrukar"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Krev autentisering for å køyra «$(program)» som brukaren $(user.display)"
|
||||
|
||||
# skip-rule: eksistera
|
||||
#: ../src/programs/pkttyagent.c:78
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Ikkje erstatt eventuell eksisterande agent"
|
||||
|
||||
# FD = fildeskriptor
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Lukk FD når agenten er registrert"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:86
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registrer agenten for den valde prosessen"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:87
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,STARTTID]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Registrer agenten for eigaren til BUSSNAMN"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUSSNAMN"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:164
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Ugyldig prosess-spesifikasjon «%s»\n"
|
||||
@@ -0,0 +1,215 @@
|
||||
# Polish translation for polkit.
|
||||
# Copyright © 2010-2018, 2023 the polkit authors.
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Piotr Drąg <piotrdrag@gmail.com>, 2010-2018, 2023.
|
||||
# Aviary.pl <community-poland@mozilla.org>, 2018, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2023-06-20 15:27+0000\n"
|
||||
"PO-Revision-Date: 2023-07-16 12:44+0200\n"
|
||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
||||
"Language-Team: Polish <community-poland@mozilla.org>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Uruchomienie programu jako inny użytkownik"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Wymagane jest uwierzytelnienie, aby uruchomić program jako inny użytkownik"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Uruchomienie przykładowego programu polkit „Frobnicate”"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Wymagane jest uwierzytelnienie, aby uruchomić przykładowy program polkit "
|
||||
"„Frobnicate” (user=$(user), user.gecos=$(user.gecos), user.display=$(user."
|
||||
"display), program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Wyświetla tylko informacje o DZIAŁANIU"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "DZIAŁANIE"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Wyświetla szczegółowe informacje o działaniu"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:104
|
||||
msgid "Show version"
|
||||
msgstr "Wyświetla wersję"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id DZIAŁANIE]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Prosimy zgłaszać błędy na (w języku angielskim): %s\n"
|
||||
"Strona domowa programu %s: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:141
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: nieoczekiwany parametr „%s”\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Użycie:\n"
|
||||
" pkcheck [OPCJA…]\n"
|
||||
"\n"
|
||||
"Opcje pomocy:\n"
|
||||
" -h, --help Wyświetla opcje pomocy\n"
|
||||
"\n"
|
||||
"Opcje programu:\n"
|
||||
" -a, --action-id=DZIAŁANIE Sprawdza upoważnienie do wykonania\n"
|
||||
" DZIAŁANIA\n"
|
||||
" -u, --allow-user-interaction Pyta użytkownika, jeśli trzeba\n"
|
||||
" -d, --details=KLUCZ WARTOŚĆ Dodaje (KLUCZ, WARTOŚĆ) do\n"
|
||||
" informacji o działaniu\n"
|
||||
" --enable-internal-agent Używa wewnętrznego agenta\n"
|
||||
" uwierzytelniania, jeśli trzeba\n"
|
||||
" --list-temp Wyświetla listę tymczasowych\n"
|
||||
" upoważnień dla bieżącej sesji\n"
|
||||
" -p, --process=PID[,CZAS_POCZĄTKOWY,UID] Sprawdza upoważnienie podanego\n"
|
||||
" procesu\n"
|
||||
" --revoke-temp Unieważnia wszystkie tymczasowe\n"
|
||||
" upoważnienia dla bieżącej sesji\n"
|
||||
" -s, --system-bus-name=NAZWA_MAGISTRALI Sprawdza upoważnienie właściciela\n"
|
||||
" NAZWY_MAGISTRALI\n"
|
||||
" --version Wyświetla wersję\n"
|
||||
"\n"
|
||||
"Prosimy zgłaszać błędy na (w języku angielskim): %s\n"
|
||||
"Strona domowa programu %s: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: oczekiwano parametru po opcji „%s”\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: nieprawidłowa wartość „%s” opcji --process\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail, -d'\n"
|
||||
msgstr "%s: oczekiwano dwóch parametrów po opcji „--detail, -d”\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: nie podano tematu\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:821
|
||||
msgid "Authentication is needed to run `$(cmdline_short)' as the super user"
|
||||
msgstr ""
|
||||
"Wymagane jest uwierzytelnienie, aby uruchomić program „$(cmdline_short)” "
|
||||
"jako superużytkownik"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:831
|
||||
msgid ""
|
||||
"Authentication is needed to run `$(cmdline_short)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Wymagane jest uwierzytelnienie, aby uruchomić program „$(cmdline_short)” "
|
||||
"jako użytkownik $(user.display)"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Bez zastępowania istniejących agentów, jeśli jakieś są"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Zamyka deskryptor pliku po zarejestrowaniu agenta"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "FD"
|
||||
msgstr "DP"
|
||||
|
||||
#: src/programs/pkttyagent.c:95
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Rejestruje agenta dla podanego procesu"
|
||||
|
||||
#: src/programs/pkttyagent.c:96
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,CZAS_POCZĄTKOWY]"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Rejestruje agenta dla właściciela NAZWY_MAGISTRALI"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "BUS_NAME"
|
||||
msgstr "NAZWA_MAGISTRALI"
|
||||
|
||||
#: src/programs/pkttyagent.c:155
|
||||
#, c-format
|
||||
msgid "%s: Options --process and --system-bus-name are mutually exclusive\n"
|
||||
msgstr "%s: opcje --process i --system-bus-name wzajemnie się wykluczają\n"
|
||||
|
||||
#: src/programs/pkttyagent.c:179
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: nieprawidłowe określenie procesu „%s”\n"
|
||||
@@ -0,0 +1,209 @@
|
||||
# Portuguese translation for polkit.
|
||||
# Copyright © 2010-2018 the polkit authors.
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2018-08-20 21:47+0000\n"
|
||||
"PO-Revision-Date: 2021-06-12 16:37+0100\n"
|
||||
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
|
||||
"Language-Team: Portuguese (https://l10n.gnome.org/teams/pt/)\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Executa um programa como outro utilizador"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar um programa como outro utilizador"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Executa Frobnicate, o programa exemplo do polkit"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar o exemplo de programa do polkit "
|
||||
"Frobnicate (user=$(user), user.gecos=$(user.gecos), user.display=$(user."
|
||||
"display), program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Apresenta apenas informação sobre AÇÃO"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "AÇÃO"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Apresenta informação detalhada da ação"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:62
|
||||
msgid "Show version"
|
||||
msgstr "Mostra a versão"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id AÇÃO]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:83
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Relate erros para: %s\n"
|
||||
"Página web do %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:97
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Argumento inesperado '%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Utilização:\n"
|
||||
" pkcheck [OPÇÃO...]\n"
|
||||
"\n"
|
||||
"Opções de ajuda:\n"
|
||||
" -h, --help Mostra as opções de ajuda\n"
|
||||
"\n"
|
||||
"Opções da aplicação:\n"
|
||||
" -a, --action-id=AÇÃO Verifica autorização para realizar "
|
||||
"AÇÃO\n"
|
||||
" -u, --allow-user-interaction Interage com o utilizador, se "
|
||||
"necessário\n"
|
||||
" -d, --details=CHAVE VALOR Adiciona (CHAVE, VALOR) à informação\n"
|
||||
" sobre a ação\n"
|
||||
" --enable-internal-agent Usa um agente de autenticação interno,\n"
|
||||
" se necessário\n"
|
||||
" --list-temp Lista autorizações temporárias para a\n"
|
||||
" sessão atual\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Verifica autorização do processo\n"
|
||||
" especificado\n"
|
||||
" --revoke-temp Revoga todas as autorizações\n"
|
||||
" temporárias para sessão atual\n"
|
||||
" -s, --system-bus-name=BARRAMENTO Verifica a autorização do proprietário "
|
||||
"do\n"
|
||||
" BARRAMENTO\n"
|
||||
" --version Mostra a versão\n"
|
||||
"\n"
|
||||
"Relate erros para: %s\n"
|
||||
"Página web do %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Esperava argumento após '%s'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Valor '%s' inválido de --process\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Dois argumentos esperados após '--detail'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Sujeito não especificado\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar `$(program)' como o superutilizador"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar `$(program)' como o utilizador "
|
||||
"$(user.display)"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:45
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Não substitui o agente existente, seu houver"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Fecha o descritor de ficheiro FD quando o agente é registado"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Regista o agente para o processo especificado"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:54
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,HORÁRIO_INÍCIO]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Regista o agente para o proprietário do BARRAMENTO"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BARRAMENTO"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:129
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Especificador do processo '%s' inválido\n"
|
||||
@@ -0,0 +1,206 @@
|
||||
# Brazilian Portuguese translation for polkit.
|
||||
# Copyright (C) 2018 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Rafael Fontenelle <rafaelff@gnome.org>, 2015, 2018.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2018-08-20 21:47+0000\n"
|
||||
"PO-Revision-Date: 2018-09-02 22:46-0200\n"
|
||||
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
|
||||
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
|
||||
"Language: pt_BR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Virtaal 1.0.0-beta1\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Executa um programa como outro usuário"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar um programa como outro usuário"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Executa Frobnicate, o programa exemplo do polkit"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar o exemplo de programa do polkit "
|
||||
"Frobnicate (user=$(user), user.gecos=$(user.gecos), user.display=$(user."
|
||||
"display), program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Exibe apenas informação sobre AÇÃO"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "AÇÃO"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Exibe informação detalhada da ação"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:62
|
||||
msgid "Show version"
|
||||
msgstr "Mostra a versão"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id AÇÃO]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:83
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Relate erros para: %s\n"
|
||||
"Página web do %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:97
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Argumento inesperado \"%s\"\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Uso:\n"
|
||||
" pkcheck [OPÇÃO...]\n"
|
||||
"\n"
|
||||
"Opções de ajuda:\n"
|
||||
" -h, --help Mostra as opções de ajuda\n"
|
||||
"\n"
|
||||
"Opções do aplicativo:\n"
|
||||
" -a, --action-id=AÇÃO Verifica autorização para realizar "
|
||||
"AÇÃO\n"
|
||||
" -u, --allow-user-interaction Interage com o usuário, se necessário\n"
|
||||
" -d, --details=CHAVE VALOR Adiciona (CHAVE, VALOR) à informação\n"
|
||||
" sobre a ação\n"
|
||||
" --enable-internal-agent Usa um agente de autenticação interno,\n"
|
||||
" se necessário\n"
|
||||
" --list-temp Lista autorizações temporárias para a\n"
|
||||
" sessão atual\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Verifica autorização do processo\n"
|
||||
" especificado\n"
|
||||
" --revoke-temp Revoga todas as autorizações\n"
|
||||
" temporárias para sessão atual\n"
|
||||
" -s, --system-bus-name=BARRAMENTO Verifica a autorização do dono do\n"
|
||||
" BARRAMENTO\n"
|
||||
" --version Mostra a versão\n"
|
||||
"\n"
|
||||
"Relate erros para: %s\n"
|
||||
"Página web do %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Esperava argumento após \"%s\"\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Valor \"%s\" inválido de --process\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Dois argumentos esperados após \"--detail\"\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Sujeito não especificado\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar `$(program)' como o superusuário"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"A autenticação é necessária para executar `$(program)' como o usuário "
|
||||
"$(user.display)"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:45
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Não substitui o agente existente, seu houver"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Fecha o descritor de arquivo FD quando o agente é registrado"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registra o agente para o processo especificado"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:54
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,HORÁRIO_INÍCIO]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Registra o agente para o dono do BARRAMENTO"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BARRAMENTO"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:129
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Especificador do processo \"%s\" inválido\n"
|
||||
@@ -0,0 +1,211 @@
|
||||
# Romanian translation for polkit
|
||||
# Copyright (C) 2021 polkit authors
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
#
|
||||
# Sergiu Bivol <sergiu@cip.md>, 2021.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-06-03 22:41+0100\n"
|
||||
"PO-Revision-Date: 2021-06-04 00:15+0100\n"
|
||||
"Last-Translator: Sergiu Bivol <sergiu@cip.md>\n"
|
||||
"Language-Team: Romanian\n"
|
||||
"Language: ro\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 <"
|
||||
" 20)) ? 1 : 2;\n"
|
||||
"X-Generator: Lokalize 19.12.3\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Rulează un program ca alt utilizator"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Este necesară autentificarea pentru a rula un program ca alt utilizator"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Rulează programul polkit exemplificator Frobnicate"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Este necesară autentificarea pentru a rula programul polkit exemplificator"
|
||||
" Frobnicate (user=$(user), user.gecos=$(user.gecos),"
|
||||
" user.display=$(user.display), program=$(program),"
|
||||
" command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Afișează numai informații despre ACȚIUNE"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ACȚIUNE"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Afișează informații detaliate despre acțiune"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:95
|
||||
msgid "Show version"
|
||||
msgstr "Arată versiunea"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ACȚIUNE]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:118
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Raportați defecte la: %s\n"
|
||||
"Pagina %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:132
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Argument neașteptat „%s”\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Utilizare:\n"
|
||||
" pkcheck [OPȚIUNE...]\n"
|
||||
"\n"
|
||||
"Opțiuni pentru ajutor:\n"
|
||||
" -h, --help Arată opțiunile pentru ajutor\n"
|
||||
"\n"
|
||||
"Opțiuni pentru aplicație:\n"
|
||||
" -a, --action-id=ACȚIUNE Verifică autorizarea pentru efectuarea"
|
||||
" ACȚIUNII\n"
|
||||
" -u, --allow-user-interaction Interacționează cu utilizatorul dacă e"
|
||||
" necesar\n"
|
||||
" -d, --details=CHEIE VALOARE Adaugă (CHEIE, VALOARE) la informațiile"
|
||||
" despre acțiune\n"
|
||||
" --enable-internal-agent Folosește un agent de autentificare"
|
||||
" intern dacă e necesar\n"
|
||||
" --list-temp Enumeră autorizările temporare pentru"
|
||||
" sesiunea actuală\n"
|
||||
" -p, --process=PID[,TIMP_PORNIRE,UID] Verifică autorizarea procesului"
|
||||
" specificat\n"
|
||||
" --revoke-temp Revocă toate autorizările temporare din"
|
||||
" sesiunea actuală\n"
|
||||
" -s, --system-bus-name=DENUMIRE_MAGISTRALĂ "
|
||||
" Verifică autorizarea proprietarului"
|
||||
" DENUMIRE_MAGISTRALĂ\n"
|
||||
" --version Arată versiunea\n"
|
||||
"\n"
|
||||
"Raportați defecte la: %s\n"
|
||||
"Pagina %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Argument așteptat după „%s”\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Valoare nevalidă pentru --process „%s”\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Două argumente așteptate după „--detail”\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Subiect nespecificat\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr ""
|
||||
"Este necesară autentificarea pentru a rula „$(program)” ca administrator"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Este necesară autentificarea pentru a rula „$(program)” ca utilizatorul"
|
||||
" $(user.display)"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:78
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Nu înlocui agentul existent dacă există"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Închide descriptorul de fișier la înregistrarea agentului"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "FD"
|
||||
msgstr "DF"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:86
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Înregistrează agentul pentru procesul specificat"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:87
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,TIMP_PORNIRE]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Înregistrează agentul pentru proprietarul DENUMIRE_MAGISTRALĂ"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "BUS_NAME"
|
||||
msgstr "DENUMIRE_MAGISTRALĂ"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:164
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Specificator de proces nevalid „%s”\n"
|
||||
@@ -0,0 +1,217 @@
|
||||
# Russian translation for polkit.
|
||||
# Copyright (C) 2023 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Aleksandr Melman <Alexmelman88@gmail.com>, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2023-11-28 03:27+0000\n"
|
||||
"PO-Revision-Date: 2023-11-28 14:40+0300\n"
|
||||
"Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 3.4.1\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Запуск программы от имени другого пользователя"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Требуется аутентификация для запуска программы от имени другого пользователя"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Запуск программы Frobnicate для примера polkit"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Требуется аутентификация для запуска программы Frobnicate для примера polkit "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Выводить информацию только о действии"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ДЕЙСТВИЕ"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Вывод подробной информации о действии"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:104
|
||||
msgid "Show version"
|
||||
msgstr "Показать версию"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ДЕЙСТВИЕ]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Сообщить об ошибках: %s\n"
|
||||
"%s домашняя страница: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:141
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Неожиданный аргумент `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Использование:\n"
|
||||
" pkcheck [ПАРАМЕТР...]\n"
|
||||
"\n"
|
||||
"Параметры справки:\n"
|
||||
" -h, --help Показать параметры справки\n"
|
||||
"\n"
|
||||
"Параметры приложения:\n"
|
||||
" -a, --action-id=ACTION Проверить авторизацию для выполнения "
|
||||
"действия\n"
|
||||
" -u, --allow-user-interaction Взаимодействовать с пользователем при "
|
||||
"необходимости\n"
|
||||
" -d, --details=KEY VALUE Добавить (ключ, значение) к информации "
|
||||
"о действии\n"
|
||||
" --enable-internal-agent Использовать внутренний агент "
|
||||
"аутентификации при необходимости\n"
|
||||
" --list-temp Список временных авторизаций для "
|
||||
"текущего сеанса\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Проверить авторизацию указанного "
|
||||
"процесса\n"
|
||||
" --revoke-temp Отменить все временные авторизации для "
|
||||
"текущего сеанса\n"
|
||||
" -s, --system-bus-name=BUS_NAME Проверить авторизацию владельца "
|
||||
"имени_шины\n"
|
||||
" --version Показать версию\n"
|
||||
"\n"
|
||||
"Сообщить об ошибках: %s\n"
|
||||
"%s домашняя страница: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Аргумент ожидается после `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Недопустимое значение --process `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail, -d'\n"
|
||||
msgstr "%s: Ожидается два аргумента после `--detail, -d'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Субъект не указан\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:822
|
||||
msgid "Authentication is needed to run `$(cmdline_short)' as the super user"
|
||||
msgstr ""
|
||||
"Необходима аутентификация для запуска `$(cmdline_short)' от имени "
|
||||
"суперпользователя"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:832
|
||||
msgid ""
|
||||
"Authentication is needed to run `$(cmdline_short)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Необходима аутентификация для запуска `$(cmdline_short)' от имени "
|
||||
"пользователя $(user.display)"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Не заменять существующего агента, если таковой имеется"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Закрыть FD, когда агент зарегистрирован"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: src/programs/pkttyagent.c:95
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Зарегистрировать агента для указанного процесса"
|
||||
|
||||
#: src/programs/pkttyagent.c:96
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,ВРЕМЯ_НАЧАЛА]"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Зарегистрировать агента для владельца имени_шины"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "BUS_NAME"
|
||||
msgstr "ИМЯ_ШИНЫ"
|
||||
|
||||
#: src/programs/pkttyagent.c:155
|
||||
#, c-format
|
||||
msgid "%s: Options --process and --system-bus-name are mutually exclusive\n"
|
||||
msgstr ""
|
||||
"%s: Параметры --process и --system-bus-name являются взаимоисключающими\n"
|
||||
|
||||
#: src/programs/pkttyagent.c:179
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Недопустимый спецификатор процесса `%s'\n"
|
||||
@@ -0,0 +1,211 @@
|
||||
# Slovak translation for polkit.
|
||||
# Copyright (C) 2016 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Dušan Kazik <prescott66@gmail.com>, 2016.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
|
||||
"product=PolicyKit&keywords=I18N+L10N&component=libpolkit\n"
|
||||
"POT-Creation-Date: 2016-08-08 02:28+0000\n"
|
||||
"PO-Revision-Date: 2016-08-08 10:49+0200\n"
|
||||
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
|
||||
"Language: sk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
|
||||
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
|
||||
"X-Generator: Poedit 1.8.8\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Spustenie programu ako iný používateľ"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Na spustenie programu ako iný používateľ sa vyžaduje overenie totožnosti"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Spustenie vzorového programu Frobnicate nástroja polkit"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Na spustenie vzorového programu Frobnicate nástroja polkit sa vyžaduje "
|
||||
"overenie totožnosti (user=$(user), user.gecos=$(user.gecos), user.display="
|
||||
"$(user.display), program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Iba výstup informácií o AKCII"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "AKCIA"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Podrobný výstup informácií o AKCII"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:62
|
||||
msgid "Show version"
|
||||
msgstr "Zobrazí verziu"
|
||||
|
||||
#: ../src/programs/pkaction.c:134
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id AKCIA]"
|
||||
|
||||
#: ../src/programs/pkaction.c:135 ../src/programs/pkttyagent.c:85
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Chyby nahláste na: %s\n"
|
||||
"Domovská stránka balíka %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:149 ../src/programs/pkcheck.c:495
|
||||
#: ../src/programs/pkttyagent.c:99
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Neočakávaný parameter „%s“\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Použitie:\n"
|
||||
" pkcheck [VOĽBA...]\n"
|
||||
"\n"
|
||||
"Voľby pomocníka:\n"
|
||||
" -h, --help Zobrazí voľby pomocníka\n"
|
||||
"\n"
|
||||
"Voľby aplikácie:\n"
|
||||
" -a, --action-id=AKCIA Skontroluje overenie totožnosti na "
|
||||
"vykonanie AKCIE\n"
|
||||
" -u, --allow-user-interaction Umožní interakciu s používateľom, ak je "
|
||||
"to potrebné\n"
|
||||
" -d, --details=KĽÚČ HODNOTA Pridá parametre (KĽÚČ, HODNOTA) do "
|
||||
"informácií o akcii\n"
|
||||
" --enable-internal-agent Použije vnútorného agenta overenia "
|
||||
"totožnosti, ak je to potrebné\n"
|
||||
" --list-temp Vypíše dočasné overenia totožností pre "
|
||||
"aktuálnu reláciu\n"
|
||||
" -p, --process=PID[,ČAS_SPUSTENIA,UID] Skontroluje overenie totožnosti "
|
||||
"určeného procesu\n"
|
||||
" --revoke-temp Odvolá všetky dočasné overenia "
|
||||
"totožností pre aktuálnu reláciu\n"
|
||||
" -s, --system-bus-name=NÁZOV_ZBERNICE Skontroluje overenie totožnosti "
|
||||
"vlastníka definovaného premennou NÁZOV_ZBERNICE\n"
|
||||
" --version Zobrazí verziu\n"
|
||||
"\n"
|
||||
"Chyby nahláste na: %s\n"
|
||||
"Domovská stránka balíka %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:395 ../src/programs/pkcheck.c:428
|
||||
#: ../src/programs/pkcheck.c:440
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Očakával sa parameter po voľbe „%s“\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:418
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Neplatný parameter voľby --process value „%s“\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:455 ../src/programs/pkcheck.c:464
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: Očakávali sa dva parametre po voľbe „--detail“\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:525
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Predmet nebol určený\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:797
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr ""
|
||||
"Na spustenie programu „$(program)“ ako superpoužívateľ sa vyžaduje overenie "
|
||||
"totožnosti"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:807
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Na spustenie programu „$(program)“ ako používateľ $(user.display) sa "
|
||||
"vyžaduje overenie totožnosti"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:45
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Nenahradí existujúceho agenta, ak nejaký existuje"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Zavrie FD, keď je agent zaregistrovaný"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Zaregistruje agenta pre určený proces"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:54
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,ČAS_SPUSTENIA]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "Register the agent owner of BUS_NAME"
|
||||
msgstr ""
|
||||
"Zaregistruje agenta pre vlastníka definovaného premennou NÁZOV_ZBERNICE"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "BUS_NAME"
|
||||
msgstr "NÁZOV_ZBERNICE"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:131
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Neplatný určovateľ procesu „%s“\n"
|
||||
@@ -0,0 +1,214 @@
|
||||
# Swedish translation for polkit.
|
||||
# Copyright © 2015-2023 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2019, 2022, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2023-06-20 15:27+0000\n"
|
||||
"PO-Revision-Date: 2023-06-20 21:05+0200\n"
|
||||
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
|
||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Kör ett program som en annan användare"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "Autentisering krävs för att köra ett program som en annan användare"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Kör polkit-exempelprogrammet Frobnicate"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Autentisering krävs för att köra polkit-exempelprogrammet Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Visa endast information om ÅTGÄRD"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ÅTGÄRD"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Visa detaljerad åtgärdsinformation"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:104
|
||||
msgid "Show version"
|
||||
msgstr "Visa version"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ÅTGÄRD]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Rapportera fel till: %s\n"
|
||||
"Webbplats för %s: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:141
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Oväntat argument ”%s”\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Användning:\n"
|
||||
" pkcheck [FLAGGA…]\n"
|
||||
"\n"
|
||||
"Hjälpflaggor:\n"
|
||||
" -h, --help Visa hjälpflaggor\n"
|
||||
"\n"
|
||||
"Programflaggor:\n"
|
||||
" -a, --action-id=ÅTGÄRD Kontrollera auktorisering för att "
|
||||
"utföra ÅTGÄRD\n"
|
||||
" -u, --allow-user-interaction Interagera med användaren om "
|
||||
"nödvändigt\n"
|
||||
" -d, --details=NYCKEL VÄRDE Lägg till (NYCKEL, VÄRDE) till "
|
||||
"information om åtgärden\n"
|
||||
" --enable-internal-agent Använd en intern autentiseringsagent om "
|
||||
"nödvändigt\n"
|
||||
" --list-temp Lista tillfälliga auktoriseringar för "
|
||||
"aktuell session\n"
|
||||
" -p, --process=PID[,STARTTID,UID] Kontrollera auktorisering för angiven "
|
||||
"process\n"
|
||||
" --revoke-temp Återkalla alla tillfälliga "
|
||||
"auktoriseringar för aktuell session\n"
|
||||
" -s, --system-bus-name=BUSSNAMN Kontrollera auktorisering för ägare av "
|
||||
"BUSSNAMN\n"
|
||||
" --version Visa version\n"
|
||||
"\n"
|
||||
"Rapportera fel till: %s\n"
|
||||
"Webbplats för %s: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: Argument förväntades efter ”%s”\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Ogiltigt värde ”%s” för --process\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail, -d'\n"
|
||||
msgstr "%s: Två argument förväntades efter ”--detail, -d”\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Subjekt ej angivet\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:821
|
||||
msgid "Authentication is needed to run `$(cmdline_short)' as the super user"
|
||||
msgstr ""
|
||||
"Autentisering krävs för att köra ”$(cmdline_short)” som superanvändaren"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:831
|
||||
msgid ""
|
||||
"Authentication is needed to run `$(cmdline_short)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Autentisering krävs för att köra ”$(cmdline_short)” som användaren $(user."
|
||||
"display)"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Ersätt inte befintlig agent om sådan finns"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Stäng FD då agenten registrerats"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: src/programs/pkttyagent.c:95
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Registrera agenten för den angivna processen"
|
||||
|
||||
#: src/programs/pkttyagent.c:96
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,STARTTID]"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Registrera agenten för ägaren av BUSSNAMN"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUSSNAMN"
|
||||
|
||||
#: src/programs/pkttyagent.c:155
|
||||
#, c-format
|
||||
msgid "%s: Options --process and --system-bus-name are mutually exclusive\n"
|
||||
msgstr ""
|
||||
"%s: Flaggorna --process och --system-bus-name är ömsesidigt uteslutande\n"
|
||||
|
||||
#: src/programs/pkttyagent.c:179
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Ogiltig processbeskrivare ”%s”\n"
|
||||
@@ -0,0 +1,218 @@
|
||||
# Turkish translation for polkit.
|
||||
# Copyright (C) 2016-2023 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
#
|
||||
# Muhammet Kara <muhammetk@gmail.com>, 2016.
|
||||
# Sabri Ünal <libreajans@gmail.com>, 2019, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2023-08-06 15:27+0000\n"
|
||||
"PO-Revision-Date: 2023-08-07 03:24+0300\n"
|
||||
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
|
||||
"Language-Team: Türkçe <takim@gnome.org.tr>\n"
|
||||
"Language: tr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:12
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Bir programı başka bir kullanıcı olarak çalıştırın"
|
||||
|
||||
#: actions/org.freedesktop.policykit.policy.in:13
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Bir programı başka bir kullanıcı olarak çalıştırmak için kimlik doğrulama "
|
||||
"gerekir"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:10
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "polkit örnek programı Frobnicate'i çalıştırın"
|
||||
|
||||
#: src/examples/org.freedesktop.policykit.examples.pkexec.policy.in:11
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"polkit örnek programı Frobnicate'i çalıştırmak için kimlik doğrulama gerekir "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Sadece EYLEM hakkındaki bilgileri çıktı verin"
|
||||
|
||||
#: src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "EYLEM"
|
||||
|
||||
#: src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Ayrıntılı eylem bilgilerini çıktı verin"
|
||||
|
||||
#: src/programs/pkaction.c:109 src/programs/pkttyagent.c:104
|
||||
msgid "Show version"
|
||||
msgstr "Sürümü göster"
|
||||
|
||||
#: src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id EYLEM]"
|
||||
|
||||
#: src/programs/pkaction.c:133 src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Hataları şuraya bildirin: %s\n"
|
||||
"%s ev sayfası: <%s>"
|
||||
|
||||
#: src/programs/pkaction.c:147 src/programs/pkcheck.c:498
|
||||
#: src/programs/pkttyagent.c:141
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: Beklenmeyen değişken `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Kullanımı:\n"
|
||||
" pkcheck [SEÇENEK...]\n"
|
||||
"\n"
|
||||
"Yardım Seçenekleri:\n"
|
||||
" -h, --help Yardım seçeneklerini göster\n"
|
||||
"\n"
|
||||
"Uygulama seçenekleri:\n"
|
||||
" -a, --action-id=EYLEM EYLEM'i gerçekleştirmek için "
|
||||
"yetkilendirmeyi kontrol et\n"
|
||||
" -u, --allow-user-interaction Eğer gerekliyse kullanıcı ile "
|
||||
"etkileşime gir\n"
|
||||
" -d, --details=ANAHTAR DEĞER (ANAHTAR, DEĞER)'i eylem hakkındaki "
|
||||
"bilgilere ekle\n"
|
||||
" --enable-internal-agent Eğer gerekirse dahili bir kimlik "
|
||||
"doğrulama vekilini kullan\n"
|
||||
" --list-temp Geçerli oturum için geçici "
|
||||
"yetkilendirmeleri listele\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Belirtilen sürecin yetkilendirmesini "
|
||||
"kontrol et\n"
|
||||
" --revoke-temp Geçerli oturum için tüm geçici "
|
||||
"yetkilendirmeleri iptal et\n"
|
||||
" -s, --system-bus-name=VERİYOLU_ADI VERİYOLU_ADI'nın sahibinin "
|
||||
"yetkilendirmesini kontrol et\n"
|
||||
" --version Sürümü göster\n"
|
||||
"\n"
|
||||
"Hataları şuraya bildirin: %s\n"
|
||||
"%s ev sayfası: <%s>\n"
|
||||
|
||||
#: src/programs/pkcheck.c:398 src/programs/pkcheck.c:431
|
||||
#: src/programs/pkcheck.c:443
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: `%s'den sonra değişken bekleniyor\n"
|
||||
|
||||
#: src/programs/pkcheck.c:421
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: Geçersiz --process değeri `%s'\n"
|
||||
|
||||
#: src/programs/pkcheck.c:458 src/programs/pkcheck.c:467
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail, -d'\n"
|
||||
msgstr "%s: `--detail, -d'den sonra iki değişken bekleniyor\n"
|
||||
|
||||
#: src/programs/pkcheck.c:528
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: Konu belirtilmedi\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: src/programs/pkexec.c:821
|
||||
msgid "Authentication is needed to run `$(cmdline_short)' as the super user"
|
||||
msgstr ""
|
||||
"`$(cmdline_short)' programını süper kullanıcı olarak çalıştırmak için kimlik "
|
||||
"doğrulama gerekir"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: src/programs/pkexec.c:831
|
||||
msgid ""
|
||||
"Authentication is needed to run `$(cmdline_short)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"`$(cmdline_short)' programını $(user.display) kullanıcısı olarak çalıştırmak "
|
||||
"için kimlik doğrulama gerekir"
|
||||
|
||||
#: src/programs/pkttyagent.c:87
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Eğer varsa, mevcut vekili değiştirme"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Vekil kaydedildiğinde FD'yi kapat"
|
||||
|
||||
#: src/programs/pkttyagent.c:91
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: src/programs/pkttyagent.c:95
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Belirtilen süreç için vekili kaydet"
|
||||
|
||||
#: src/programs/pkttyagent.c:96
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,BAŞLANGIÇ_ZAMANI]"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Vekili, VERİYOLU_ADI sahibi için kaydet"
|
||||
|
||||
#: src/programs/pkttyagent.c:100
|
||||
msgid "BUS_NAME"
|
||||
msgstr "VERİYOLU_ADI"
|
||||
|
||||
#: src/programs/pkttyagent.c:155
|
||||
#, c-format
|
||||
msgid "%s: Options --process and --system-bus-name are mutually exclusive\n"
|
||||
msgstr "%s: --process ve --system-bus-name seçenekleri birbirini dışlar\n"
|
||||
|
||||
#: src/programs/pkttyagent.c:179
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: Geçersiz süreç belirteci `%s'\n"
|
||||
@@ -0,0 +1,210 @@
|
||||
# Ukrainian translation for polkit.
|
||||
# Copyright (C) 2015 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
#
|
||||
# Yuri Chornoivan <yurchor@ukr.net>, 2015, 2020.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/polkit/polkit/issues\n"
|
||||
"POT-Creation-Date: 2020-03-22 03:56+0000\n"
|
||||
"PO-Revision-Date: 2020-04-02 13:05+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
|
||||
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Lokalize 20.07.70\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "Виконання програми від імені іншого користувача"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr ""
|
||||
"Для виконання програми від імені іншого користувача слід пройти розпізнавання"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "Виконання прикладу програми polkit Frobnicate"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"Для запуску прикладу програми polkit Frobnicate (user=$(user), user.gecos="
|
||||
"$(user.gecos), user.display=$(user.display), program=$(program), "
|
||||
"command_line=$(command_line)) слід пройти розпізнавання"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "Вивести дані лише щодо дії ДІЯ"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ДІЯ"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "Вивести докладні дані щодо дії"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:95
|
||||
msgid "Show version"
|
||||
msgstr "Показати дані щодо версії"
|
||||
|
||||
#: ../src/programs/pkaction.c:132
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ДІЯ]"
|
||||
|
||||
#: ../src/programs/pkaction.c:133 ../src/programs/pkttyagent.c:118
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"Про вади повідомляйте за такою адресою: %s\n"
|
||||
"Домашня сторінка %s: <%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:147 ../src/programs/pkcheck.c:493
|
||||
#: ../src/programs/pkttyagent.c:132
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: неочікуваний аргумент «%s»\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"Користування:\n"
|
||||
" pkcheck [ПАРАМЕТР...]\n"
|
||||
"\n"
|
||||
"Параметри довідки:\n"
|
||||
" -h, --help Вивести довідку щодо параметрів\n"
|
||||
"\n"
|
||||
"Параметри програми:\n"
|
||||
" -a, --action-id=ДІЯ Перевірити уповноваження щодо виконання "
|
||||
"дії ДІЯ\n"
|
||||
" -u, --allow-user-interaction Взаємодіяти із користувачем, якщо "
|
||||
"потрібно\n"
|
||||
" -d, --details=КЛЮЧ ЗНАЧЕННЯ Додати пару (КЛЮЧ, ЗНАЧЕННЯ) до "
|
||||
"інформації щодо дії\n"
|
||||
" --enable-internal-agent Використати вбудований агент "
|
||||
"розпізнавання, якщо потрібно\n"
|
||||
" --list-temp Вивести список тимчасових уповноважень "
|
||||
"для поточного сеансу\n"
|
||||
" -p, --process=PID[,ЧАС_ЗАПУСКУ,UID] Перевірити уповноваження для вказаного "
|
||||
"процесу\n"
|
||||
" --revoke-temp Відкликати усі тимчасові уповноваження "
|
||||
"для поточного сеансу\n"
|
||||
" -s, --system-bus-name=НАЗВА_КАНАЛУ Перевірити уповноваження власника "
|
||||
"НАЗВА_КАНАЛУ\n"
|
||||
" --version Вивести дані щодо версії\n"
|
||||
"\n"
|
||||
"Про вади повідомляйте за такою адресою: %s\n"
|
||||
"Домашня сторінка %s: <%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:393 ../src/programs/pkcheck.c:426
|
||||
#: ../src/programs/pkcheck.c:438
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: після «%s» мало бути вказано аргумент'\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:416
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: некоректне значення --process, «%s»\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:453 ../src/programs/pkcheck.c:462
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: після «--detail» мало бути вказано два аргументи\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:523
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: не вказано суб’єкт\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:790
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr ""
|
||||
"Для запуску «$(program)» від імені суперкористувача слід пройти розпізнавання"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:800
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr ""
|
||||
"Для запуску «$(program)» від імені користувача $(user.display) слід пройти "
|
||||
"розпізнавання"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:78
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "Не змінювати наявного агента, якщо такий є"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "Закрити дескриптор файла, якщо агент не зареєстровано"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:82
|
||||
msgid "FD"
|
||||
msgstr "ДФ"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:86
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "Зареєструвати агент для вказаного процесу"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:87
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,ЧАС_ЗАПУСКУ]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
#| msgid "Register the agent owner of BUS_NAME"
|
||||
msgid "Register the agent for the owner of BUS_NAME"
|
||||
msgstr "Зареєструвати агент для власника НАЗВА_КАНАЛУ"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:91
|
||||
msgid "BUS_NAME"
|
||||
msgstr "НАЗВА_КАНАЛУ"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:164
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: некоректний специфікатор процесу, «%s»\n"
|
||||
@@ -0,0 +1,196 @@
|
||||
# Chinese (China) translation for polkit.
|
||||
# Copyright (C) 2015 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Mingye Wang <arthur2e5@aosc.xyz>, 2015.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
|
||||
"product=PolicyKit&keywords=I18N+L10N&component=libpolkit\n"
|
||||
"POT-Creation-Date: 2015-11-13 02:11+0000\n"
|
||||
"PO-Revision-Date: 2015-11-13 01:59-0500\n"
|
||||
"Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@gmail.com>\n"
|
||||
"Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.6\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "作为另一个用户运行程序"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "需要验证:作为另一个用户运行程序"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "运行 polkit 示例程序“Frobnicate”"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"需要验证:运行 polkit 示例程序 Frobnicate (user=$(user), user.gecos=$(user."
|
||||
"gecos), user.display=$(user.display), program=$(program), command_line="
|
||||
"$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:100
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "只输出与操作有关的信息"
|
||||
|
||||
#: ../src/programs/pkaction.c:100
|
||||
msgid "ACTION"
|
||||
msgstr "操作"
|
||||
|
||||
#: ../src/programs/pkaction.c:104
|
||||
msgid "Output detailed action information"
|
||||
msgstr "输出详细的操作信息"
|
||||
|
||||
#: ../src/programs/pkaction.c:108 ../src/programs/pkttyagent.c:61
|
||||
msgid "Show version"
|
||||
msgstr "显示版本"
|
||||
|
||||
#: ../src/programs/pkaction.c:130
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id 操作]"
|
||||
|
||||
#: ../src/programs/pkaction.c:131 ../src/programs/pkttyagent.c:81
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"报告错误到:%s\n"
|
||||
"%s 项目主页:<%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:145 ../src/programs/pkcheck.c:491
|
||||
#: ../src/programs/pkttyagent.c:95
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s: 意外的参数 \"%s\"\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:35
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"用法\n"
|
||||
" pkcheck [选项...]\n"
|
||||
"\n"
|
||||
"帮助选项\n"
|
||||
" -h, --help 显示可选的帮助\n"
|
||||
"\n"
|
||||
"应用选项\n"
|
||||
" -a, --action-id=操作 检查 <操作> 的授权情况\n"
|
||||
" -u, --allow-user-interaction 在必要时进行用户交互\n"
|
||||
" -d, --details=键 值 将 (键, 值) 加入有关操作的信息\n"
|
||||
" --enable-internal-agent 在必要时使用内置授权助理程序\n"
|
||||
" --list-temp 列出当前会话的临时授权\n"
|
||||
" -p, --process=PID[,开始时间,UID] 检查指定进程的授权\n"
|
||||
" --revoke-temp 吊销所有当前会话的临时授权\n"
|
||||
" -s, --system-bus-name=BUS_NAME 检查 BUS_NAME 所有者的授权\n"
|
||||
" --version 显示版本\n"
|
||||
"\n"
|
||||
"报告错误到:%s\n"
|
||||
"%s 项目主页:<%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:391 ../src/programs/pkcheck.c:424
|
||||
#: ../src/programs/pkcheck.c:436
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s: %s 后预期参数\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:414
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s: 无效 --process 值 \"%s\"\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:451 ../src/programs/pkcheck.c:460
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s: --detail 后预期两个参数\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:521
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s: 主题未指定\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:794
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr "需要授权:作为超级用户身份运行 \"$(program)\" "
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:804
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr "需要授权:作为用户 \"$(user.display)\" 运行 \"$(program)\" "
|
||||
|
||||
#: ../src/programs/pkttyagent.c:44
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "不替换现有助理程序,若有的话"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:48
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "注册助理程序时关闭文件描述符"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:48
|
||||
msgid "FD"
|
||||
msgstr "文件描述符"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:52
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "对指定进程注册助理程序"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,开始时间]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:57
|
||||
msgid "Register the agent owner of BUS_NAME"
|
||||
msgstr "注册 BUS_NAME 的助理所有者"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:57
|
||||
msgid "BUS_NAME"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/programs/pkttyagent.c:127
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s: 无效进程定义 \"%s\" \n"
|
||||
@@ -0,0 +1,196 @@
|
||||
# Chinese (Taiwan) translation for polkit.
|
||||
# Copyright (C) 2017 polkit's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the polkit package.
|
||||
# Cheng-Chia Tseng <pswo10680@gmail.com>, 2017.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: polkit master\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
|
||||
"product=PolicyKit&keywords=I18N+L10N&component=libpolkit\n"
|
||||
"POT-Creation-Date: 2017-08-31 03:26+0000\n"
|
||||
"PO-Revision-Date: 2017-08-31 21:24+0800\n"
|
||||
"Language-Team: Chinese (Taiwan) <chinese-l10n@googlegroups.com>\n"
|
||||
"Language: zh_TW\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
|
||||
"X-Generator: Poedit 2.0.3\n"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:1
|
||||
msgid "Run a program as another user"
|
||||
msgstr "以其他使用者身份執行程式"
|
||||
|
||||
#: ../actions/org.freedesktop.policykit.policy.in.h:2
|
||||
msgid "Authentication is required to run a program as another user"
|
||||
msgstr "必須先核對身份才能以其他使用者執行程式"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:1
|
||||
msgid "Run the polkit example program Frobnicate"
|
||||
msgstr "執行 polkit 範例程式 Frobnicate"
|
||||
|
||||
#: ../src/examples/org.freedesktop.policykit.examples.pkexec.policy.in.h:2
|
||||
msgid ""
|
||||
"Authentication is required to run the polkit example program Frobnicate "
|
||||
"(user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), "
|
||||
"program=$(program), command_line=$(command_line))"
|
||||
msgstr ""
|
||||
"必須先核對身份才能執行 polkit 範例程式 Frobnicate (user=$(user), user.gecos="
|
||||
"$(user.gecos), user.display=$(user.display), program=$(program), "
|
||||
"command_line=$(command_line))"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "Only output information about ACTION"
|
||||
msgstr "僅輸出 ACTION 相關資訊"
|
||||
|
||||
#: ../src/programs/pkaction.c:101
|
||||
msgid "ACTION"
|
||||
msgstr "ACTION"
|
||||
|
||||
#: ../src/programs/pkaction.c:105
|
||||
msgid "Output detailed action information"
|
||||
msgstr "輸出詳細動作資訊"
|
||||
|
||||
#: ../src/programs/pkaction.c:109 ../src/programs/pkttyagent.c:62
|
||||
msgid "Show version"
|
||||
msgstr "顯示版本"
|
||||
|
||||
#: ../src/programs/pkaction.c:134
|
||||
msgid "[--action-id ACTION]"
|
||||
msgstr "[--action-id ACTION]"
|
||||
|
||||
#: ../src/programs/pkaction.c:135 ../src/programs/pkttyagent.c:85
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>"
|
||||
msgstr ""
|
||||
"回報臭蟲處:%s\n"
|
||||
"%s 網頁:<%s>"
|
||||
|
||||
#: ../src/programs/pkaction.c:149 ../src/programs/pkcheck.c:495
|
||||
#: ../src/programs/pkttyagent.c:99
|
||||
#, c-format
|
||||
msgid "%s: Unexpected argument `%s'\n"
|
||||
msgstr "%s:未預期引數「%s」\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:36
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"Help Options:\n"
|
||||
" -h, --help Show help options\n"
|
||||
"\n"
|
||||
"Application Options:\n"
|
||||
" -a, --action-id=ACTION Check authorization to perform ACTION\n"
|
||||
" -u, --allow-user-interaction Interact with the user if necessary\n"
|
||||
" -d, --details=KEY VALUE Add (KEY, VALUE) to information about "
|
||||
"the action\n"
|
||||
" --enable-internal-agent Use an internal authentication agent if "
|
||||
"necessary\n"
|
||||
" --list-temp List temporary authorizations for "
|
||||
"current session\n"
|
||||
" -p, --process=PID[,START_TIME,UID] Check authorization of specified "
|
||||
"process\n"
|
||||
" --revoke-temp Revoke all temporary authorizations for "
|
||||
"current session\n"
|
||||
" -s, --system-bus-name=BUS_NAME Check authorization of owner of "
|
||||
"BUS_NAME\n"
|
||||
" --version Show version\n"
|
||||
"\n"
|
||||
"Report bugs to: %s\n"
|
||||
"%s home page: <%s>\n"
|
||||
msgstr ""
|
||||
"用法:\n"
|
||||
" pkcheck [OPTION...]\n"
|
||||
"\n"
|
||||
"幫助選項:\n"
|
||||
" -h, --help 顯示幫助選項\n"
|
||||
"\n"
|
||||
"應用選項:\n"
|
||||
" -a, --action-id=ACTION 檢查授權以執行 ACTION\n"
|
||||
" -u, --allow-user-interaction 若有必要,則和使用者互動\n"
|
||||
" -d, --details=KEY VALUE 加入 (KEY, VALUE) 到動作的相關資訊中\n"
|
||||
" --enable-internal-agent 若有必要,使用內部身份核對代理\n"
|
||||
" --list-temp 列出目前工作階段的暫時授權\n"
|
||||
" -p, --process=PID[,START_TIME,UID] 檢查指定程序的授權\n"
|
||||
" --revoke-temp 撤銷目前工作階段的所有暫時授權\n"
|
||||
" -s, --system-bus-name=BUS_NAME 檢查 BUS_NAME 的使用者授權\n"
|
||||
" --version 顯示版號\n"
|
||||
"\n"
|
||||
"請回報臭蟲到:%s\n"
|
||||
"%s 網頁:<%s>\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:395 ../src/programs/pkcheck.c:428
|
||||
#: ../src/programs/pkcheck.c:440
|
||||
#, c-format
|
||||
msgid "%s: Argument expected after `%s'\n"
|
||||
msgstr "%s:預期「%s」後要有引數\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:418
|
||||
#, c-format
|
||||
msgid "%s: Invalid --process value `%s'\n"
|
||||
msgstr "%s:無效 --process 值「%s」\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:455 ../src/programs/pkcheck.c:464
|
||||
#, c-format
|
||||
msgid "%s: Two arguments expected after `--detail'\n"
|
||||
msgstr "%s:預期「--detail」後有兩個引數\n"
|
||||
|
||||
#: ../src/programs/pkcheck.c:525
|
||||
#, c-format
|
||||
msgid "%s: Subject not specified\n"
|
||||
msgstr "%s:未指定目標\n"
|
||||
|
||||
#. Translators: message shown when trying to run a program as root. Do not
|
||||
#. * translate the $(program) fragment - it will be expanded to the path
|
||||
#. * of the program e.g. /bin/bash.
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:797
|
||||
msgid "Authentication is needed to run `$(program)' as the super user"
|
||||
msgstr "必須先核對身份才能以超級使用者執行「$(program)」"
|
||||
|
||||
#. Translators: message shown when trying to run a program as another user.
|
||||
#. * Do not translate the $(program) or $(user) fragments - the former will
|
||||
#. * be expanded to the path of the program e.g. "/bin/bash" and the latter
|
||||
#. * to the user e.g. "John Doe (johndoe)" or "johndoe".
|
||||
#.
|
||||
#: ../src/programs/pkexec.c:807
|
||||
msgid "Authentication is needed to run `$(program)' as user $(user.display)"
|
||||
msgstr "必須先核對身份才能以 $(user.display) 使用者執行「$(program)」"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:45
|
||||
msgid "Don't replace existing agent if any"
|
||||
msgstr "不要替換既有代理,若有的話"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "Close FD when the agent is registered"
|
||||
msgstr "當代裡已註冊時關閉 FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:49
|
||||
msgid "FD"
|
||||
msgstr "FD"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:53
|
||||
msgid "Register the agent for the specified process"
|
||||
msgstr "為指定程序註冊代理"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:54
|
||||
msgid "PID[,START_TIME]"
|
||||
msgstr "PID[,START_TIME]"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "Register the agent owner of BUS_NAME"
|
||||
msgstr "註冊 BUS_NAME 的代理擁有者"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:58
|
||||
msgid "BUS_NAME"
|
||||
msgstr "BUS_NAME"
|
||||
|
||||
#: ../src/programs/pkttyagent.c:131
|
||||
#, c-format
|
||||
msgid "%s: Invalid process specifier `%s'\n"
|
||||
msgstr "%s:無效程序指定碼「%s」\n"
|
||||
@@ -0,0 +1,157 @@
|
||||
/*
|
||||
* Copyright (C) 2009 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
/* Simple example that shows how to check for an authorization
|
||||
* including cancelling the check.
|
||||
*
|
||||
* Cancelling an authorization check is desirable in situations where
|
||||
* the object/action to check for vanishes.
|
||||
*
|
||||
* One concrete example of this is a disks service in which the user
|
||||
* needs to authenticate to modify a disk. If the disk is removed
|
||||
* while the authentication dialog is shown, the disks service should
|
||||
* cancel the authorization check. A side effect of this, is that the
|
||||
* authentication dialog is removed.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <polkit/polkit.h>
|
||||
|
||||
static gboolean
|
||||
on_tensec_timeout (gpointer user_data)
|
||||
{
|
||||
GMainLoop *loop = user_data;
|
||||
g_print ("Ten seconds has passed. Now exiting.\n");
|
||||
g_main_loop_quit (loop);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
check_authorization_cb (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
gpointer user_data)
|
||||
{
|
||||
GMainLoop *loop = user_data;
|
||||
PolkitAuthorizationResult *result;
|
||||
GError *error;
|
||||
|
||||
error = NULL;
|
||||
result = polkit_authority_check_authorization_finish (authority, res, &error);
|
||||
if (error != NULL)
|
||||
{
|
||||
g_print ("Error checking authorization: %s\n", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
else
|
||||
{
|
||||
const gchar *result_str;
|
||||
if (polkit_authorization_result_get_is_authorized (result))
|
||||
{
|
||||
result_str = "authorized";
|
||||
}
|
||||
else if (polkit_authorization_result_get_is_challenge (result))
|
||||
{
|
||||
result_str = "challenge";
|
||||
}
|
||||
else
|
||||
{
|
||||
result_str = "not authorized";
|
||||
}
|
||||
|
||||
g_print ("Authorization result: %s\n", result_str);
|
||||
}
|
||||
|
||||
g_print ("Authorization check has been cancelled and the dialog should now be hidden.\n"
|
||||
"This process will exit in ten seconds.\n");
|
||||
g_timeout_add (10000, on_tensec_timeout, loop);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
do_cancel (GCancellable *cancellable)
|
||||
{
|
||||
g_print ("Timer has expired; cancelling authorization check\n");
|
||||
g_cancellable_cancel (cancellable);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
pid_t parent_pid;
|
||||
const gchar *action_id;
|
||||
GMainLoop *loop;
|
||||
PolkitSubject *subject;
|
||||
PolkitAuthority *authority;
|
||||
GCancellable *cancellable;
|
||||
|
||||
if (argc != 2)
|
||||
{
|
||||
g_printerr ("usage: %s <action_id>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
action_id = argv[1];
|
||||
|
||||
loop = g_main_loop_new (NULL, FALSE);
|
||||
|
||||
authority = polkit_authority_get_sync (NULL, NULL);
|
||||
|
||||
/* Typically mechanisms will use a PolkitSystemBusName since most
|
||||
* clients communicate with the mechanism via D-Bus. However for
|
||||
* this simple example we use the process id of the calling process.
|
||||
*
|
||||
* Note that if the parent was reaped we have to be careful not to
|
||||
* check if init(1) is authorized (it always is).
|
||||
*/
|
||||
parent_pid = getppid ();
|
||||
if (parent_pid == 1)
|
||||
{
|
||||
g_printerr ("Parent process was reaped by init(1)\n");
|
||||
return 1;
|
||||
}
|
||||
subject = polkit_unix_process_new_for_owner (parent_pid, 0, getuid ());
|
||||
|
||||
cancellable = g_cancellable_new ();
|
||||
|
||||
g_print ("Will cancel authorization check in 10 seconds\n");
|
||||
|
||||
/* Set up a 10 second timer to cancel the check */
|
||||
g_timeout_add (10 * 1000,
|
||||
(GSourceFunc) do_cancel,
|
||||
cancellable);
|
||||
|
||||
polkit_authority_check_authorization (authority,
|
||||
subject,
|
||||
action_id,
|
||||
NULL, /* PolkitDetails */
|
||||
POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION,
|
||||
cancellable,
|
||||
(GAsyncReadyCallback) check_authorization_cb,
|
||||
loop);
|
||||
|
||||
g_main_loop_run (loop);
|
||||
|
||||
g_object_unref (authority);
|
||||
g_object_unref (subject);
|
||||
g_object_unref (cancellable);
|
||||
g_main_loop_unref (loop);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (C) 2009 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
gchar *args;
|
||||
gchar **env;
|
||||
guint n;
|
||||
int ret;
|
||||
#ifdef __GLIBC__
|
||||
gchar *cwd = NULL;
|
||||
#else
|
||||
gchar cwd[PATH_MAX];
|
||||
#endif
|
||||
|
||||
ret = 1;
|
||||
args = NULL;
|
||||
env = NULL;
|
||||
|
||||
#ifdef __GLIBC__
|
||||
if ((cwd = get_current_dir_name ()) == NULL)
|
||||
#else
|
||||
if (getcwd (cwd, sizeof cwd) == NULL)
|
||||
#endif
|
||||
{
|
||||
g_printerr ("Error getting cwd: %s\n", g_strerror (errno));
|
||||
goto out;
|
||||
}
|
||||
|
||||
args = g_strjoinv (" ", argv);
|
||||
|
||||
g_print ("In pk-example-frobnicate\n");
|
||||
g_print ("uid: %d\n", getuid ());
|
||||
g_print ("euid: %d\n", geteuid ());
|
||||
g_print ("args: `%s'\n", args);
|
||||
g_print ("cwd: %s\n", cwd);
|
||||
g_print ("environment:\n");
|
||||
|
||||
env = g_listenv ();
|
||||
for (n = 0; env[n] != NULL; n++)
|
||||
{
|
||||
g_print (" %s=%s\n", env[n], g_getenv (env[n]));
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
out:
|
||||
|
||||
#ifdef __GLIBC__
|
||||
free (cwd);
|
||||
#endif
|
||||
g_free (args);
|
||||
g_strfreev (env);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
policy = 'org.freedesktop.policykit.examples.pkexec.policy'
|
||||
|
||||
i18n.merge_file(
|
||||
input: policy + '.in',
|
||||
output: '@BASENAME@',
|
||||
po_dir: po_dir,
|
||||
data_dirs: its_dir,
|
||||
install: true,
|
||||
install_dir: pk_pkgactiondir,
|
||||
)
|
||||
|
||||
program = 'cancel'
|
||||
|
||||
executable(
|
||||
program,
|
||||
program + '.c',
|
||||
include_directories: top_inc,
|
||||
dependencies: libpolkit_gobject_dep,
|
||||
)
|
||||
|
||||
executable(
|
||||
'pk-example-frobnicate',
|
||||
'frobnicate.c',
|
||||
include_directories: top_inc,
|
||||
dependencies: glib_dep,
|
||||
install: true,
|
||||
)
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD polkit Policy Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
|
||||
<policyconfig>
|
||||
|
||||
<vendor>Examples for the polkit project</vendor>
|
||||
<vendor_url>http://www.freedesktop.org/wiki/Software/polkit/</vendor_url>
|
||||
|
||||
<action id="org.freedesktop.policykit.example.pkexec.run-frobnicate">
|
||||
<description>Run the polkit example program Frobnicate</description>
|
||||
<message>Authentication is required to run the polkit example program Frobnicate (user=$(user), user.gecos=$(user.gecos), user.display=$(user.display), program=$(program), command_line=$(command_line))</message>
|
||||
<icon_name>audio-x-generic</icon_name> <!-- just an example -->
|
||||
<defaults>
|
||||
<allow_any>no</allow_any>
|
||||
<allow_inactive>no</allow_inactive>
|
||||
<allow_active>auth_admin_keep</allow_active>
|
||||
</defaults>
|
||||
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/pk-example-frobnicate</annotate>
|
||||
</action>
|
||||
|
||||
</policyconfig>
|
||||
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright (C) 2009 Red Hat, Inc.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General
|
||||
# Public License along with this library; if not, write to the
|
||||
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# Author: David Zeuthen <davidz@redhat.com>
|
||||
|
||||
# Simple example showing how to access the Authority via D-Bus calls
|
||||
#
|
||||
|
||||
import dbus
|
||||
|
||||
bus = dbus.SystemBus()
|
||||
proxy = bus.get_object('org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority')
|
||||
authority = dbus.Interface(proxy, dbus_interface='org.freedesktop.PolicyKit1.Authority')
|
||||
|
||||
system_bus_name = bus.get_unique_name()
|
||||
|
||||
subject = ('system-bus-name', {'name' : system_bus_name})
|
||||
action_id = 'org.freedesktop.policykit.exec'
|
||||
details = {}
|
||||
flags = 1 # AllowUserInteraction flag
|
||||
cancellation_id = '' # No cancellation id
|
||||
|
||||
result = authority.CheckAuthorization(subject, action_id, details, flags, cancellation_id)
|
||||
|
||||
print result
|
||||
@@ -0,0 +1,21 @@
|
||||
src_inc = include_directories('.')
|
||||
|
||||
symbol_map = meson.current_source_dir() / 'symbol.map'
|
||||
ldflags = cc.get_supported_link_arguments('-Wl,--version-script,@0@'.format(symbol_map))
|
||||
|
||||
subdir('polkit')
|
||||
# Red Bear: build the client-side agent library (libpolkit-agent-1) + its PAM
|
||||
# auth helper even under libs-only. It's needed by PolkitQt6-1 (the agent
|
||||
# component) and depends only on libpolkit-gobject-1 + glib + PAM (pam-redbear) —
|
||||
# NOT on the daemon/backend. Only polkitbackend/polkitd/programs (the JS rules
|
||||
# engine + daemon) stay gated off, since redbear-polkit is the authority daemon.
|
||||
subdir('polkitagent')
|
||||
if not get_option('libs-only')
|
||||
subdir('polkitbackend')
|
||||
subdir('programs')
|
||||
endif
|
||||
|
||||
enable_examples = get_option('examples')
|
||||
if enable_examples
|
||||
subdir('examples')
|
||||
endif
|
||||
@@ -0,0 +1,136 @@
|
||||
name = '@0@-gobject-@1@'.format(meson.project_name(), pk_api_version)
|
||||
|
||||
enum_headers = files(
|
||||
'polkitauthorityfeatures.h',
|
||||
'polkitcheckauthorizationflags.h',
|
||||
'polkiterror.h',
|
||||
'polkitimplicitauthorization.h',
|
||||
)
|
||||
|
||||
headers = enum_headers + files(
|
||||
'polkitactiondescription.h',
|
||||
'polkitauthority.h',
|
||||
'polkitauthorizationresult.h',
|
||||
'polkitdetails.h',
|
||||
'polkit.h',
|
||||
'polkitidentity.h',
|
||||
'polkitpermission.h',
|
||||
'polkitsubject.h',
|
||||
'polkitsystembusname.h',
|
||||
'polkittemporaryauthorization.h',
|
||||
'polkitunixgroup.h',
|
||||
'polkitunixnetgroup.h',
|
||||
'polkitunixprocess.h',
|
||||
'polkitunixsession.h',
|
||||
'polkitunixuser.h',
|
||||
)
|
||||
|
||||
private_headers = files(
|
||||
'polkitprivate.h',
|
||||
'polkittypes.h',
|
||||
)
|
||||
|
||||
install_headers(
|
||||
headers + private_headers,
|
||||
install_dir: pk_pkgincludedir / 'polkit',
|
||||
)
|
||||
|
||||
common_deps = [
|
||||
gio_dep,
|
||||
gio_unix_dep,
|
||||
glib_dep,
|
||||
]
|
||||
|
||||
enum_sources = gnome.mkenums_simple(
|
||||
'polkitenumtypes',
|
||||
sources: enum_headers,
|
||||
install_header: true,
|
||||
install_dir: pk_pkgincludedir / 'polkit',
|
||||
)
|
||||
|
||||
sources = enum_sources + files(
|
||||
'polkitactiondescription.c',
|
||||
'polkitauthority.c',
|
||||
'polkitauthorityfeatures.c',
|
||||
'polkitauthorizationresult.c',
|
||||
'polkitcheckauthorizationflags.c',
|
||||
'polkitdetails.c',
|
||||
'polkiterror.c',
|
||||
'polkitidentity.c',
|
||||
'polkitimplicitauthorization.c',
|
||||
'polkitpermission.c',
|
||||
'polkitsubject.c',
|
||||
'polkitsystembusname.c',
|
||||
'polkittemporaryauthorization.c',
|
||||
'polkitunixgroup.c',
|
||||
'polkitunixnetgroup.c',
|
||||
'polkitunixprocess.c',
|
||||
'polkitunixuser.c',
|
||||
)
|
||||
|
||||
incs = [
|
||||
top_inc,
|
||||
src_inc,
|
||||
]
|
||||
|
||||
deps = common_deps
|
||||
|
||||
c_flags = '-D_POLKIT_COMPILATION'
|
||||
|
||||
if enable_logind
|
||||
sources += 'polkitunixsession-systemd.c'
|
||||
|
||||
deps += logind_dep
|
||||
else
|
||||
sources += 'polkitunixsession.c'
|
||||
endif
|
||||
|
||||
libpolkit_gobject = shared_library(
|
||||
name,
|
||||
sources: sources,
|
||||
version: libversion,
|
||||
include_directories: incs,
|
||||
dependencies: deps,
|
||||
c_args: c_flags,
|
||||
link_args: ldflags,
|
||||
link_depends: symbol_map,
|
||||
install: true,
|
||||
)
|
||||
|
||||
libpolkit_gobject_dep = declare_dependency(
|
||||
sources: enum_sources[1],
|
||||
include_directories: src_inc,
|
||||
dependencies: common_deps,
|
||||
link_with: libpolkit_gobject,
|
||||
)
|
||||
|
||||
pkg.generate(
|
||||
libraries: libpolkit_gobject,
|
||||
version: pk_version,
|
||||
name: name,
|
||||
description: 'PolicyKit Authorization API',
|
||||
filebase: name,
|
||||
subdirs: pk_api_name,
|
||||
requires: common_deps,
|
||||
variables: [
|
||||
'exec_prefix=${prefix}',
|
||||
'datadir=' + ('${prefix}' / pk_datadir),
|
||||
'policydir=' + ('${datadir}' / pk_actiondir),
|
||||
'actiondir=' + ('${datadir}' / pk_actiondir),
|
||||
'pkcheck_supports_uid=true',
|
||||
],
|
||||
)
|
||||
|
||||
if enable_introspection
|
||||
libpolkit_gobject_gir = gnome.generate_gir(
|
||||
libpolkit_gobject,
|
||||
sources: sources + headers,
|
||||
extra_args: c_flags,
|
||||
nsversion: pk_gir_version,
|
||||
namespace: pk_gir_ns,
|
||||
export_packages: name,
|
||||
includes: 'Gio-2.0',
|
||||
header: 'polkit/polkit.h',
|
||||
install: true,
|
||||
)
|
||||
endif
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#ifndef __POLKIT_H
|
||||
#define __POLKIT_H
|
||||
|
||||
#define _POLKIT_INSIDE_POLKIT_H 1
|
||||
|
||||
#include <polkit/polkittypes.h>
|
||||
#include <polkit/polkitenumtypes.h>
|
||||
#include <polkit/polkitimplicitauthorization.h>
|
||||
#include <polkit/polkitactiondescription.h>
|
||||
#include <polkit/polkitauthorityfeatures.h>
|
||||
#include <polkit/polkiterror.h>
|
||||
#include <polkit/polkitidentity.h>
|
||||
#include <polkit/polkitunixuser.h>
|
||||
#include <polkit/polkitunixgroup.h>
|
||||
#include <polkit/polkitunixnetgroup.h>
|
||||
#include <polkit/polkitsubject.h>
|
||||
#include <polkit/polkitunixprocess.h>
|
||||
#include <polkit/polkitunixsession.h>
|
||||
#include <polkit/polkitsystembusname.h>
|
||||
#include <polkit/polkitauthorizationresult.h>
|
||||
#include <polkit/polkitcheckauthorizationflags.h>
|
||||
#include <polkit/polkitauthority.h>
|
||||
#include <polkit/polkitdetails.h>
|
||||
#include <polkit/polkittemporaryauthorization.h>
|
||||
#include <polkit/polkitpermission.h>
|
||||
|
||||
#undef _POLKIT_INSIDE_POLKIT_H
|
||||
|
||||
#endif /* __POLKIT_H */
|
||||
@@ -0,0 +1,382 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include "polkitimplicitauthorization.h"
|
||||
#include "polkitactiondescription.h"
|
||||
|
||||
#include "polkitprivate.h"
|
||||
|
||||
/**
|
||||
* SECTION:polkitactiondescription
|
||||
* @title: PolkitActionDescription
|
||||
* @short_description: Description of Actions
|
||||
*
|
||||
* Object used to encapsulate a registered action.
|
||||
*/
|
||||
|
||||
/**
|
||||
* PolkitActionDescription:
|
||||
*
|
||||
* The #PolkitActionDescription struct should not be accessed directly.
|
||||
*/
|
||||
struct _PolkitActionDescription
|
||||
{
|
||||
GObject parent_instance;
|
||||
gchar *action_id;
|
||||
gchar *description;
|
||||
gchar *message;
|
||||
gchar *vendor_name;
|
||||
gchar *vendor_url;
|
||||
gchar *icon_name;
|
||||
PolkitImplicitAuthorization implicit_any;
|
||||
PolkitImplicitAuthorization implicit_inactive;
|
||||
PolkitImplicitAuthorization implicit_active;
|
||||
GHashTable *annotations;
|
||||
gchar **annotation_keys;
|
||||
};
|
||||
|
||||
struct _PolkitActionDescriptionClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (PolkitActionDescription, polkit_action_description, G_TYPE_OBJECT);
|
||||
|
||||
static void
|
||||
polkit_action_description_init (PolkitActionDescription *action_description)
|
||||
{
|
||||
action_description->annotations = g_hash_table_new_full (g_str_hash,
|
||||
g_str_equal,
|
||||
g_free,
|
||||
g_free);
|
||||
}
|
||||
|
||||
static void
|
||||
polkit_action_description_finalize (GObject *object)
|
||||
{
|
||||
PolkitActionDescription *action_description;
|
||||
|
||||
action_description = POLKIT_ACTION_DESCRIPTION (object);
|
||||
|
||||
g_free (action_description->action_id);
|
||||
g_free (action_description->description);
|
||||
g_free (action_description->message);
|
||||
g_free (action_description->vendor_name);
|
||||
g_free (action_description->vendor_url);
|
||||
g_free (action_description->icon_name);
|
||||
g_hash_table_unref (action_description->annotations);
|
||||
g_strfreev (action_description->annotation_keys);
|
||||
|
||||
if (G_OBJECT_CLASS (polkit_action_description_parent_class)->finalize != NULL)
|
||||
G_OBJECT_CLASS (polkit_action_description_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
polkit_action_description_class_init (PolkitActionDescriptionClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
gobject_class->finalize = polkit_action_description_finalize;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_action_id:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the action id for @action_description.
|
||||
*
|
||||
* Returns: A string owned by @action_description. Do not free.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_action_description_get_action_id (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
return action_description->action_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_description:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the description used for @action_description.
|
||||
*
|
||||
* Returns: A string owned by @action_description. Do not free.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_action_description_get_description (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
return action_description->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_message:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the message used for @action_description.
|
||||
*
|
||||
* Returns: A string owned by @action_description. Do not free.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_action_description_get_message (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
return action_description->message;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_vendor_name:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the vendor name for @action_description, if any.
|
||||
*
|
||||
* Returns: A string owned by @action_description. Do not free.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_action_description_get_vendor_name (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
return action_description->vendor_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_vendor_url:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the vendor URL for @action_description, if any.
|
||||
*
|
||||
* Returns: A string owned by @action_description. Do not free.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_action_description_get_vendor_url (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
return action_description->vendor_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_implicit_any:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the implicit authorization for @action_description used for
|
||||
* any subject.
|
||||
*
|
||||
* Returns: A value from the #PolkitImplicitAuthorization enumeration.
|
||||
*/
|
||||
PolkitImplicitAuthorization
|
||||
polkit_action_description_get_implicit_any (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), 0);
|
||||
return action_description->implicit_any;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_implicit_inactive:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the implicit authorization for @action_description used for
|
||||
* subjects in inactive sessions on a local console.
|
||||
*
|
||||
* Returns: A value from the #PolkitImplicitAuthorization enumeration.
|
||||
*/
|
||||
PolkitImplicitAuthorization
|
||||
polkit_action_description_get_implicit_inactive (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), 0);
|
||||
return action_description->implicit_inactive;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_implicit_active:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the implicit authorization for @action_description used for
|
||||
* subjects in active sessions on a local console.
|
||||
*
|
||||
* Returns: A value from the #PolkitImplicitAuthorization enumeration.
|
||||
*/
|
||||
PolkitImplicitAuthorization
|
||||
polkit_action_description_get_implicit_active (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), 0);
|
||||
return action_description->implicit_active;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_icon_name:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the icon name for @action_description, if any.
|
||||
*
|
||||
* Returns: A string owned by @action_description. Do not free.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_action_description_get_icon_name (PolkitActionDescription *action_description)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
return action_description->icon_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_annotation:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
* @key: An annotation key.
|
||||
*
|
||||
* Get the value of the annotation with @key.
|
||||
*
|
||||
* Returns: (allow-none): %NULL if there is no annoation with @key,
|
||||
* otherwise the annotation value owned by @action_description. Do not
|
||||
* free.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_action_description_get_annotation (PolkitActionDescription *action_description,
|
||||
const gchar *key)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
return g_hash_table_lookup (action_description->annotations, key);
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_action_description_get_annotation_keys:
|
||||
* @action_description: A #PolkitActionDescription.
|
||||
*
|
||||
* Gets the keys of annotations defined in @action_description.
|
||||
*
|
||||
* Returns: (transfer none): The annotation keys owned by @action_description. Do not free.
|
||||
*/
|
||||
const gchar * const *
|
||||
polkit_action_description_get_annotation_keys (PolkitActionDescription *action_description)
|
||||
{
|
||||
GPtrArray *p;
|
||||
GHashTableIter iter;
|
||||
const gchar *key;
|
||||
|
||||
g_return_val_if_fail (POLKIT_IS_ACTION_DESCRIPTION (action_description), NULL);
|
||||
|
||||
if (action_description->annotation_keys != NULL)
|
||||
goto out;
|
||||
|
||||
p = g_ptr_array_new ();
|
||||
|
||||
g_hash_table_iter_init (&iter, action_description->annotations);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer) &key, NULL))
|
||||
g_ptr_array_add (p, g_strdup (key));
|
||||
|
||||
g_ptr_array_add (p, NULL);
|
||||
action_description->annotation_keys = (gchar **) g_ptr_array_free (p, FALSE);
|
||||
|
||||
out:
|
||||
return (const gchar * const *) action_description->annotation_keys;
|
||||
}
|
||||
|
||||
PolkitActionDescription *
|
||||
polkit_action_description_new (const gchar *action_id,
|
||||
const gchar *description,
|
||||
const gchar *message,
|
||||
const gchar *vendor_name,
|
||||
const gchar *vendor_url,
|
||||
const gchar *icon_name,
|
||||
PolkitImplicitAuthorization implicit_any,
|
||||
PolkitImplicitAuthorization implicit_inactive,
|
||||
PolkitImplicitAuthorization implicit_active,
|
||||
GHashTable *annotations)
|
||||
{
|
||||
PolkitActionDescription *ret;
|
||||
g_return_val_if_fail (annotations != NULL, NULL);
|
||||
ret = POLKIT_ACTION_DESCRIPTION (g_object_new (POLKIT_TYPE_ACTION_DESCRIPTION, NULL));
|
||||
ret->action_id = g_strdup (action_id);
|
||||
ret->description = g_strdup (description);
|
||||
ret->message = g_strdup (message);
|
||||
ret->vendor_name = g_strdup (vendor_name);
|
||||
ret->vendor_url = g_strdup (vendor_url);
|
||||
ret->icon_name = g_strdup (icon_name);
|
||||
ret->implicit_any = implicit_any;
|
||||
ret->implicit_inactive = implicit_inactive;
|
||||
ret->implicit_active = implicit_active;
|
||||
if (ret->annotations != NULL)
|
||||
g_hash_table_unref (ret->annotations);
|
||||
ret->annotations = g_hash_table_ref (annotations);
|
||||
return ret;
|
||||
}
|
||||
|
||||
PolkitActionDescription *
|
||||
polkit_action_description_new_for_gvariant (GVariant *value)
|
||||
{
|
||||
PolkitActionDescription *action_description;
|
||||
GVariantIter iter;
|
||||
GVariant *annotations_dict;
|
||||
gchar *a_key;
|
||||
gchar *a_value;
|
||||
|
||||
action_description = POLKIT_ACTION_DESCRIPTION (g_object_new (POLKIT_TYPE_ACTION_DESCRIPTION, NULL));
|
||||
g_variant_get (value,
|
||||
"(ssssssuuu@a{ss})",
|
||||
&action_description->action_id,
|
||||
&action_description->description,
|
||||
&action_description->message,
|
||||
&action_description->vendor_name,
|
||||
&action_description->vendor_url,
|
||||
&action_description->icon_name,
|
||||
&action_description->implicit_any,
|
||||
&action_description->implicit_inactive,
|
||||
&action_description->implicit_active,
|
||||
&annotations_dict);
|
||||
g_variant_iter_init (&iter, annotations_dict);
|
||||
while (g_variant_iter_next (&iter, "{ss}", &a_key, &a_value))
|
||||
g_hash_table_insert (action_description->annotations, a_key, a_value); /* adopts a_key and a_value */
|
||||
g_variant_unref (annotations_dict);
|
||||
|
||||
return action_description;
|
||||
}
|
||||
|
||||
/* Note that this returns a floating value. */
|
||||
GVariant *
|
||||
polkit_action_description_to_gvariant (PolkitActionDescription *action_description)
|
||||
{
|
||||
GVariantBuilder builder;
|
||||
GHashTableIter iter;
|
||||
const gchar *a_key;
|
||||
const gchar *a_value;
|
||||
|
||||
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{ss}"));
|
||||
|
||||
g_hash_table_iter_init (&iter, action_description->annotations);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer) &a_key, (gpointer) &a_value))
|
||||
g_variant_builder_add (&builder, "{ss}", a_key, a_value);
|
||||
|
||||
/* TODO: note 'foo ? : ""' is a gcc specific extension (it's a short-hand for 'foo ? foo : ""') */
|
||||
return g_variant_new ("(ssssssuuua{ss})",
|
||||
action_description->action_id ? : "",
|
||||
action_description->description ? : "",
|
||||
action_description->message ? : "",
|
||||
action_description->vendor_name ? : "",
|
||||
action_description->vendor_url ? : "",
|
||||
action_description->icon_name ? : "",
|
||||
action_description->implicit_any,
|
||||
action_description->implicit_inactive,
|
||||
action_description->implicit_active,
|
||||
&builder);
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
|
||||
#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __POLKIT_ACTION_DESCRIPTION_H
|
||||
#define __POLKIT_ACTION_DESCRIPTION_H
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
#include <polkit/polkittypes.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define POLKIT_TYPE_ACTION_DESCRIPTION (polkit_action_description_get_type())
|
||||
#define POLKIT_ACTION_DESCRIPTION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), POLKIT_TYPE_ACTION_DESCRIPTION, PolkitActionDescription))
|
||||
#define POLKIT_ACTION_DESCRIPTION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), POLKIT_TYPE_ACTION_DESCRIPTION, PolkitActionDescriptionClass))
|
||||
#define POLKIT_ACTION_DESCRIPTION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), POLKIT_TYPE_ACTION_DESCRIPTION, PolkitActionDescriptionClass))
|
||||
#define POLKIT_IS_ACTION_DESCRIPTION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), POLKIT_TYPE_ACTION_DESCRIPTION))
|
||||
#define POLKIT_IS_ACTION_DESCRIPTION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), POLKIT_TYPE_ACTION_DESCRIPTION))
|
||||
|
||||
#if 0
|
||||
typedef struct _PolkitActionDescription PolkitActionDescription;
|
||||
#endif
|
||||
typedef struct _PolkitActionDescriptionClass PolkitActionDescriptionClass;
|
||||
|
||||
GType polkit_action_description_get_type (void) G_GNUC_CONST;
|
||||
const gchar *polkit_action_description_get_action_id (PolkitActionDescription *action_description);
|
||||
const gchar *polkit_action_description_get_description (PolkitActionDescription *action_description);
|
||||
const gchar *polkit_action_description_get_message (PolkitActionDescription *action_description);
|
||||
const gchar *polkit_action_description_get_vendor_name (PolkitActionDescription *action_description);
|
||||
const gchar *polkit_action_description_get_vendor_url (PolkitActionDescription *action_description);
|
||||
const gchar *polkit_action_description_get_icon_name (PolkitActionDescription *action_description);
|
||||
|
||||
PolkitImplicitAuthorization polkit_action_description_get_implicit_any (PolkitActionDescription *action_description);
|
||||
PolkitImplicitAuthorization polkit_action_description_get_implicit_inactive (PolkitActionDescription *action_description);
|
||||
PolkitImplicitAuthorization polkit_action_description_get_implicit_active (PolkitActionDescription *action_description);
|
||||
|
||||
const gchar *polkit_action_description_get_annotation (PolkitActionDescription *action_description,
|
||||
const gchar *key);
|
||||
const gchar * const *polkit_action_description_get_annotation_keys (PolkitActionDescription *action_description);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __POLKIT_ACTION_DESCRIPTION_H */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,227 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
|
||||
#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __POLKIT_AUTHORITY_H
|
||||
#define __POLKIT_AUTHORITY_H
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
#include <polkit/polkittypes.h>
|
||||
#include <polkit/polkitauthorityfeatures.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define POLKIT_TYPE_AUTHORITY (polkit_authority_get_type())
|
||||
#define POLKIT_AUTHORITY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), POLKIT_TYPE_AUTHORITY, PolkitAuthority))
|
||||
#define POLKIT_AUTHORITY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), POLKIT_TYPE_AUTHORITY, PolkitAuthorityClass))
|
||||
#define POLKIT_AUTHORITY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), POLKIT_TYPE_AUTHORITY, PolkitAuthorityClass))
|
||||
#define POLKIT_IS_AUTHORITY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), POLKIT_TYPE_AUTHORITY))
|
||||
#define POLKIT_IS_AUTHORITY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), POLKIT_TYPE_AUTHORITY))
|
||||
|
||||
#if 0
|
||||
typedef struct _PolkitAuthority PolkitAuthority;
|
||||
#endif
|
||||
typedef struct _PolkitAuthorityClass PolkitAuthorityClass;
|
||||
|
||||
GType polkit_authority_get_type (void) G_GNUC_CONST;
|
||||
|
||||
PolkitAuthority *polkit_authority_get (void) G_GNUC_DEPRECATED_FOR (polkit_authority_get_sync);
|
||||
|
||||
void polkit_authority_get_async (GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
PolkitAuthority *polkit_authority_get_finish (GAsyncResult *res,
|
||||
GError **error);
|
||||
PolkitAuthority *polkit_authority_get_sync (GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gchar *polkit_authority_get_owner (PolkitAuthority *authority);
|
||||
const gchar *polkit_authority_get_backend_name (PolkitAuthority *authority);
|
||||
const gchar *polkit_authority_get_backend_version (PolkitAuthority *authority);
|
||||
PolkitAuthorityFeatures polkit_authority_get_backend_features (PolkitAuthority *authority);
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
GList *polkit_authority_enumerate_actions_sync (PolkitAuthority *authority,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
PolkitAuthorizationResult *polkit_authority_check_authorization_sync (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *action_id,
|
||||
PolkitDetails *details,
|
||||
PolkitCheckAuthorizationFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gboolean polkit_authority_register_authentication_agent_sync (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *locale,
|
||||
const gchar *object_path,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gboolean polkit_authority_register_authentication_agent_with_options_sync (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *locale,
|
||||
const gchar *object_path,
|
||||
GVariant *options,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gboolean polkit_authority_unregister_authentication_agent_sync (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *object_path,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gboolean polkit_authority_authentication_agent_response_sync (PolkitAuthority *authority,
|
||||
const gchar *cookie,
|
||||
PolkitIdentity *identity,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
GList *polkit_authority_enumerate_temporary_authorizations_sync (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gboolean polkit_authority_revoke_temporary_authorizations_sync (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gboolean polkit_authority_revoke_temporary_authorization_by_id_sync (PolkitAuthority *authority,
|
||||
const gchar *id,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
void polkit_authority_enumerate_actions (PolkitAuthority *authority,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
GList * polkit_authority_enumerate_actions_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void polkit_authority_check_authorization (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *action_id,
|
||||
PolkitDetails *details,
|
||||
PolkitCheckAuthorizationFlags flags,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
PolkitAuthorizationResult *polkit_authority_check_authorization_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void polkit_authority_register_authentication_agent (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *locale,
|
||||
const gchar *object_path,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
|
||||
gboolean polkit_authority_register_authentication_agent_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
gboolean polkit_authority_register_authentication_agent_with_options_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void polkit_authority_register_authentication_agent_with_options (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *locale,
|
||||
const gchar *object_path,
|
||||
GVariant *options,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
void polkit_authority_unregister_authentication_agent (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
const gchar *object_path,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
gboolean polkit_authority_unregister_authentication_agent_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void polkit_authority_authentication_agent_response (PolkitAuthority *authority,
|
||||
const gchar *cookie,
|
||||
PolkitIdentity *identity,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
gboolean polkit_authority_authentication_agent_response_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void polkit_authority_enumerate_temporary_authorizations (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
GList *polkit_authority_enumerate_temporary_authorizations_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void polkit_authority_revoke_temporary_authorizations (PolkitAuthority *authority,
|
||||
PolkitSubject *subject,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
gboolean polkit_authority_revoke_temporary_authorizations_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
void polkit_authority_revoke_temporary_authorization_by_id (PolkitAuthority *authority,
|
||||
const gchar *id,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
gboolean polkit_authority_revoke_temporary_authorization_by_id_finish (PolkitAuthority *authority,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __POLKIT_AUTHORITY_H */
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "polkitcheckauthorizationflags.h"
|
||||
#include "polkitprivate.h"
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
|
||||
#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __POLKIT_AUTHORITY_FEATURES_H
|
||||
#define __POLKIT_AUTHORITY_FEATURES_H
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* PolkitAuthorityFeatures:
|
||||
* @POLKIT_AUTHORITY_FEATURES_NONE: No flags set.
|
||||
* @POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION: The authority supports temporary authorizations
|
||||
* that can be obtained through authentication.
|
||||
*
|
||||
* Flags describing features supported by the Authority implementation.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
POLKIT_AUTHORITY_FEATURES_NONE = 0,
|
||||
POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION = (1<<0),
|
||||
} PolkitAuthorityFeatures;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __POLKIT_AUTHORITY_FEATURES_H */
|
||||
@@ -0,0 +1,304 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "polkitauthorizationresult.h"
|
||||
#include "polkitdetails.h"
|
||||
#include "polkitprivate.h"
|
||||
|
||||
/**
|
||||
* SECTION:polkitauthorizationresult
|
||||
* @title: PolkitAuthorizationResult
|
||||
* @short_description: Result for checking an authorization
|
||||
* @stability: Stable
|
||||
*
|
||||
* This class represents the result you get when checking for an authorization.
|
||||
*/
|
||||
|
||||
/**
|
||||
* PolkitAuthorizationResult:
|
||||
*
|
||||
* The #PolkitAuthorizationResult struct should not be accessed directly.
|
||||
*/
|
||||
struct _PolkitAuthorizationResult
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
gboolean is_authorized;
|
||||
gboolean is_challenge;
|
||||
|
||||
PolkitDetails *details;
|
||||
};
|
||||
|
||||
struct _PolkitAuthorizationResultClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (PolkitAuthorizationResult, polkit_authorization_result, G_TYPE_OBJECT);
|
||||
|
||||
static void
|
||||
polkit_authorization_result_init (PolkitAuthorizationResult *authorization_result)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
polkit_authorization_result_finalize (GObject *object)
|
||||
{
|
||||
PolkitAuthorizationResult *authorization_result;
|
||||
|
||||
authorization_result = POLKIT_AUTHORIZATION_RESULT (object);
|
||||
|
||||
if (authorization_result->details != NULL)
|
||||
g_object_unref (authorization_result->details);
|
||||
|
||||
if (G_OBJECT_CLASS (polkit_authorization_result_parent_class)->finalize != NULL)
|
||||
G_OBJECT_CLASS (polkit_authorization_result_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
polkit_authorization_result_class_init (PolkitAuthorizationResultClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
gobject_class->finalize = polkit_authorization_result_finalize;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* polkit_authorization_result_new:
|
||||
* @is_authorized: Whether the subject is authorized.
|
||||
* @is_challenge: Whether the subject is authorized if more
|
||||
* information is provided. Must be %FALSE unless @is_authorized is
|
||||
* %TRUE.
|
||||
* @details: (allow-none): Must be %NULL unless @is_authorized is %TRUE
|
||||
*
|
||||
* Creates a new #PolkitAuthorizationResult object.
|
||||
*
|
||||
* Returns: A #PolkitAuthorizationResult object. Free with g_object_unref().
|
||||
*/
|
||||
PolkitAuthorizationResult *
|
||||
polkit_authorization_result_new (gboolean is_authorized,
|
||||
gboolean is_challenge,
|
||||
PolkitDetails *details)
|
||||
{
|
||||
PolkitAuthorizationResult *authorization_result;
|
||||
|
||||
g_return_val_if_fail (details == NULL || POLKIT_IS_DETAILS (details), NULL);
|
||||
|
||||
authorization_result = POLKIT_AUTHORIZATION_RESULT (g_object_new (POLKIT_TYPE_AUTHORIZATION_RESULT, NULL));
|
||||
authorization_result->is_authorized = is_authorized;
|
||||
authorization_result->is_challenge = is_challenge;
|
||||
authorization_result->details = details != NULL ? g_object_ref (details) : NULL;
|
||||
|
||||
return authorization_result;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_authorization_result_get_is_authorized:
|
||||
* @result: A #PolkitAuthorizationResult.
|
||||
*
|
||||
* Gets whether the subject is authorized.
|
||||
*
|
||||
* If the authorization is temporary, use polkit_authorization_result_get_temporary_authorization_id()
|
||||
* to get the opaque identifier for the temporary authorization.
|
||||
*
|
||||
* Returns: Whether the subject is authorized.
|
||||
*/
|
||||
gboolean
|
||||
polkit_authorization_result_get_is_authorized (PolkitAuthorizationResult *result)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_AUTHORIZATION_RESULT (result), FALSE);
|
||||
return result->is_authorized;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_authorization_result_get_is_challenge:
|
||||
* @result: A #PolkitAuthorizationResult.
|
||||
*
|
||||
* Gets whether the subject is authorized if more information is provided.
|
||||
*
|
||||
* Returns: Whether the subject is authorized if more information is provided.
|
||||
*/
|
||||
gboolean
|
||||
polkit_authorization_result_get_is_challenge (PolkitAuthorizationResult *result)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_AUTHORIZATION_RESULT (result), FALSE);
|
||||
return result->is_challenge;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_authorization_result_get_details:
|
||||
* @result: A #PolkitAuthorizationResult.
|
||||
*
|
||||
* Gets the details about the result.
|
||||
*
|
||||
* Returns: (allow-none) (transfer none): A #PolkitDetails object or
|
||||
* %NULL if there are no details. This object is owned by @result and
|
||||
* should not be freed by the caller.
|
||||
*/
|
||||
PolkitDetails *
|
||||
polkit_authorization_result_get_details (PolkitAuthorizationResult *result)
|
||||
{
|
||||
g_return_val_if_fail (POLKIT_IS_AUTHORIZATION_RESULT (result), NULL);
|
||||
return result->details;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_authorization_result_get_retains_authorization:
|
||||
* @result: A #PolkitAuthorizationResult.
|
||||
*
|
||||
* Gets whether authorization is retained if obtained via authentication. This can only be the case
|
||||
* if @result indicates that the subject can obtain authorization after challenge (cf.
|
||||
* polkit_authorization_result_get_is_challenge()), e.g. when the subject is not already authorized (cf.
|
||||
* polkit_authorization_result_get_is_authorized()).
|
||||
*
|
||||
* If the subject is already authorized, use polkit_authorization_result_get_temporary_authorization_id()
|
||||
* to check if the authorization is temporary.
|
||||
*
|
||||
* This method simply reads the value of the key/value pair in @details with the
|
||||
* key <literal>polkit.retains_authorization_after_challenge</literal>.
|
||||
*
|
||||
* Returns: %TRUE if the authorization is or will be temporary.
|
||||
*/
|
||||
gboolean
|
||||
polkit_authorization_result_get_retains_authorization (PolkitAuthorizationResult *result)
|
||||
{
|
||||
gboolean ret;
|
||||
PolkitDetails *details;
|
||||
|
||||
g_return_val_if_fail (POLKIT_IS_AUTHORIZATION_RESULT (result), FALSE);
|
||||
|
||||
ret = FALSE;
|
||||
details = polkit_authorization_result_get_details (result);
|
||||
if (details != NULL && polkit_details_lookup (details, "polkit.retains_authorization_after_challenge") != NULL)
|
||||
ret = TRUE;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_authorization_result_get_temporary_authorization_id:
|
||||
* @result: A #PolkitAuthorizationResult.
|
||||
*
|
||||
* Gets the opaque temporary authorization id for @result if @result indicates the
|
||||
* subject is authorized and the authorization is temporary rather than one-shot or
|
||||
* permanent.
|
||||
*
|
||||
* You can use this string together with the result from
|
||||
* polkit_authority_enumerate_temporary_authorizations() to get more details
|
||||
* about the temporary authorization or polkit_authority_revoke_temporary_authorization_by_id()
|
||||
* to revoke the temporary authorization.
|
||||
*
|
||||
* If the subject is not authorized, use polkit_authorization_result_get_retains_authorization()
|
||||
* to check if the authorization will be retained if obtained via authentication.
|
||||
*
|
||||
* This method simply reads the value of the key/value pair in @details with the
|
||||
* key <literal>polkit.temporary_authorization_id</literal>.
|
||||
*
|
||||
* Returns: (allow-none): The opaque temporary authorization id for
|
||||
* @result or %NULL if not available. Do not free this string, it
|
||||
* is owned by @result.
|
||||
*/
|
||||
const gchar *
|
||||
polkit_authorization_result_get_temporary_authorization_id (PolkitAuthorizationResult *result)
|
||||
{
|
||||
const gchar *ret;
|
||||
PolkitDetails *details;
|
||||
|
||||
g_return_val_if_fail (POLKIT_IS_AUTHORIZATION_RESULT (result), NULL);
|
||||
|
||||
ret = NULL;
|
||||
details = polkit_authorization_result_get_details (result);
|
||||
if (details != NULL)
|
||||
ret = polkit_details_lookup (details, "polkit.temporary_authorization_id");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* polkit_authorization_result_get_dismissed:
|
||||
* @result: A #PolkitAuthorizationResult.
|
||||
*
|
||||
* Gets whether the authentication request was dismissed / canceled by the user.
|
||||
*
|
||||
* This method simply reads the value of the key/value pair in @details with the
|
||||
* key <literal>polkit.dismissed</literal>.
|
||||
*
|
||||
* Returns: %TRUE if the authentication request was dismissed, %FALSE otherwise.
|
||||
*
|
||||
* Since: 0.101
|
||||
*/
|
||||
gboolean
|
||||
polkit_authorization_result_get_dismissed (PolkitAuthorizationResult *result)
|
||||
{
|
||||
gboolean ret;
|
||||
PolkitDetails *details;
|
||||
|
||||
g_return_val_if_fail (POLKIT_IS_AUTHORIZATION_RESULT (result), FALSE);
|
||||
|
||||
ret = FALSE;
|
||||
details = polkit_authorization_result_get_details (result);
|
||||
if (details != NULL && polkit_details_lookup (details, "polkit.dismissed") != NULL)
|
||||
ret = TRUE;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
PolkitAuthorizationResult *
|
||||
polkit_authorization_result_new_for_gvariant (GVariant *value)
|
||||
{
|
||||
gboolean is_authorized;
|
||||
gboolean is_challenge;
|
||||
GVariant *dict;
|
||||
PolkitDetails *details;
|
||||
PolkitAuthorizationResult *ret;
|
||||
|
||||
g_variant_get (value,
|
||||
"(bb@a{ss})",
|
||||
&is_authorized,
|
||||
&is_challenge,
|
||||
&dict);
|
||||
details = polkit_details_new_for_gvariant (dict);
|
||||
g_variant_unref (dict);
|
||||
|
||||
ret = polkit_authorization_result_new (is_authorized, is_challenge, details);
|
||||
g_object_unref (details);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Note that this returns a floating value. */
|
||||
GVariant *
|
||||
polkit_authorization_result_to_gvariant (PolkitAuthorizationResult *authorization_result)
|
||||
{
|
||||
PolkitDetails *details;
|
||||
|
||||
details = polkit_authorization_result_get_details (authorization_result);
|
||||
return g_variant_new ("(bb@a{ss})",
|
||||
polkit_authorization_result_get_is_authorized (authorization_result),
|
||||
polkit_authorization_result_get_is_challenge (authorization_result),
|
||||
polkit_details_to_gvariant (details)); /* A floating value */
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
|
||||
#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __POLKIT_AUTHORIZATION_RESULT_H
|
||||
#define __POLKIT_AUTHORIZATION_RESULT_H
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <polkit/polkittypes.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define POLKIT_TYPE_AUTHORIZATION_RESULT (polkit_authorization_result_get_type())
|
||||
#define POLKIT_AUTHORIZATION_RESULT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), POLKIT_TYPE_AUTHORIZATION_RESULT, PolkitAuthorizationResult))
|
||||
#define POLKIT_AUTHORIZATION_RESULT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), POLKIT_TYPE_AUTHORIZATION_RESULT, PolkitAuthorizationResultClass))
|
||||
#define POLKIT_AUTHORIZATION_RESULT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), POLKIT_TYPE_AUTHORIZATION_RESULT, PolkitAuthorizationResultClass))
|
||||
#define POLKIT_IS_AUTHORIZATION_RESULT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), POLKIT_TYPE_AUTHORIZATION_RESULT))
|
||||
#define POLKIT_IS_AUTHORIZATION_RESULT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), POLKIT_TYPE_AUTHORIZATION_RESULT))
|
||||
|
||||
#if 0
|
||||
typedef struct _PolkitAuthorizationResult PolkitAuthorizationResult;
|
||||
#endif
|
||||
typedef struct _PolkitAuthorizationResultClass PolkitAuthorizationResultClass;
|
||||
|
||||
GType polkit_authorization_result_get_type (void) G_GNUC_CONST;
|
||||
PolkitAuthorizationResult *polkit_authorization_result_new (gboolean is_authorized,
|
||||
gboolean is_challenge,
|
||||
PolkitDetails *details);
|
||||
PolkitDetails *polkit_authorization_result_get_details (PolkitAuthorizationResult *result);
|
||||
gboolean polkit_authorization_result_get_is_authorized (PolkitAuthorizationResult *result);
|
||||
gboolean polkit_authorization_result_get_is_challenge (PolkitAuthorizationResult *result);
|
||||
gboolean polkit_authorization_result_get_retains_authorization (PolkitAuthorizationResult *result);
|
||||
const gchar *polkit_authorization_result_get_temporary_authorization_id (PolkitAuthorizationResult *result);
|
||||
gboolean polkit_authorization_result_get_dismissed (PolkitAuthorizationResult *result);
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __POLKIT_AUTHORIZATION_RESULT_H */
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "polkitcheckauthorizationflags.h"
|
||||
#include "polkitprivate.h"
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General
|
||||
* Public License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Author: David Zeuthen <davidz@redhat.com>
|
||||
*/
|
||||
|
||||
#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
|
||||
#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __POLKIT_CHECK_AUTHORIZATION_FLAGS_H
|
||||
#define __POLKIT_CHECK_AUTHORIZATION_FLAGS_H
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* PolkitCheckAuthorizationFlags:
|
||||
* @POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE: No flags set.
|
||||
* @POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION: If the subject can obtain the authorization
|
||||
* through authentication, and an authentication agent is available, then attempt to do so. Note, this
|
||||
* means that the method used for checking authorization is likely to block for a long time.
|
||||
*
|
||||
* Possible flags when checking authorizations.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE = 0,
|
||||
POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION = (1<<0),
|
||||
} PolkitCheckAuthorizationFlags;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __POLKIT_CHECK_AUTHORIZATION_FLAGS_H */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user