我试图在chrooted环境中运行程序,它需要/ dev / random作为资源.
手动我可以做ls -l然后用mknod c xx yy再次创建文件,但是我需要让它自动化,我不认为这些版本号从linux版本到另一个是不变的,所以这就是为什么我有以下问题:
我怎么能写一个bash脚本来提取/ dev / random的次要和主要数字并将它与mknod一起使用?我可以使用ls -l但我不知道如何提取它的子串…
ls -l / dev / random的确切返回是:
crw-rw-rw- 1 root root MInor, MAJOR mars 30 19:15 /dev/random
我要提取的两个数字是MInor和MAJOR.但是,如果有一种更简单的方法来创建没有ls和mknod的节点,我会很感激.
解决方法:
您可以使用stat获取主设备号和次设备号:
MInor=`stat -c %T /dev/random`
MAJOR=`stat -c %t /dev/random`
然后,您可以创建一个设备节点:
mknod mydevice c "$MAJOR" "$MInor"
另一种方法(不需要解析设备号)是使用tar创建一个存档,其中包含设备文件的详细信息:
cd /dev
tar cf /somewhere/devicefiles.tar random null [any other needed devices]
然后
cd /somewhere/chroot-location
tar xf /somewhere/devicefiles.tar
后一种方法的优点是它不依赖于stat的-c选项,这是一个GNU扩展.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。