|
|
1.1 root 1: #!/bin/sh
2: # TrueCrypt install script
3:
4: BIN_DIR=/usr/local/bin
5: MAN_DIR=/usr/local/man
6: MOD_DIR=/lib/modules/$(uname -r)/extra
1.1.1.2 root 7: BIN_PERM=755
1.1 root 8:
9: umask 022
10:
11: error ()
12: {
13: echo "Error: $*" >&2
14: }
15:
16: # Prerequisites
17:
18: echo "Checking installation requirements..."
19:
20: [ $(id -u) -ne 0 ] && error "Administrator (root) privileges required" && exit 1
21:
22: if ! modprobe -V >&- 2>&- || ! rmmod -V >&- 2>&-
23: then
24: error "modprobe or rmmod not found. TrueCrypt requires kernel module tools."
25: exit 1
26: fi
27:
28: if [ ! -c /dev/mapper/control -a ! -L /dev/mapper/control ]
29: then
30: echo -n "/dev/mapper/control not found - create? [Y/n]: "
31: read A
32: if [ "$A" = "" -o "$A" = "y" -o "$A" = "Y" ]
33: then
34: mkdir /dev/mapper 2>/dev/null && chmod 755 /dev/mapper
35: mknod -m 600 /dev/mapper/control c 10 63
36: fi
37: fi
38:
1.1.1.3 ! root 39: lsmod | grep -q ^dm_mod
! 40: [ $? -ne 0 ] && modprobe dm-mod >&- 2>&- && sleep 1
1.1 root 41:
1.1.1.3 ! root 42: if ! dmsetup targets >&-
1.1 root 43: then
44: error "TrueCrypt requires device mapper tools (dmsetup) 1.00.08 or later."
45: exit 1
46: fi
47:
48: if [ ! -b /dev/loop0 -a ! -b /dev/loop/0 -a ! -b /dev/loop1 ]
49: then
50: echo -n "No loopback device found - create? [Y/n]: "
51: read A
52: if [ "$A" = "y" -o "$A" = "Y" ]
53: then
54: for I in 0 1 2 3 4 5 6 7
55: do
56: mknod -m 600 /dev/loop$I b 7 $I
57: done
58: fi
59: fi
60:
61: rmmod truecrypt >&- 2>&-
62: if grep -q "^truecrypt " /proc/modules
63: then
64: error "Please dismount all mounted TrueCrypt volumes first."
65: exit 1
66: fi
67:
68:
69: # Build
70:
71: if [ ! -f Kernel/truecrypt.ko -o ! -f Cli/truecrypt ]
72: then
73: ./build.sh
74: [ $? -ne -0 ] && error "Build failed - installation aborted" && exit 1
75: fi
76:
77:
78: # Test
79:
80: echo -n "Testing truecrypt... "
81: ./Cli/truecrypt --test >/dev/null 2>/dev/null
1.1.1.2 root 82: [ $? -ne 0 ] && echo "FAILED" && exit 1
1.1 root 83: echo Done.
84:
85:
86: # Installation
87:
88: echo
89: echo -n "Install binaries to [$BIN_DIR]: "
90: read A
91: [ "$A" ] && BIN_DIR=$A
1.1.1.3 ! root 92: [ ! -d "$BIN_DIR" ] && error "$BIN_DIR does not exist" && exit 1
1.1 root 93:
94: echo -n "Install man page to [$MAN_DIR]: "
95: read A
96: [ "$A" ] && MAN_DIR=$A
1.1.1.3 ! root 97: [ ! -d "$MAN_DIR/man1" ] && error "$MAN_DIR/man1 does not exist" && exit 1
1.1 root 98: MAN_DIR=$MAN_DIR/man1
99:
100: echo -n "Allow non-admin users to run TrueCrypt [y/N]: "
101: read A
1.1.1.3 ! root 102: [ "$A" = "y" -o "$A" = "Y" ] && BIN_PERM=4755
1.1 root 103:
104: echo -n "Installing kernel module... "
105: # make "KERNEL_SRC=$KERNEL_SRC" install >/dev/null
1.1.1.3 ! root 106: mkdir "$MOD_DIR" 2>&- # some distributions omit extra directory
! 107: cp Kernel/truecrypt.ko "$MOD_DIR" && chmod 600 $MOD_DIR/truecrypt.ko && depmod -a
1.1 root 108: [ $? -ne 0 ] && error "Failed to install kernel module" && exit 1
109: echo Done.
110:
111: echo -n "Installing truecrypt to $BIN_DIR... "
112: cp Cli/truecrypt "$BIN_DIR" && chown root:root "$BIN_DIR/truecrypt" && chmod $BIN_PERM "$BIN_DIR/truecrypt"
113: [ $? -ne 0 ] && error "Failed to install truecrypt" && exit 1
114: echo Done.
115:
116: echo -n "Installing truecrypt man page to $MAN_DIR... "
117: cp Cli/Man/truecrypt.1 "$MAN_DIR" && chown root:root "$MAN_DIR/truecrypt.1" && chmod 644 "$MAN_DIR/truecrypt.1"
118: [ $? -ne 0 ] && error "Failed to install truecrypt man page" && exit 1
119: echo Done.
120:
121: exit 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.