/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to initramfs-tools-script

  • Committer: Teddy Hogeborn
  • Date: 2008-08-29 05:53:59 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080829055359-wkdasnyxtylmnxus
* mandos.xml (EXAMPLE): Replaced all occurences of command name with
                        "&COMMANDNAME;".

* plugins.d/password-prompt.c (main): Improved some documentation
                                      strings.  Do perror() of
                                      tcgetattr() fails.  Add debug
                                      output if interrupted by signal.
                                      Loop over write() instead of
                                      using fwrite() when outputting
                                      password.  Add debug output if
                                      getline() returns 0, unless it
                                      was caused by a signal.  Add
                                      exit status code to debug
                                      output.

* plugins.d/password-prompt.xml: Changed all single quotes to double
                                 quotes for consistency.  Removed
                                 <?xml-stylesheet>.
  (ENTITY TIMESTAMP): New.  Automatically updated by Emacs time-stamp
                      by using Emacs local variables.
  (/refentry/refentryinfo/title): Changed to "Mandos Manual".
  (/refentry/refentryinfo/productname): Changed to "Mandos".
  (/refentry/refentryinfo/date): New; set to "&TIMESTAMP;".
  (/refentry/refentryinfo/copyright): Split copyright holders.
  (/refentry/refnamediv/refpurpose): Improved wording.
  (SYNOPSIS): Fix to use correct markup.  Add short options.
  (DESCRIPTION, OPTIONS): Improved wording.
  (OPTIONS): Improved wording.  Use more correct markup.  Document
             short options.
  (EXIT STATUS): Add text.
  (ENVIRONMENT): Document use of "cryptsource" and "crypttarget".
  (FILES): REMOVED.
  (BUGS): Add text.
  (EXAMPLE): Added some examples.
  (SECURITY): Added text.
  (SEE ALSO): Remove reference to mandos(8).  Add reference to
              crypttab(5).

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
7
7
 
8
8
# This script should be installed as
9
 
# "/usr/share/initramfs-tools/scripts/init-premount/mandos" which will
10
 
# eventually be "/scripts/init-premount/mandos" in the initrd.img
11
 
# file.
 
9
# "/usr/share/initramfs-tools/scripts/local-top/mandos" which will
 
10
# eventually be "/scripts/local-top/mandos" in the initrd.img file.
12
11
 
13
 
PREREQ="udev"
 
12
# No initramfs pre-requirements; we must instead run BEFORE cryptroot.
 
13
# This is not a problem, since cryptroot forces itself to run LAST.
 
14
PREREQ=""
14
15
prereqs()
15
16
{
16
 
    echo "$PREREQ"
 
17
     echo "$PREREQ"
17
18
}
18
19
 
19
20
case $1 in
20
21
prereqs)
21
 
        prereqs
22
 
        exit 0
23
 
        ;;
24
 
esac
25
 
 
26
 
. /scripts/functions
27
 
 
28
 
for param in `cat /proc/cmdline`; do
29
 
    case "$param" in
30
 
        ip=*) IPOPTS="${param#ip=}" ;;
31
 
        mandos=*)
32
 
            # Split option line on commas
33
 
            old_ifs="$IFS"
34
 
            IFS="$IFS,"
35
 
            for mpar in ${param#mandos=}; do
36
 
                IFS="$old_ifs"
37
 
                case "$mpar" in
38
 
                    off) exit 0 ;;
39
 
                    connect) connect="" ;;
40
 
                    connect:*) connect="${mpar#connect:}" ;;
41
 
                    *) log_warning_msg "$0: Bad option ${mpar}" ;;
42
 
                esac
43
 
            done
44
 
            unset mpar
45
 
            IFS="$old_ifs"
46
 
            unset old_ifs
47
 
            ;;
48
 
    esac
49
 
done
50
 
unset param
51
 
 
52
 
chmod a=rwxt /tmp
53
 
 
54
 
test -r /conf/conf.d/cryptroot
55
 
test -w /conf/conf.d
56
 
 
57
 
# Get DEVICE from /conf/initramfs.conf and other files
58
 
. /conf/initramfs.conf
59
 
for conf in /conf/conf.d/*; do
60
 
    [ -f ${conf} ] && . ${conf}
61
 
done
62
 
if [ -e /conf/param.conf ]; then
63
 
    . /conf/param.conf
64
 
fi
65
 
 
66
 
# Override DEVICE from sixth field of ip= kernel option, if passed
67
 
case "$IPOPTS" in
68
 
    *:*:*:*:*:*)                # At least six fields
69
 
        # Remove the first five fields
70
 
        device="${IPOPTS#*:*:*:*:*:}"
71
 
        # Remove all fields except the first one
72
 
        DEVICE="${device%%:*}"
73
 
        ;;
74
 
esac
75
 
 
76
 
# Add device setting (if any) to plugin-runner.conf
77
 
if [ "${DEVICE+set}" = set ]; then
78
 
    # Did we get the device from an ip= option?
79
 
    if [ "${device+set}" = set ]; then
80
 
        # Let ip= option override local config; append:
81
 
        cat <<-EOF >>/conf/conf.d/mandos/plugin-runner.conf
82
 
        
83
 
        --options-for=mandos-client:--interface=${DEVICE}
84
 
EOF
85
 
    else
86
 
        # Prepend device setting so any later options would override:
87
 
        sed -i -e \
88
 
            '1i--options-for=mandos-client:--interface='"${DEVICE}" \
89
 
            /conf/conf.d/mandos/plugin-runner.conf
90
 
    fi
91
 
fi
92
 
unset device
93
 
 
94
 
# If we are connecting directly, run "configure_networking" (from
95
 
# /scripts/functions); it needs IPOPTS and DEVICE
96
 
if [ "${connect+set}" = set ]; then
97
 
    set +e                      # Required by library functions
98
 
    configure_networking
99
 
    set -e
100
 
    if [ -n "$connect" ]; then
101
 
        cat <<-EOF >>/conf/conf.d/mandos/plugin-runner.conf
102
 
        
103
 
        --options-for=mandos-client:--connect=${connect}
104
 
EOF
105
 
    fi
106
 
fi
 
22
     prereqs
 
23
     exit 0
 
24
     ;;
 
25
esac
 
26
 
 
27
test -w /conf/conf.d/cryptroot
107
28
 
108
29
# Do not replace cryptroot file unless we need to.
109
30
replace_cryptroot=no
110
31
 
111
32
# Our keyscript
112
33
mandos=/lib/mandos/plugin-runner
113
 
test -x "$mandos"
114
34
 
115
35
# parse /conf/conf.d/cryptroot.  Format:
116
36
# target=sda2_crypt,source=/dev/sda2,key=none,keyscript=/foo/bar/baz