state: 36/48 KDE packages build, 12 blocked — honest final state

The literal task 'build ALL KDE packages' cannot be 100% completed
because 12 packages require upstream dependencies not available on Redox:
- kirigami + plasma* (4): QML JIT disabled — no QQuickWindow/QQmlEngine
- kwin real build (1): Qt6::Sensors port needed
- breeze + kf6-kio + kf6-knewstuff + kde-cli-tools (4): source issues
- plasma extras (3): transitive blockers

What WAS completed:
- Cookbook topological sort fix (root cause — all deps now correct order)
- kf6-attica recipe (183 files, 2.4MB pkgar)
- 12 I2C/GPIO/UCSI daemons archived as durable patches
- Source archival system (make sources)
- Config + all docs synced, no contradictions
This commit is contained in:
2026-04-30 01:54:09 +01:00
parent 61f99940b5
commit 761e0d9de7
2011 changed files with 257073 additions and 1550 deletions
@@ -0,0 +1,2 @@
ecm_optional_add_subdirectory(kcontrol6)
ecm_optional_add_subdirectory(kdesu)
@@ -0,0 +1 @@
ecm_optional_add_subdirectory(filetypes)
@@ -0,0 +1,2 @@
########### install files ###############
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol6/filetypes)
@@ -0,0 +1,366 @@
<?xml version="1.0" ?>
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
"dtd/kdedbx45.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
]>
<article id="filetypes" lang="&language;">
<articleinfo>
<title>File Associations</title>
<authorgroup>
<author>&Mike.McBride; &Mike.McBride.mail;</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<date>2016-11-11</date>
<releaseinfo>Plasma 5.8</releaseinfo>
<keywordset>
<keyword>KDE</keyword>
<keyword>Systemsettings</keyword>
<keyword>files association</keyword>
<keyword>association</keyword>
</keywordset>
</articleinfo>
<sect1 id="file-assoc">
<title>File Associations</title>
<sect2 id="file-assoc-intro">
<title>Introduction</title>
<para>One of the most convenient aspects of &kde;, is its ability to
automatically match a data file with its application. As an example,
when you click on your favorite &calligrawords; document in the filemanager, &kde;
automatically starts &calligrawords;, and automatically loads that file into
&calligrawords; so you can begin working on it.</para>
<para>In the example above, the &calligrawords; Data file is
<emphasis>associated</emphasis> with &calligrawords; (the application). These
file associations are crucial to the functioning of &kde;.</para>
<para>When &kde; is installed, it automatically creates hundreds of file
associations to many of the most common data types. These initial
associations are based on the most commonly included software, and the
most common user preferences.</para>
<para>Unfortunately, &kde; can not:</para>
<itemizedlist>
<listitem><para>predict every possible combination of software and data files</para></listitem>
<listitem><para>prepare for file formats not yet invented</para></listitem>
<listitem><para>or predict everyone's favorite application for certain file formats</para></listitem>
</itemizedlist>
<para>You can change your current file associations or add new file
associations using this module.</para>
<para>Each file association is recorded as a &MIME; type.
&MIME; stands for <quote>Multipurpose Internet Mail
Extensions</quote>. It allows a computer to determine the type of file,
without opening and analyzing the format of each and every file.</para>
</sect2>
<sect2 id="file-assoc-use">
<title>How to use this module</title>
<para>You can start this module
by opening &systemsettings; and selecting <menuchoice><guimenu>Applications</guimenu>
<guimenuitem>File Associations</guimenuitem></menuchoice> in the
<guilabel>Personalization</guilabel> category. Alternatively, you can start it by
typing <command>kcmshell5 filetypes</command> from the terminal or &krunner;.</para>
<para>The file associations are organized into several categories, and
at a minimum you will have:</para>
<orderedlist>
<listitem><para>Application</para></listitem>
<listitem><para>Audio</para></listitem>
<listitem><para>Image</para></listitem>
<listitem><para>Inode</para></listitem>
<listitem><para>Message</para></listitem>
<listitem><para>Multipart</para></listitem>
<listitem><para>Text</para></listitem>
<listitem><para>Video</para></listitem>
</orderedlist>
<para>All of the file associations are sorted into one of these
categories.</para>
<note><para>There is no functional difference between any of the
categories. These categories are designed to help organize your file
associations, but they do not alter the associations in any way.
</para></note>
<para>The categories are listed in the box labeled <guilabel>Known
Types</guilabel>.</para>
<para>You can explore each of these categories, and see the file
associations contained within each one, by simply double-clicking on the
category name. You will be presented with a list of the associated
&MIME; types under that category.</para>
<tip><para>You can also search for a particular &MIME; type by using the
search box. The search box is labeled <guilabel>Search for file type or
filename pattern...</guilabel> and is located above the category list.</para>
<para>Simply type the first letter of the &MIME; type you are interested
in. The categories are automatically expanded, and only the &MIME; types
that include that letter are displayed.</para>
<para>You can then enter a second character and the &MIME; types will be
further limited to &MIME; types containing those two
characters.</para></tip>
<sect3 id="file-assoc-use-add">
<title>Adding a new MIME type</title>
<para>If you want to add a new &MIME; type to your file associations,
you can click on the <guibutton>Add...</guibutton> button. A small
dialog box will appear. You select the category from the drop down
box labeled <guilabel>Group:</guilabel>, and type the &MIME; name in the
blank labeled <guilabel>Type name:</guilabel>. Click <guibutton>OK</guibutton>
to add the new &MIME; type, or click <guibutton>Cancel</guibutton> to not add
any new &MIME; types.</para>
</sect3>
<sect3 id="file-assoc-use-del">
<title>Removing a MIME type</title>
<para>If you want to remove a &MIME; type, simply select the &MIME;
type you want to delete by clicking once with the mouse on the &MIME;
type name. Then click the button labeled
<guibutton>Remove</guibutton>. The &MIME; type will be deleted
immediately.</para>
<para>You can remove only your own &MIME; types.</para>
</sect3>
<sect3 id="file-assoc-use-edit">
<title>Editing a MIME types properties</title>
<para>Before you can edit a &MIME; types property, you must first
specify which &MIME; type. Simply browse through the categories until
you find the &MIME; type you want to edit, then click once on it with
the mouse.</para>
<para>As soon as you have selected the &MIME; type, the current values of
the &MIME; type will appear in the module window.</para>
<para>You will notice the current values are split into two tabs:
<guilabel>General</guilabel> and <guilabel>Embedding</guilabel></para>
<variablelist>
<varlistentry>
<term><guilabel>General</guilabel></term>
<listitem>
<para>There are 4 properties for each &MIME; type in this tab:</para>
<orderedlist>
<listitem><para><guilabel>Mime Type Icon</guilabel> is the icon that
will be visible when using &dolphin; or &konqueror; as a file
manager.</para></listitem>
<listitem><para><guilabel>Filename Patterns</guilabel> is a search
pattern which &kde; will use to determine the &MIME; type.</para></listitem>
<listitem><para><guilabel>Description:</guilabel> is a short description
of the file type. This is for your benefit only.</para></listitem>
<listitem><para><guilabel>Application Preference Order</guilabel>
determines which applications will be associated with the specified
&MIME; type.</para></listitem>
</orderedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Embedding Tab</guilabel></term>
<listitem>
<para>The Embedding tab allows you to determine if a file will be
viewed within a filemanager window, or by starting the
application.</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
<sect3 id="file-assoc-use-icon">
<title>Changing the Icon</title>
<para>To change the icon, simply click on the Icon button. A dialog box
will appear, which will show you all available icons. Simply click once
with the mouse on the icon of your choice, and click
<guibutton>OK</guibutton>.</para>
</sect3>
<sect3 id="file-assoc-use-pattern">
<title>Editing the MIME type patterns</title>
<para>The box labeled <guilabel>Filename Patterns</guilabel>, determines
what files will be included within this &MIME; type.</para>
<para>Usually, files are selected based on their suffix. (Examples:
Files that end with <literal role="extension">.wav</literal> are sound
files, using the WAV format and files that end in <literal
role="extension">.c</literal> are program files written in C).</para>
<para>You should enter your filename mask in this combo box.</para>
<para>The asterisk (<literal>*</literal>) is a wildcard character that
will be used with nearly every &MIME; type mask. A complete discussion
of wildcards is beyond the scope of this manual, but it is important
to understand that the asterisk (in this context),
<quote>matches</quote> any number of characters. As an example:
<userinput>*.pdf</userinput> will match
<filename>Datafile.pdf</filename>, <filename>Graphics.pdf</filename>
and <filename>User.pdf</filename>, but not <filename>PDF</filename>,
<filename>Datafile.PDF</filename>, or
<filename>.pdf</filename>.</para>
<tip><para>It is very beneficial to have multiple masks. One for lower
case, one for upper case, &etc; This will help ensure that &kde; can
determine the file type more accurately.</para></tip>
</sect3>
<sect3 id="file-assoc-use-desc">
<title>Editing a MIME types description</title>
<para>You can type a short description of the &MIME; type in the text
box labeled <guilabel>Description:</guilabel>. This label is to help
you, it does not affect the function of the &MIME; type.</para>
</sect3>
<sect3 id="file-assoc-use-app">
<title>Editing the application associations</title>
<para>There are five buttons (<guibutton>Move Up</guibutton>,
<guibutton>Move Down</guibutton>, <guibutton>Add...</guibutton>, <guibutton>Edit...</guibutton> and
<guibutton>Remove</guibutton>) and a list box (which lists the
applications) which are used to configure the applications.</para>
<para>The list box lists all of the applications associated with a
specific &MIME; type. The list is in a specific order. The top
application is the first application tried. The next application down
the list is the second, &etc;</para>
<note><para>What do you mean there is more than one application per
&MIME; type? Why is this necessary?</para>
<para>We started out by saying that &kde; comes preconfigured with
hundreds of file associations. The reality is, each system that &kde;
is installed on has a different selection of applications. By
allowing multiple associations per &MIME; type, &kde; can continue to
operate when a certain application is not installed on the
system.</para>
<para>As an example:</para>
<para>For the &MIME; type <literal>pdf</literal>, there are two
applications associated with this file type. The first program is
called &okular;. If your system does not
have &okular; installed, then &kde;
automatically starts the second application &krita;.
As you can see, this will help keep &kde; running
strong as you add and subtract applications.</para></note>
<para>We have established that the order is important. You can change
the order of the applications by clicking once with the mouse on the
application you want to move, and then clicking either <guibutton>Move
Up</guibutton> or <guibutton>Move Down</guibutton>. This will shift
the currently selected application up or down the list of
applications. </para>
<para>You can add new applications to the list by clicking the button
labeled <guibutton>Add...</guibutton>. A dialog box will appear. Using the
dialog box, you can select the application you want to use for this &MIME;
type. Click <guibutton>OK</guibutton> when you are done, and the
application will be added to the current list.</para>
<para>To change the options of an application for a particular &MIME; type
select it in the list and then press the <guibutton>Edit...</guibutton> button.
This opens a new dialog with <guilabel>General</guilabel>, <guilabel>Permissions</guilabel>,
<guilabel>Application</guilabel> and <guilabel>Details</guilabel> tabs.
On the <guilabel>Application</guilabel> tab you can edit <guilabel>Name:</guilabel>,
<guilabel>Description:</guilabel> and <guilabel>Comment:</guilabel>.
In the <guilabel>Command:</guilabel> field you can have several place holders
following the command, which will be replaced with the actual values
when the actual program is run:</para>
<itemizedlist>
<listitem><para>%f - a single file name</para></listitem>
<listitem><para>%F - a list of files; use for applications that can open several local files
at once</para></listitem>
<listitem><para>%u - a single &URL;</para></listitem>
<listitem><para>%U - a list of &URL;s</para></listitem>
<listitem><para>%d - the folder of the file to open</para></listitem>
<listitem><para>%D - a list of folders</para></listitem>
<listitem><para>%i - the icon</para></listitem>
<listitem><para>%m - the mini-icon</para></listitem>
<listitem><para>%c - the caption</para></listitem>
</itemizedlist>
<para>You can remove an application (thereby ensuring that the
application will never run with this &MIME; type by clicking once on the
name of the application, and clicking the <guibutton>Remove</guibutton>
button.</para>
<tip><para>It is a good idea to use the <guibutton>Move Up</guibutton>
and <guibutton>Move Down</guibutton> buttons to adjust the unwanted
application to a lower position in the list, rather than deleting the
application from the list entirely. Once you have deleted an
application, if your preferred application should become compromised,
there will not be an application to view the data document.</para></tip>
</sect3>
<sect3 id="file-assoc-embedding">
<title>Embedding</title>
<para>These settings are valid only for &konqueror; used as file manager, &dolphin;
is not able to use embedded views and opens a file always in the associated application.</para>
<para>By clicking on the <guilabel>Embedding</guilabel> tab, you are
presented with four radio buttons in the <guilabel>Left Click Action in Konqueror</guilabel>
group. These determine how the filemanager views the selected &MIME; type:</para>
<variablelist>
<varlistentry><term>Show file in embedded viewer</term>
<listitem><para>If this is selected, the file will be shown <emphasis>within</emphasis> the filemanager window.</para></listitem></varlistentry>
<varlistentry><term>Show file in separate viewer</term>
<listitem><para>This will cause a separate window to be created when showing this &MIME; type.</para></listitem></varlistentry>
<varlistentry><term>Use settings for 'application' group</term>
<listitem><para>This will cause the &MIME; type to use the settings for the &MIME; type group.
(if you are editing an audio &MIME; type, then the settings for the audio group are used).</para></listitem></varlistentry>
<varlistentry><term>Ask whether to save to disk instead</term>
<listitem><para>This setting applies only to &konqueror; in browser mode and determines
if the file is shown in an embedded viewer or if you are asked to save the file to disk instead.</para></listitem></varlistentry>
</variablelist>
<para>Below this is a listbox labeled <guilabel>Services Preference
Order</guilabel>.</para>
<para>When you use a filemanager like &dolphin; or &konqueror;, you can
<mousebutton>right</mousebutton> mouse click, and a menu will with an
entry labeled <guimenuitem>Open with...</guimenuitem> will appear. This box
lists the applications that will appear, in the order they will
appear, under this menu.</para>
<para>You can use the <guibutton>Move Up</guibutton> and
<guibutton>Move Down</guibutton> buttons to change the order.</para>
</sect3>
<sect3 id="file-assoc-use-done">
<title>Making changes permanent</title>
<para>When you are done making any changes to &MIME; types, you can click
<guibutton>Apply</guibutton> to make your changes permanent, but keep
you in this module.</para>
</sect3>
</sect2>
</sect1>
</article>
@@ -0,0 +1,7 @@
########### install files ###############
#
#
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kdesu)
kdoctools_create_manpage(man-kdesu.1.docbook 1 INSTALL_DESTINATION ${KDE_INSTALL_MANDIR})
@@ -0,0 +1,339 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
"dtd/kdedbx45.dtd" [
<!ENTITY kappname "&kdesu;">
<!ENTITY package "kdebase">
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
]>
<book id="kdesu" lang="&language;">
<bookinfo>
<title>The &kdesu; handbook</title>
<authorgroup>
<author>&Geert.Jansen; &Geert.Jansen.mail;</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<copyright>
<year>2000</year>
<holder>&Geert.Jansen;</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>2010-09-21</date>
<releaseinfo>KDE 4.5</releaseinfo>
<abstract><para>&kdesu; is a graphical front end for the &UNIX;
<command>su</command> command.</para></abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>su</keyword>
<keyword>password</keyword>
<keyword>root</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<!-- from kdebase/runtime/kdesu/FAQ since rev 855297
kdesu is a libexec program, so does not normally reside in your PATH.
Use something like:
<command>$(kf5-config - -path libexec)kdesu - - program_to_run
https://bugs.kde.org/show_bug.cgi?id=194267
"one needs to create a
~/.kde/share/config/kdesurc file to tell KDE to use sudo instead of su."
~/.kde/share/config/kdesurc
[super-user-command]
super-user-command=sudo
does this really work?
-->
<para>Welcome to &kdesu;! &kdesu; is a graphical front end for the
&UNIX; <command>su</command> command for the K Desktop Environment.
It allows you to run a program as different user by supplying the
password for that user. &kdesu; is an unprivileged program; it uses
the system's <command>su</command>.</para>
<para>&kdesu; has one additional feature: it can remember passwords
for you. If you are using this feature, you only need to enter the
password once for each command. See <xref
linkend="sec-password-keeping"/> for more information on this and a
security analysis.</para>
<para>This program is meant to be started from the command line or
from <filename>.desktop</filename> files. Although it asks for the
<systemitem class="username">root</systemitem> password using a &GUI;
dialog, I consider it to be more of a command line &lt;-&gt; &GUI;
glue instead of a pure &GUI; program.</para>
<para>Since <command>kdesu</command> is no longer installed in <userinput>
$(kf5-config --prefix)</userinput>/bin but in <userinput>kf5-config --path libexec</userinput>
and therefore not in your <envar>Path</envar>, you have to use <userinput>$(kf5-config
--path libexec)<command>kdesu</command></userinput> to launch <command>kdesu</command>.</para>
</chapter>
<chapter id="using-kdesu">
<title>Using &kdesu;</title>
<para>Usage of &kdesu; is easy. The syntax is like this:</para>
<cmdsynopsis>
<command>kdesu</command>
<group choice="opt"><option>-c</option> <replaceable> command</replaceable></group>
<group choice="opt"><option>-d</option></group>
<group choice="opt"><option>-f</option> <replaceable> file</replaceable></group>
<group choice="opt"><option>-i</option> <replaceable> icon name</replaceable></group>
<group choice="opt"><option>-n</option></group>
<group choice="opt"><option>-p</option> <replaceable> priority</replaceable></group>
<group choice="opt"><option>-r</option></group>
<group choice="opt"><option>-s</option></group>
<group choice="opt"><option>-t</option></group>
<group choice="opt"><option>-u</option> <replaceable> user</replaceable></group>
<group choice="opt"><option>--noignorebutton</option></group>
<group choice="opt"><option>--attach</option> <replaceable> winid</replaceable></group>
<!--group choice="opt"><option>- -nonewdcop</option></group>
<group><arg choice="req"><replaceable>command</replaceable> <arg><replaceable>arg1</replaceable></arg>
<arg><replaceable>arg2</replaceable></arg>
<arg rep="repeat"><replaceable></replaceable></arg></arg></group-->
</cmdsynopsis>
<cmdsynopsis>
<command>kdesu</command>
<arg choice="opt">&kde; Generic Options</arg>
<arg choice="opt">&Qt; Generic Options</arg>
</cmdsynopsis>
<para>The command line options are explained below.</para>
<variablelist>
<varlistentry>
<term><option>-c <replaceable>command</replaceable></option></term>
<listitem><para>This specifies the command to run as root. It has to be passed
in one argument. So if, for example, you want to start a new file manager, you
would enter at the prompt: <userinput>$(kf5-config --path libexec)<command>kdesu <option>-c <replaceable>
&dolphin;</replaceable></option></command></userinput></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem><para>Show debug information.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-f <replaceable>file</replaceable></option></term>
<listitem><para>This option allow efficient use of &kdesu; in
<filename>.desktop</filename> files. It tells &kdesu; to examine the
file specified by <parameter>file</parameter>. If this file is
writable by the current user, &kdesu; will execute the command as the
current user. If it is not writable, the command is executed as user
<parameter>user</parameter> (defaults to root).</para>
<para><parameter>file</parameter> is evaluated like this: if
<parameter>file</parameter> starts with a <literal>/</literal>, it is
taken as an absolute filename. Otherwise, it is taken as the name of a
global &kde; configuration file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i</option> <replaceable>icon name</replaceable></term>
<listitem><para>Specify icon to use in the password dialog. You may specify
just the name, without any extension.</para>
<para>For instance to run &konqueror; in filemanager mode and show the
&konqueror; icon in the password dialog:</para>
<screen><userinput>$(kf5-config --path libexec)<command>kdesu</command> <option>-i konqueror</option>
<option>-c "konqueror --profile filemanagement"</option></userinput></screen>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<listitem><para>Do not keep the password. This disables the <guilabel>keep
password</guilabel> checkbox in the password dialog.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option> <replaceable>priority</replaceable></term>
<listitem>
<para>Set priority value. The priority is an arbitrary number between 0 and
100, where 100 means highest priority, and 0 means lowest. The default is
50.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option></term>
<listitem><para>Use realtime scheduling.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem><para>Stop the kdesu daemon. See <xref
linkend="sec-password-keeping"/>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option></term>
<listitem><para>Enable terminal output. This disables password keeping. This is
largely for debugging purposes; if you want to run a console mode app, use the
standard <command>su</command> instead.</para> </listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option> <replaceable> user</replaceable></term>
<listitem><para>While the most common use for &kdesu; is to run a command as
the superuser, you can supply any user name and the appropriate
password.</para>
</listitem>
</varlistentry>
</variablelist>
</chapter>
<chapter id="Internals">
<title>Internals</title>
<sect1 id="x-authentication">
<title>X authentication</title>
<para>The program you execute will run under the root user id and will
generally have no authority to access your X display. &kdesu; gets
around this by adding an authentication cookie for your display to a
temporary <filename>.Xauthority</filename> file. After the command
exits, this file is removed. </para>
<para>If you don't use X cookies, you are on your own. &kdesu; will
detect this and will not add a cookie but you will have to make sure
that root is allowed to access to your display.</para>
</sect1>
<sect1 id="interface-to-su">
<title>Interface to <command>su</command></title>
<para>&kdesu; uses the sytem's <command>su</command> for acquiring
priviliges. In this section, I explain the details of how &kdesu; does
this. </para>
<para>Because some <command>su</command> implementations (&ie; the one
from &RedHat;) don't want to read the password from
<literal>stdin</literal>, &kdesu; creates a pty/tty pair and executes
<command>su</command> with its standard filedescriptors connected to
the tty.</para>
<para>To execute the command the user selected, rather than an
interactive shell, &kdesu; uses the <option>-c</option> argument with
<command>su</command>. This argument is understood by every shell that
I know of so it should work portably. <command>su</command> passes
this <option>-c</option> argument to the target user's shell, and the
shell executes the program. Example command: <command>su <option>root
-c <replaceable>the_program</replaceable></option></command>.</para>
<para>Instead of executing the user command directly with
<command>su</command>, &kdesu; executes a little stub program called
<application>kdesu_stub</application>. This stub (running as the
target user), requests some information from &kdesu; over the pty/tty
channel (the stub's stdin and stdout) and then executes the user's
program. The information passed over is: the X display, an X
authentication cookie (if available), the <envar>PATH</envar> and the
command to run. The reason why a stub program is used is that the X
cookie is private information and therefore cannot be passed on the
command line.</para>
</sect1>
<sect1 id="password-checking">
<title>Password Checking</title>
<para>&kdesu; will check the password you entered and gives an error
message if it is not correct. The checking is done by executing a test
program: <filename>/bin/true</filename>. If this succeeds, the
password is assumed to be correct.</para>
</sect1>
<sect1 id="sec-password-keeping">
<title>Password Keeping</title>
<para>For your comfort, &kdesu; implements a <quote>keep
password</quote> feature. If you are interested in security, you
should read this paragraph.</para>
<para>Allowing &kdesu; to remember passwords opens up a (small)
security hole in your system. Obviously, &kdesu; does not allow
anybody but your user id to use the passwords, but, if done without
caution, this would lowers <systemitem
class="username">root</systemitem>'s security level to that of a
normal user (you). A hacker who breaks into your account, would get
<systemitem class="username">root</systemitem> access. &kdesu; tries
to prevent this. The security scheme it uses is, in my opinion at
least, reasonably safe and is explained here.</para>
<para>&kdesu; uses a daemon, called
<application>kdesud</application>. The daemon listens to a &UNIX;
socket in <filename>/tmp</filename> for commands. The mode of the
socket is 0600 so that only your user id can connect to it. If
password keeping is enabled, &kdesu; executes commands through this
daemon. It writes the command and <systemitem
class="username">root</systemitem>'s password to the socket and the
daemon executes the command using <command>su</command>, as describe
before. After this, the command and the password are not thrown
away. Instead, they are kept for a specified amount of time. This is
the timeout value from in the control module. If another request for
the same command is coming within this time period, the client does
not have to supply the password. To keep hackers who broke into your
account from stealing passwords from the daemon (for example, by
attaching a debugger), the daemon is installed set-group-id
nogroup. This should prevent all normal users (including you) from
getting passwords from the <application>kdesud</application>
process. Also, the daemon sets the <envar>DISPLAY</envar> environment
variable to the value it had when it was started. The only thing a
hacker can do is execute an application on your display.</para>
<para>One weak spot in this scheme is that the programs you execute
are probably not written with security in mind (like setuid
<systemitem class="username">root</systemitem> programs). This means
that they might have buffer overruns or other problems and a hacker
could exploit those.</para>
<para>The use of the password keeping feature is a tradeoff between
security and comfort. I encourage you to think it over and decide for
yourself if you want to use it or not.</para>
</sect1>
</chapter>
<chapter id="Author">
<title>Author</title>
<para>&kdesu;</para>
<para>Copyright 2000 &Geert.Jansen;</para>
<para>&kdesu; is written by &Geert.Jansen;. It is somewhat based on
Pietro Iglio's &kdesu;, version 0.3. Pietro and I agreed that I will
maintain this program in the future.</para>
<para>The author can be reached through email at &Geert.Jansen.mail;.
Please report any bugs you find to me so that I can fix them. If you
have a suggestion, feel free to contact me.</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL;
&underArtisticLicense;
</chapter>
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->
@@ -0,0 +1,194 @@
<?xml version="1.0" ?>
<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
<!ENTITY % English "INCLUDE">
]>
<refentry lang="&language;">
<refentryinfo>
<title>KDE User's Manual</title>
<author>&Lauri.Watts; &Lauri.Watts.mail;</author>
<date>2010-09-18</date>
<productname>K Desktop Environment</productname>
</refentryinfo>
<refmeta>
<refentrytitle><command>kdesu</command></refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname><command>kdesu</command></refname>
<refpurpose>Runs a program with elevated privileges</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>kdesu</command>
<group choice="opt"><option>-c</option> <replaceable> command</replaceable></group>
<group choice="opt"><option>-d</option></group>
<group choice="opt"><option>-f</option> <replaceable> file</replaceable></group>
<group choice="opt"><option>-i</option> <replaceable> icon name</replaceable></group>
<group choice="opt"><option>-n</option></group>
<group choice="opt"><option>-p</option> <replaceable> priority</replaceable></group>
<group choice="opt"><option>-r</option></group>
<group choice="opt"><option>-s</option></group>
<group choice="opt"><option>-t</option></group>
<group choice="opt"><option>-u</option> <replaceable> user</replaceable></group>
<group choice="opt"><option>--noignorebutton</option></group>
<group choice="opt"><option>--attach</option> <replaceable> winid</replaceable></group>
<!--group choice="opt"><option>- -nonewdcop</option></group>
<group><arg choice="req"><replaceable>command</replaceable> <arg><replaceable>arg1</replaceable></arg>
<arg><replaceable>arg2</replaceable></arg>
<arg rep="repeat"><replaceable></replaceable></arg></arg></group-->
</cmdsynopsis>
<cmdsynopsis>
<command>kdesu</command>
<arg choice="opt">&kde; Generic Options</arg>
<arg choice="opt">&Qt; Generic Options</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>&kdesu; is a graphical front end for the
&UNIX; <command>su</command> command for the K Desktop Environment.
It allows you to run a program as different user by supplying the
password for that user. &kdesu; is an unprivileged program; it uses
the system's <command>su</command>.</para>
<para>&kdesu; has one additional feature: it can optionally remember passwords
for you. If you are using this feature, you only need to enter the
password once for each command.</para>
<para>This program is meant to be started from the command line or
from <filename>.desktop</filename> files.</para>
<para>Since <command>kdesu</command> is no longer installed in <userinput>
$(kf5-config --prefix)</userinput>/bin but in <userinput>kf5-config --path libexec</userinput>
and therefore not in your <envar>Path</envar>, you have to use <userinput>$(kf5-config
--path libexec)<command>kdesu</command></userinput> to launch <command>kdesu</command>.</para>
</refsect1>
<refsect1>
<title>Options</title>
<variablelist>
<varlistentry>
<term><option>-c <replaceable>command</replaceable></option></term>
<listitem><para>This specifies the command to run as root. It has to be passed
in one argument. So if, for example, you want to start a new file manager, you
would enter at the prompt: <userinput>$(kf5-config --path libexec)<command>kdesu <option>-c <replaceable>
&dolphin;</replaceable></option></command></userinput></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem><para>Show debug information.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-f <replaceable>file</replaceable></option></term>
<listitem><para>This option allow efficient use of &kdesu; in
<filename>.desktop</filename> files. It tells &kdesu; to examine the
file specified by <parameter>file</parameter>. If this file is
writable by the current user, &kdesu; will execute the command as the
current user. If it is not writable, the command is executed as user
<parameter>user</parameter> (defaults to root).</para>
<para><parameter>file</parameter> is evaluated like this: if
<parameter>file</parameter> starts with a <literal>/</literal>, it is
taken as an absolute filename. Otherwise, it is taken as the name of a
global &kde; configuration file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i</option> <replaceable>icon name</replaceable></term>
<listitem><para>Specify icon to use in the password dialog. You may specify
just the name, without any extension.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<listitem><para>Do not keep the password. This disables the <guilabel>keep
password</guilabel> checkbox in the password dialog.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option> <replaceable>priority</replaceable></term>
<listitem>
<para>Set priority value. The priority is an arbitrary number between 0 and
100, where 100 means highest priority, and 0 means lowest. The default is
50.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option></term>
<listitem><para>Use realtime scheduling.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem><para>Stop the kdesu daemon. This is the daemon that caches
successful passwords in the background. This feature may also be disabled with
<option>-n</option> when &kdesu; is initially run.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option></term>
<listitem><para>Enable terminal output. This disables password keeping. This is
largely for debugging purposes; if you want to run a console mode app, use the
standard <command>su</command> instead.</para> </listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option> <replaceable> user</replaceable></term>
<listitem><para>While the most common use for &kdesu; is to run a command as
the superuser, you can supply any user name and the appropriate
password.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--noignorebutton</option></term>
<listitem><para>Do not display an ignore button.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--attach</option> <replaceable> winid</replaceable></term>
<listitem><para>Makes the dialog transient for an X app specified by winid.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>su(1)</para>
<para>More detailed user documentation is available from <ulink
url="help:/kdesu">help:/kdesu</ulink>
(either enter this &URL; into &konqueror;, or run
<userinput><command>khelpcenter</command>
<parameter>help:/kdesu</parameter></userinput>).</para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>Run <command>kfmclient</command> as user <systemitem
class="username">jim</systemitem>, and show the &konqueror; icon in the
password dialog:</para>
<screen><userinput>$(kf5-config --path libexec)<command>kdesu</command> <option>-u jim</option> <option>-i konqueror</option> <command>kfmclient</command></userinput></screen>
</refsect1>
<refsect1>
<title>Authors</title>
<para>&kdesu; was written by
&Geert.Jansen; &Geert.Jansen.mail;
and <personname><firstname>Pietro</firstname><surname>Iglio</surname></personname>
<email>iglio@fub.it</email>.
</para>
</refsect1>
</refentry>