aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/setuid.scm
blob: 83111d932c7456c5d1c46263f0594bbf278b146b (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix 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 General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu system setuid)
  #:use-module (guix records)
  #:export (setuid-program
            setuid-program?
            setuid-program-program
            setuid-program-setuid?
            setuid-program-setgid?
            setuid-program-user
            setuid-program-group

            file-like->setuid-program))

;;; Commentary:
;;;
;;; Data structures representing setuid/setgid programs.  This is meant to be
;;; used both on the host side and at run time--e.g., in activation snippets.
;;;
;;; Code:

(define-record-type* <setuid-program>
  setuid-program make-setuid-program
  setuid-program?
  ;; Path to program to link with setuid permissions
  (program       setuid-program-program) ;file-like
  ;; Whether to set user setuid bit
  (setuid?       setuid-program-setuid? ;boolean
                 (default #t))
  ;; Whether to set group setgid bit
  (setgid?       setuid-program-setgid? ;boolean
                 (default #f))
  ;; The user this should be set to (defaults to root)
  (user          setuid-program-user    ;integer or string
                 (default 0))
  ;; Group we want to set this to (defaults to root)
  (group         setuid-program-group   ;integer or string
                 (default 0)))

(define (file-like->setuid-program program)
  (setuid-program (program program)))
PL....Ludovic Courtès 2020-06-23doc: cookbook: Mention "guix hash -rx" for Git checkouts....Ludovic Courtès 2020-06-23doc: cookbook: Clarify 'git-fetch' conventions....Ludovic Courtès 2020-06-04doc: cookbook: Add entry about getting substitutes through Tor....Brice Waegeneire 2020-06-02doc: cookbook: Add entry about Wireguard VPN....Marcin Karpezo 2020-05-25doc: cookbook: Add subsection about session locking with xss-lock....Chris Bøg 2020-05-05doc: cookbook: Fix sbcl-ttf-fonts package name....Jean-Baptiste Note 2020-04-30doc: cookbook: Rename stumpwm package to current state....Marcin Karpezo 2020-04-25doc: cookbook: Fix quotes....Nicolas Goaziou 2020-04-24doc: cookbook: Use @file for file names and extensions....Nicolas Goaziou 2020-04-24doc: cookbook: Fix misuses of double spacing....Nicolas Goaziou 2020-04-22doc: cookbook: Explain how to use bind mounts....Matthew Brooks 2020-03-30gnu: Add sbcl-stumpwm-ttf-fonts....Oleg Pykhalov 2020-01-17doc: cookbook: Avoid URL reference to the manual....Ludovic Courtès 2019-11-26doc: cookbook: Add cross-references to the Guile manual....Ludovic Courtès 2019-11-26doc: cookbook: Use @result{} & co. instead of a '>' prompt....Ludovic Courtès 2019-11-26doc: cookbook: Use Texinfo quotes....Ludovic Courtès 2019-11-26doc: cookbook: Add cross-reference about ./pre-inst-env....Ludovic Courtès 2019-11-26doc: cookbook: Use @lisp for Scheme snippets....Ludovic Courtès 2019-10-30doc: Explain how to switch profile from empty shell in "Profiles in Practice"....Pierre Neidhardt 2019-10-28doc: Link to SICP Info page in "A Scheme Crash Course"....Pierre Neidhardt 2019-10-28doc: Finish importing the "Packaging Tutorial"....Pierre Neidhardt 2019-10-28doc: Fix some typos in "Guix Profiles in Practice"....Pierre Neidhardt 2019-10-25doc: cookbook: Use "@lisp" for Scheme snippets....Ludovic Courtès 2019-10-24doc: Add "Guix Profiles in Practice" to the cookbook....Pierre Neidhardt 2019-09-18doc: Add Guix Cookbook....Ricardo Wurmus