|
Packit |
06dd63 |
(*
|
|
Packit |
06dd63 |
Module: Crypttab
|
|
Packit |
06dd63 |
Parses /etc/crypttab from the cryptsetup package.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Author: Frédéric Lespez <frederic.lespez@free.fr>
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
About: Reference
|
|
Packit |
06dd63 |
This lens tries to keep as close as possible to `man crypttab` where possible.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
About: License
|
|
Packit |
06dd63 |
This file is licensed under the LGPL v2+, like the rest of Augeas.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
About: Lens Usage
|
|
Packit |
06dd63 |
Sample usage of this lens in augtool
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
* Create a new entry for an encrypted block devices
|
|
Packit |
06dd63 |
> ins 01 after /files/etc/crypttab/*[last()]
|
|
Packit |
06dd63 |
> set /files/etc/crypttab/01/target crypt_sda2
|
|
Packit |
06dd63 |
> set /files/etc/crypttab/01/device /dev/sda2
|
|
Packit |
06dd63 |
> set /files/etc/crypttab/01/password /dev/random
|
|
Packit |
06dd63 |
> set /files/etc/crypttab/01/opt swap
|
|
Packit |
06dd63 |
* Print the entry applying to the "/dev/sda2" device
|
|
Packit |
06dd63 |
> print /files/etc/crypttab/01
|
|
Packit |
06dd63 |
* Remove the entry applying to the "/dev/sda2" device
|
|
Packit |
06dd63 |
> rm /files/etc/crypttab/*[device="/dev/sda2"]
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
About: Configuration files
|
|
Packit |
06dd63 |
This lens applies to /etc/crypttab. See <filter>.
|
|
Packit |
06dd63 |
*)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
module Crypttab =
|
|
Packit |
06dd63 |
autoload xfm
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(************************************************************************
|
|
Packit |
06dd63 |
* Group: USEFUL PRIMITIVES
|
|
Packit |
06dd63 |
*************************************************************************)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Group: Separators *)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: sep_tab *)
|
|
Packit |
06dd63 |
let sep_tab = Sep.tab
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: comma *)
|
|
Packit |
06dd63 |
let comma = Sep.comma
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Group: Generic primitives *)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: eol *)
|
|
Packit |
06dd63 |
let eol = Util.eol
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: comment *)
|
|
Packit |
06dd63 |
let comment = Util.comment
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: empty *)
|
|
Packit |
06dd63 |
let empty = Util.empty
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: word *)
|
|
Packit |
06dd63 |
let word = Rx.word
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: optval *)
|
|
Packit |
06dd63 |
let optval = /[A-Za-z0-9_.:-]+/
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: target *)
|
|
Packit |
06dd63 |
let target = Rx.device_name
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: fspath *)
|
|
Packit |
06dd63 |
let fspath = Rx.fspath
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(************************************************************************
|
|
Packit |
06dd63 |
* Group: ENTRIES
|
|
Packit |
06dd63 |
*************************************************************************)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(************************************************************************
|
|
Packit |
06dd63 |
* View: comma_sep_list
|
|
Packit |
06dd63 |
* A comma separated list of options (opt=value or opt)
|
|
Packit |
06dd63 |
*************************************************************************)
|
|
Packit |
06dd63 |
let comma_sep_list (l:string) =
|
|
Packit |
06dd63 |
let value = [ label "value" . Util.del_str "=" . store optval ] in
|
|
Packit |
06dd63 |
let lns = [ label l . store word . value? ] in
|
|
Packit |
06dd63 |
Build.opt_list lns comma
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(************************************************************************
|
|
Packit |
06dd63 |
* View: record
|
|
Packit |
06dd63 |
* A crypttab record
|
|
Packit |
06dd63 |
*************************************************************************)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
let record = [ seq "entry" .
|
|
Packit |
06dd63 |
[ label "target" . store target ] . sep_tab .
|
|
Packit |
06dd63 |
[ label "device" . store fspath ] .
|
|
Packit |
06dd63 |
(sep_tab . [ label "password" . store fspath ] .
|
|
Packit |
06dd63 |
( sep_tab . comma_sep_list "opt")? )?
|
|
Packit |
06dd63 |
. eol ]
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(*
|
|
Packit |
06dd63 |
* View: lns
|
|
Packit |
06dd63 |
* The crypttab lens
|
|
Packit |
06dd63 |
*)
|
|
Packit |
06dd63 |
let lns = ( empty | comment | record ) *
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Variable: filter *)
|
|
Packit |
06dd63 |
let filter = (incl "/etc/crypttab")
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
let xfm = transform lns filter
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* coding: utf-8 *)
|