2011-03-02 14:52:54 +01:00
|
|
|
When building a target filesystem, it is desirable to not have to
|
|
|
|
become root and then run 'mknod' a thousand times. Using a device
|
|
|
|
table you can create device nodes and directories "on the fly".
|
|
|
|
|
|
|
|
You can do all sorts of interesting things with a device table file.
|
|
|
|
For example, if you want to adjust the permissions on a particular
|
|
|
|
file you can just add an entry like:
|
|
|
|
|
2014-11-03 00:39:53 +01:00
|
|
|
/sbin/foobar f 2755 0 0 - - - - -
|
2011-03-02 14:52:54 +01:00
|
|
|
|
|
|
|
and (assuming the file /sbin/foobar exists) it will be made setuid
|
|
|
|
root (regardless of what its permissions are on the host filesystem.
|
|
|
|
|
|
|
|
Furthermore, you can use a single table entry to create a many device
|
|
|
|
minors. For example, if I wanted to create /dev/hda and
|
|
|
|
/dev/hda[0-15] I could just use the following two table entries:
|
|
|
|
|
2014-11-03 00:39:53 +01:00
|
|
|
/dev/hda b 640 0 0 3 0 0 0 -
|
|
|
|
/dev/hda b 640 0 0 3 1 1 1 15
|
2011-03-02 14:52:54 +01:00
|
|
|
|
|
|
|
Device table entries take the form of:
|
|
|
|
|
2014-11-03 00:39:53 +01:00
|
|
|
<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
|
2011-03-02 14:52:54 +01:00
|
|
|
|
|
|
|
where name is the file name, type can be one of:
|
|
|
|
|
2014-11-03 00:39:53 +01:00
|
|
|
f: A regular file
|
|
|
|
d: Directory
|
|
|
|
c: Character special device file
|
|
|
|
b: Block special device file
|
|
|
|
p: Fifo (named pipe)
|
2011-03-02 14:52:54 +01:00
|
|
|
|
|
|
|
uid is the user id for the target file, gid is the group id for the
|
|
|
|
target file. The rest of the entries (major, minor, etc) apply only
|
|
|
|
to device special files.
|