diff options
author | Jonathan Maw <jonathan.maw@codethink.co.uk> | 2013-02-26 11:36:34 +0000 |
---|---|---|
committer | Jonathan Maw <jonathan.maw@codethink.co.uk> | 2013-02-28 11:26:35 +0000 |
commit | 268b374f02d93a5df6f8f21e62a46c82e700cd92 (patch) | |
tree | b0825c956efee60a07a13a266be5838118cb8bca | |
parent | a221efa4832b03a3133734def344a1cda53ed324 (diff) | |
download | fhs-dirs-268b374f02d93a5df6f8f21e62a46c82e700cd92.tar.gz |
Use 'devices' in morphology to create device nodes
Allowing arbitrary code to create device nodes is a bad idea, so
it is preferred to build under linux-user-chroot.
Since we need to create device nodes, a "devices" field is added to
the chunk morphology, which describes which devices nodes are to be
created, and how.
This commit will not work without the corresponding changes to morph.
Reviewed-by: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
-rwxr-xr-x | create-dev-nodes | 37 | ||||
-rw-r--r-- | fhs-dirs.morph | 48 |
2 files changed, 47 insertions, 38 deletions
diff --git a/create-dev-nodes b/create-dev-nodes deleted file mode 100755 index f84c98e..0000000 --- a/create-dev-nodes +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# -# Create FHS directories below a target directory. -# -# Copyright (C) 2011 Codethink Limited -# -# This program 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; version 2 of the License. -# -# This program 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -set -e - -if [ "$#" != 1 ] -then - echo "Error: must give target root directory as argument." 1>&2 - exit 1 -fi - -DESTDIR=$1 -while read path mode type major minor; do - mknod -m "$mode" "$DESTDIR/$path" "$type" "$major" "$minor" -done <<EOF -/dev/console 600 c 5 1 -/dev/full 666 c 1 7 -/dev/null 666 c 1 3 -/dev/urandom 666 c 1 9 -/dev/zero 666 c 1 5 -EOF diff --git a/fhs-dirs.morph b/fhs-dirs.morph index fcf3bf9..6a92b88 100644 --- a/fhs-dirs.morph +++ b/fhs-dirs.morph @@ -4,7 +4,6 @@ "decription": "create the FHS 2.3 directory hierarchy and the usual files", "install-commands": [ "sh ./create-fhs-dirs \"$DESTDIR\"", - "sh ./create-dev-nodes \"$DESTDIR\"", "install -m 644 passwd \"$DESTDIR/etc/passwd\"", "install -m 600 shadow \"$DESTDIR/etc/shadow\"", "install -m 644 interfaces \"$DESTDIR/etc/network/interfaces\"", @@ -13,5 +12,52 @@ "install -m 644 issue \"$DESTDIR/etc/issue\"", "install -m 644 services \"$DESTDIR/etc/services\"", "echo baserock > \"$DESTDIR\"/etc/hostname" + ], + "devices": [ + { + "filename": "/dev/console", + "uid": 0, + "gid": 0, + "type": "c", + "major": 5, + "minor": 1, + "permissions": "0600" + }, + { + "filename": "/dev/full", + "uid": 0, + "gid": 0, + "type": "c", + "major": 1, + "minor": 7, + "permissions": "0666" + }, + { + "filename": "/dev/null", + "uid": 0, + "gid": 0, + "type": "c", + "major": 1, + "minor": 3, + "permissions": "0666" + }, + { + "filename": "/dev/urandom", + "uid": 0, + "gid": 0, + "type": "c", + "major": 1, + "minor": 9, + "permissions": "0666" + }, + { + "filename": "/dev/zero", + "uid": 0, + "gid": 0, + "type": "c", + "major": 1, + "minor": 5, + "permissions": "0666" + } ] } |