Implementing an Authorization Policy on I/O Levelin GNU/Linux

Total Page:16

File Type:pdf, Size:1020Kb

Implementing an Authorization Policy on I/O Levelin GNU/Linux Implementing an authorization policy on I/O level in GNU/Linux Bachelor’s thesis in Computer Science and Engineering JEAN-PHILIPPE GREEN MATTIAS HOLMBERG FILIP LEVENSTAM TOBIAS TILLSTRÖM Department of Computer Science and Engineering CHALMERS UNIVERSITY OF TECHNOLOGY Göteborg, Sweden 2013 Bachelor’s thesis 2013:10 BACHELOR’S THESIS IN COMPUTER SCIENCE AND ENGINEERING Implementing an authorization policy on I/O level in GNU/Linux JEAN-PHILIPPE GREEN MATTIAS HOLMBERG FILIP LEVENSTAM TOBIAS TILLSTRÖM Department of Computer Science and Engineering CHALMERS UNIVERSITY OF TECHNOLOGY Göteborg, Sweden 2013 Implementing an authorization policy on I/O level in GNU/Linux JEAN-PHILIPPE GREEN MATTIAS HOLMBERG FILIP LEVENSTAM TOBIAS TILLSTRÖM © JEAN-PHILIPPE GREEN, MATTIAS HOLMBERG, FILIP LEVENSTAM, TOBIAS TILLSTRÖM, 2013 Bachelor’s thesis 2013:10 ISSN 1654-4676 Department of Computer Science and Engineering Chalmers University of Technology SE-412 96 Göteborg Sweden Telephone: +46 (0)31-772 1000 Cover: Illustration of the problem with saving files and its solution Chalmers Reproservice Göteborg, Sweden 2013 Implementing an authorization policy on I/O level in GNU/Linux Bachelor’s thesis in Computer Science and Engineering JEAN-PHILIPPE GREEN MATTIAS HOLMBERG FILIP LEVENSTAM TOBIAS TILLSTRÖM Department of Computer Science and Engineering Chalmers University of Technology Abstract The purpose of this project has been to implement enhanced functionality for privileged file operations when using graphical programs in the GNU/Linux operating system. Today, administrative tasks are done by acquiring privileges before the program in question is started. One goal of this thesis is to show how to make administration easier, by instead requesting authentication when an operation is to be performed. When working with a text editor such as Gedit, it is often possible to open system files and make changes to the loaded text. Saving these changes will however be impossible, due to the user not having write permission on the file. The ideas presented in this report will give the user the possibility of having this action authorized, making it possible to save. Implementations of these ideas can also enhance the security of the system by allowing less code to be run with elevated privileges. Instead of running Gedit with higher privileges, only the operation to save the changes will be done privileged. Less code running with the power to change system files means that if a vulnerability is found in some part of the system, there is less risk of an attacker using it for an intrusion. The results of this project are twofold: (1) A mechanism has been created for changing a user’s permissions on a file. This acts as a helper program for other programs to use when lacking permissions on a certain file. This helper program uses Polkit for authentication and, if the user is authorized, elevates the user’s permissions on the affected file. The program can now continue to perform the requested file operation. The user’s permissions on the files will be restored after a set amount of time. (2) The other result consists of guidelines on how to complete this task without changing any permissions on files. Instead this alternative solution can offer the same functionality in a more straightforward way. This by relaying the file operations to a custom made backend. Keywords: Authorization, Graphical User Interface, Access Control List, Polkit i ii Nomenclature ACL A list of permissions attached to a file. (Access Control List). Backend Processing that occurs behind the scenes in software and is not seen by the user. Client A program that as part of its execution sends requests to a server. Daemon A process running in the background, usually without immediate contact with the user. D-Bus A message bus for communication between processes. (Inter-process communication) Distribution An operating system kernel, such as Linux, bundled with software utilities such as a graphical environment and a package manager. GIO A library providing a virtual filesystem API. (Gnome Input/Output). GLib A general purpose library providing data structures and utility functions. (Gnome Library). Gnome A common desktop environment. (GNU Network Object Model Environment). GNU A operating system based on Unix conventions. (GNU is Not Unix). GVfs A virtual file system for the Gnome desktop. (Gnome virtual file system). I/O The communication between a computer and the outside world. (Input/Output). IPC A mechanism for a process to communicate with another process. (Inter-process communication) Kernel The main component in an operating system acting as a bridge between applications and the hardware. Mount Making a device available in the file system tree. Library A collection of functions provided for other programs to use. Linux The kernel replacing the Hurd kernel in GNU, forming the operating system GNU/Linux. Permission The permissions flags define what different users are allowed to do with files. Polkit(PolicyKit) An authorization framework for communication between unprivileged and privileged processes. POSIX A family of standards for system calls in operating systems defined by IEEE. It consists of several parts including standards for core services, thread control and real-time services. Process An instance of a program. it is possible to have several processes running one program. Protocol A family of rules used for defining the communication between different end points. Proxy The procedure of relaying an action to another process. Root An abstract user that is the owner of all system files and also has the highest level of privileges. Server A program that answers requests from client programs. Setuid A flag that when set on a program will execute it with the privileges of the owner rather than the calling user. It can also be the system call for executing processes as another user. (Set user ID upon execution). Shell script A script written for a command line interpreter of an operating system. Stream A data flow, or more precise, a sequence of information that is transmitted. Sudo A program for running a program or command as another user. Running as root is default. (Substitute user do). Unix An operating system with conventions that are used in many other operating systems, such as GNU. User A user is an agent using services on a computer. It may, but does not necessarily, represent an actual person. Virtual Memory The memory visible to a process. iii iv Contents Abstract i Nomenclature iii Contents v Figures vi Listings vi 1 Introduction 1 1.1 Purpose ................................................... 2 1.2 Requirements ................................................ 3 1.2.1 Function ................................................. 3 1.2.2 Interoperability .............................................. 3 1.2.3 Security .................................................. 3 1.2.4 Performance ............................................... 3 1.3 Limitations ................................................. 3 1.4 Method ................................................... 4 1.5 Layout of the report ............................................ 4 2 GNU/Linux basics 5 2.1 Users and groups .............................................. 5 2.2 Directories and files ............................................ 5 2.3 Unix permission model ........................................... 5 2.4 Access Control Lists ............................................ 6 2.5 Process management ............................................ 6 2.6 Memory management in Linux ...................................... 6 2.7 The user ID model and setuid ....................................... 7 2.7.1 UIDs of processes ............................................ 7 2.7.2 Security aspects of setuid programs .................................. 8 3 Project-specific libraries, concepts and tools 9 3.1 D-Bus .................................................... 9 3.2 Polkit .................................................... 9 3.3 Gnome-core ................................................. 10 3.3.1 GLib .................................................... 11 3.3.2 GObject .................................................. 11 3.3.3 GIO/GVfs ................................................ 11 4 Suggested implementation methods 13 4.1 Proxy file operations to another process with the required privileges ................. 13 4.2 Temporarily changing the ACL ...................................... 13 5 Result & Discussion 15 5.1 ACL ..................................................... 15 5.1.1 Result ................................................... 15 5.1.2 Discussion ................................................. 16 5.2 Proxy .................................................... 17 5.2.1 Result ................................................... 17 5.2.2 Discussion ................................................. 17 5.3 Discussion of our method ......................................... 18 6 Conclusions 19 v A Mail conversation with Alexander Larsson 21 B Client and Server for ACL implementation 23 References 31 Figures 1.1 Gedit in read-only mode .......................................... 1 1.2 Gedit - after implementation ....................................... 2 2.1 Two processes sharing the same physical memory ............................ 7 3.1 Flowchart of general polkit usage. .................................... 9 3.2 Overview of Gnome with focus on GIO/GVfs .............................. 10 4.1 Flowchart of the ideal proxy-implementation.
Recommended publications
  • Desktop Migration and Administration Guide
    Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Last Updated: 2021-05-05 Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Marie Doleželová Red Hat Customer Content Services [email protected] Petr Kovář Red Hat Customer Content Services [email protected] Jana Heves Red Hat Customer Content Services Legal Notice Copyright © 2018 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
    [Show full text]
  • 1. D-Bus a D-Bus FAQ Szerint D-Bus Egy Interprocessz-Kommunikációs Protokoll, És Annak Referenciamegvalósítása
    Az Udev / D-Bus rendszer - a modern asztali Linuxok alapja A D-Bus rendszer minden modern Linux disztribúcióban jelen van, sőt mára már a Linux, és más UNIX jellegű, sőt nem UNIX rendszerek (különösen a desktopon futó változatok) egyik legalapvetőbb technológiája, és az ismerete a rendszergazdák számára lehetővé tesz néhány rendkívül hasznos trükköt, az alkalmazásfejlesztőknek pedig egyszerűen KÖTELEZŐ ismerniük. Miért ilyen fontos a D-Bus? Mit csinál? D-Bus alapú technológiát teszik lehetővé többek között azt, hogy közönséges felhasználóként a kedvenc asztali környezetünkbe bejelentkezve olyan feladatokat hajtsunk végre, amiket a kernel csak a root felasználónak engedne meg. Felmountolunk egy USB meghajtót? NetworkManagerrel konfiguráljuk a WiFi-t, a 3G internetet vagy bármilyen más hálózati csatolót, és kapcsolódunk egy hálózathoz? Figyelmeztetést kapunk a rendszertől, hogy új szoftverfrissítések érkeztek, majd telepítjük ezeket? Hibernáljuk, felfüggesztjük a gépet? A legtöbb esetben ma már D-Bus alapú technológiát használunk ilyen esetben. A D-Bus lehetővé teszi, hogy egymástól függetlenül, jellemzően más UID alatt indított szoftverösszetevők szabványos és biztonságos módon igénybe vegyék egymás szolgáltatásait. Ha valaha lesz a Linuxhoz professzionális desktop tűzfal vagy vírusirtó megoldás, a dolgok jelenlegi állasa szerint annak is D- Bus technológiát kell használnia. A D-Bus technológia legfontosabb ihletője a KDE DCOP rendszere volt, és mára a D-Bus leváltotta a DCOP-ot, csakúgy, mint a Gnome Bonobo technológiáját. 1. D-Bus A D-Bus FAQ szerint D-Bus egy interprocessz-kommunikációs protokoll, és annak referenciamegvalósítása. Ezen referenciamegvalósítás egyik összetevője, a libdbus könyvtár a D- Bus szabványnak megfelelő kommunikáció megvalósítását segíti. Egy másik összetevő, a dbus- daemon a D-Bus üzenetek routolásáért, szórásáért felelős.
    [Show full text]
  • The Glib/GTK+ Development Platform
    The GLib/GTK+ Development Platform A Getting Started Guide Version 0.8 Sébastien Wilmet March 29, 2019 Contents 1 Introduction 3 1.1 License . 3 1.2 Financial Support . 3 1.3 Todo List for this Book and a Quick 2019 Update . 4 1.4 What is GLib and GTK+? . 4 1.5 The GNOME Desktop . 5 1.6 Prerequisites . 6 1.7 Why and When Using the C Language? . 7 1.7.1 Separate the Backend from the Frontend . 7 1.7.2 Other Aspects to Keep in Mind . 8 1.8 Learning Path . 9 1.9 The Development Environment . 10 1.10 Acknowledgments . 10 I GLib, the Core Library 11 2 GLib, the Core Library 12 2.1 Basics . 13 2.1.1 Type Definitions . 13 2.1.2 Frequently Used Macros . 13 2.1.3 Debugging Macros . 14 2.1.4 Memory . 16 2.1.5 String Handling . 18 2.2 Data Structures . 20 2.2.1 Lists . 20 2.2.2 Trees . 24 2.2.3 Hash Tables . 29 2.3 The Main Event Loop . 31 2.4 Other Features . 33 II Object-Oriented Programming in C 35 3 Semi-Object-Oriented Programming in C 37 3.1 Header Example . 37 3.1.1 Project Namespace . 37 3.1.2 Class Namespace . 39 3.1.3 Lowercase, Uppercase or CamelCase? . 39 3.1.4 Include Guard . 39 3.1.5 C++ Support . 39 1 3.1.6 #include . 39 3.1.7 Type Definition . 40 3.1.8 Object Constructor . 40 3.1.9 Object Destructor .
    [Show full text]
  • CIS Ubuntu Linux 18.04 LTS Benchmark
    CIS Ubuntu Linux 18.04 LTS Benchmark v1.0.0 - 08-13-2018 Terms of Use Please see the below link for our current terms of use: https://www.cisecurity.org/cis-securesuite/cis-securesuite-membership-terms-of-use/ 1 | P a g e Table of Contents Terms of Use ........................................................................................................................................................... 1 Overview ............................................................................................................................................................... 12 Intended Audience ........................................................................................................................................ 12 Consensus Guidance ..................................................................................................................................... 13 Typographical Conventions ...................................................................................................................... 14 Scoring Information ..................................................................................................................................... 14 Profile Definitions ......................................................................................................................................... 15 Acknowledgements ...................................................................................................................................... 17 Recommendations ............................................................................................................................................
    [Show full text]
  • Clutter Version 1.10.0, Updated 9 May 2012
    Guile-GNOME: Clutter version 1.10.0, updated 9 May 2012 Matthew Allum and OpenedHand LTD Intel Corporation This manual is for (gnome clutter) (version 1.10.0, updated 9 May 2012) Copyright 2006,2007,2008 OpenedHand LTD Copyright 2009,2010,2011,2012 Intel Corporation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy of the GNU Free Documentation License from the Free Software Foundation by visiting their Web site or by writing to: The Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA i Short Contents 1 Overview :::::::::::::::::::::::::::::::::::::::::::: 1 2 ClutterAction :::::::::::::::::::::::::::::::::::::::: 2 3 ClutterActorMeta ::::::::::::::::::::::::::::::::::::: 3 4 ClutterActor ::::::::::::::::::::::::::::::::::::::::: 5 5 ClutterAlignConstraint:::::::::::::::::::::::::::::::: 63 6 ClutterAlpha :::::::::::::::::::::::::::::::::::::::: 65 7 ClutterAnimatable ::::::::::::::::::::::::::::::::::: 68 8 Implicit Animations :::::::::::::::::::::::::::::::::: 69 9 ClutterAnimator ::::::::::::::::::::::::::::::::::::: 76 10 ClutterBackend :::::::::::::::::::::::::::::::::::::: 82 11 ClutterBinLayout :::::::::::::::::::::::::::::::::::: 84 12 ClutterBindConstraint :::::::::::::::::::::::::::::::: 87 13 Key Bindings:::::::::::::::::::::::::::::::::::::::: 90
    [Show full text]
  • A Brief History of GNOME
    A Brief History of GNOME Jonathan Blandford <[email protected]> July 29, 2017 MANCHESTER, UK 2 A Brief History of GNOME 2 Setting the Stage 1984 - 1997 A Brief History of GNOME 3 Setting the stage ● 1984 — X Windows created at MIT ● ● 1985 — GNU Manifesto Early graphics system for ● 1991 — GNU General Public License v2.0 Unix systems ● 1991 — Initial Linux release ● Created by MIT ● 1991 — Era of big projects ● Focused on mechanism, ● 1993 — Distributions appear not policy ● 1995 — Windows 95 released ● Holy Moly! X11 is almost ● 1995 — The GIMP released 35 years old ● 1996 — KDE Announced A Brief History of GNOME 4 twm circa 1995 ● Network Transparency ● Window Managers ● Netscape Navigator ● Toolkits (aw, motif) ● Simple apps ● Virtual Desktops / Workspaces A Brief History of GNOME 5 Setting the stage ● 1984 — X Windows created at MIT ● 1985 — GNU Manifesto ● Founded by Richard Stallman ● ● 1991 — GNU General Public License v2.0 Our fundamental Freedoms: ○ Freedom to run ● 1991 — Initial Linux release ○ Freedom to study ● 1991 — Era of big projects ○ Freedom to redistribute ○ Freedom to modify and ● 1993 — Distributions appear improve ● 1995 — Windows 95 released ● Also, a set of compilers, ● 1995 — The GIMP released userspace tools, editors, etc. ● 1996 — KDE Announced This was an overtly political movement and act A Brief History of GNOME 6 Setting the stage ● 1984 — X Windows created at MIT “The licenses for most software are ● 1985 — GNU Manifesto designed to take away your freedom to ● 1991 — GNU General Public License share and change it. By contrast, the v2.0 GNU General Public License is intended to guarantee your freedom to share and ● 1991 — Initial Linux release change free software--to make sure the ● 1991 — Era of big projects software is free for all its users.
    [Show full text]
  • Pygtk GUI Programming Pygtk GUI Programming Table of Contents Pygtk GUI Programming
    PyGTK GUI programming PyGTK GUI programming Table of Contents PyGTK GUI programming...............................................................................................................................1 Chapter 1. Introduzione....................................................................................................................................2 1.1. Primo approccio...............................................................................................................................2 1.2. Il toolkit PyGTK..............................................................................................................................2 1.3. PyGTK e Glade................................................................................................................................2 1.4. IDE o editor......................................................................................................................................4 1.5. Installazione.....................................................................................................................................6 1.5.1. Installazione su piattaforma GNU/Linux...............................................................................6 1.5.2. Installazione su piattaforma Windows...................................................................................6 1.6. Supporto e help................................................................................................................................6 Chapter 2. I Widget, le classi ed un
    [Show full text]
  • Building a 3D Graphic User Interface in Linux
    Freescale Semiconductor Document Number: AN4045 Application Note Rev. 0, 01/2010 Building a 3D Graphic User Interface in Linux Building Appealing, Eye-Catching, High-End 3D UIs with i.MX31 by Multimedia Application Division Freescale Semiconductor, Inc. Austin, TX To compete in the market, apart from aesthetics, mobile Contents 1. X Window System . 2 devices are expected to provide simplicity, functionality, and 1.1. UI Issues . 2 elegance. Customers prefer attractive mobile devices and 2. Overview of GUI Options for Linux . 3 expect new models to be even more attractive. For embedded 2.1. Graphics Toolkit . 3 devices, a graphic user interface is essential as it enhances 2.2. Open Graphics Library® . 4 3. Clutter Toolkit - Solution for GUIs . 5 the ease of use. Customers expect the following qualities 3.1. Features . 5 when they use a Graphical User Interface (GUI): 3.2. Clutter Overview . 6 3.3. Creating the Scenegraph . 7 • Quick and responsive feedback for user actions that 3.4. Behaviors . 8 clarifies what the device is doing. 3.5. Animation by Frames . 9 • Natural animations. 3.6. Event Handling . 10 4. Conclusion . 10 • Provide cues, whenever appropriate, instead of 5. Revision History . 11 lengthy textual descriptions. • Quick in resolving distractions when the system is loading or processing. • Elegant and beautiful UI design. This application note provides an overview and a guide for creating a complex 3D User Interface (UI) in Linux® for the embedded devices. © Freescale Semiconductor, Inc., 2010. All rights reserved. X Window System 1 X Window System The X Window system (commonly X11 or X) is a computer software system and network protocol that implements X display protocol and provides windowing on bitmap displays.
    [Show full text]
  • SUSE Linux Enterprise Server 15 SP2 Security and Hardening Guide Security and Hardening Guide SUSE Linux Enterprise Server 15 SP2
    SUSE Linux Enterprise Server 15 SP2 Security and Hardening Guide Security and Hardening Guide SUSE Linux Enterprise Server 15 SP2 Introduces basic concepts of system security, covering both local and network security aspects. Shows how to use the product inherent security software like AppArmor, SELinux, or the auditing system that reliably collects information about any security-relevant events. Supports the administrator with security-related choices and decisions in installing and setting up a secure SUSE Linux Enterprise Server and additional processes to further secure and harden that installation. Publication Date: September 24, 2021 SUSE LLC 1800 South Novell Place Provo, UT 84606 USA https://documentation.suse.com Copyright © 2006– 2021 SUSE LLC and contributors. All rights reserved. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled “GNU Free Documentation License”. For SUSE trademarks, see https://www.suse.com/company/legal/ . All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its aliates. Asterisks (*) denote third-party trademarks. All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • GTK+ Properties
    APPENDIX A ■ ■ ■ GTK+ Properties GObject provides a property system, which allows you to customize how widgets interact with the user and how they are drawn on the screen. In the following sections, you will be provided with a complete reference to widget and child properties available in GTK+ 2.10. GTK+ Properties Every class derived from GObject can create any number of properties. In GTK+, these properties store information about the current state of the widget. For example, GtkButton has a property called relief that defines the type of relief border used by the button in its normal state. In the following code, g_object_get() was used to retrieve the current value stored by the button’s relief property. This function accepts a NULL-terminated list of properties and vari- ables to store the returned value. You can also use g_object_set() to set each object property as well. g_object_get (button, "relief", &value, NULL); There are a great number of properties available to widgets; Tables A-1 to A-90 provide a full properties list for each widget and object in GTK+ 2.10. Remember that object properties are inherited from parent widgets, so you should investigate a widget’s hierarchy for a full list of properties. For more information on each object, you should reference the API documentation. Table A-1. GtkAboutDialog Properties Property Type Description artists GStrv A list of individuals who helped create the artwork used by the application. This often includes information such as an e-mail address or URL for each artist, which will be displayed as a link.
    [Show full text]
  • Fedora 25 Networking Guide
    Fedora 25 Networking Guide Configuration and Administration of Networking for Fedora 25 Stephen Wadeley Networking Guide Draft Fedora 25 Networking Guide Configuration and Administration of Networking for Fedora 25 Edition 1 Author Stephen Wadeley [email protected] Copyright © 2016 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https://fedoraproject.org/wiki/ Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
    [Show full text]