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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
#
# This mkbuild 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 2 of the License, or any later version.
#
# This mkbuild 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
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place - Suite 330, Boston, MA 02111-1307, USA
#
#--------------------
# Personal variables
#--------------------
# Author name
[[SLACKBUILD AUTHOR]]="Silvio Rhatto"
# Initials author name
[[SLACKBUILD AUTHOR INITIALS]]="rha"
#------------------------
# Construction Variables
#------------------------
# Dependency list input
[[SLACK REQUIRED]]="rssh"
# SlackBuild model
[[SLACKBUILD MODEL]]="generic.mkSlackBuild"
# SlackBuild PATH in Slack.Sarava tree
[[SLACKBUILD PATH]]="app/shells/rssh-chroot"
[[REST OF DOINST.SH]]="( echo Please check if $CHROOT_BASE/dev/null was correctly created )"
# TODO: remove this when mkbuild became able to run without it
[[DOWNLOAD FOLDER URL]]="http://downloads.sourceforge.net/rssh/rssh-2.3.2.tar.gz"
[[PACKAGE NAME]]="rssh-chroot"
#---------------------
# SlackBuild Sections
#---------------------
# Default sections:
# head, set_variables, slkflags, start_structure, untar_source,
# make_package, install_package, build_package
# Warning: don't remove '#>>' and "#<<" tags.
#>> Start SlackBuild Sections:
on: head
on: slackbuildrc
on: set_variables
off: slkflags
on: error_codes
on: start_structure
off: create_build_user_and_group
off: download_source
off: md5sum_download_and_check_0
off: md5sum_download_and_check_1
off: gpg_signature_check
on: manifest_check
off: untar_source
off: patch_source
off: configure
on: make_package
off: install_package
off: strip_binaries
off: compress_manpages
off: compress_info_files
off: install_documentation
on: slackdesc
off: move_config_files
on: postinstall_script
on: slack_required
on: build_package
on: clean_builds
#<< End SlackBuild Sections
#------------------
# Sections changes
#------------------
#>slackdesc
rssh-chroot: rssh-chroot: a chroot jail to use with rssh restricted secure shell
rssh-chroot:
rssh-chroot:
rssh-chroot:
rssh-chroot:
rssh-chroot:
rssh-chroot:
rssh-chroot:
rssh-chroot:
rssh-chroot:
rssh-chroot:
#<slackdesc
#>make_package
# Adjust to where your rssh chroot system will be located
CHROOT_BASE="/var/users"
mkdir -p $PKG/$CHROOT_BASE/{bin,etc,lib,lib/tls,usr/lib,usr/libexec,usr/bin,usr/doc,home,dev}
if [ "$ARCH" == "x86_64" ]; then
mkdir -p $PKG/$CHROOT_BASE/{lib64/tls,usr/lib64}
fi
for ldfile in ld.so.cache ld.so.conf ld.so.preload; do
if [ -f "/etc/$ldfile" ]; then
cp /etc/$ldfile $PKG/$CHROOT_BASE/etc
fi
done
# Inspired by http://www.howtoforge.com/chrooted_ssh_howto_debian_p2
APPS="/usr/bin/rssh /usr/bin/scp /usr/libexec/sftp-server /usr/libexec/rssh_chroot_helper"
for app in $APPS; do
cp $app $PKG/$CHROOT_BASE/$app
# Get a list of related libraries
ldd $app > /dev/null
if [ "$?" = 0 ] ; then
libs="`ldd $app | sed -e 's/=>//' -e 's/(.*)//' | awk '{ print $1 "\n" $2 }'`"
for lib in $libs; do
if [ -a "$lib" ]; then
mkdir -p $PKG/$CHROOT_BASE/`dirname $lib` > /dev/null 2>&1
cp $lib $PKG/$CHROOT_BASE/$lib
fi
done
fi
done
# Might not work inside vservers
echo "Trying to create /dev/null inside this jail..."
echo "May not work if you're creating this package inside a vserver"
mknod -m 666 $PKG/$CHROOT_BASE/dev/null c 1 3 || exit $ERROR_INSTALL
mkdir -p $PKG/usr/doc/$PACKAGE-$VERSION
cp $CWD/COPYING* $PKG/usr/doc/$PACKAGE-$VERSION/
chmod 755 $PKG/$CHROOT_BASE/{bin,etc,lib,lib/tls,usr/lib,usr/libexec,usr/bin,usr/doc,dev}
chmod 111 $PKG/$CHROOT_BASE/home
#<make_package
|