2017-06-09 40 views
-1

我可以在某个目录下创建一个新的urandom设备(下面的例子中的test_urandom),它可以按预期工作。例如。访问urandom设备获得“权限被拒绝”,为什么?

test_urandom$ sudo mknod -m 0444 ./urandom c 1 9 
test_urandom$ ls -l 
total 0 
cr--r--r-- 1 root root 1, 9 Jun 9 09:06 urandom 
test_urandom$ head -c 10 ./urandom 
�׫O1�9�^ 

不过,如果我创建另一个目录,这在我的情况是在LVM(逻辑卷管理)的EXT4文件系统的同一设备节点,它失败,系统permission denied.

test_urandom_lvm$ sudo mknod -m 0444 ./urandom c 1 9 
test_urandom_lvm$ ls -l 
total 0 
cr--r--r-- 1 root root 1, 9 Jun 9 09:06 urandom 
test_urandom_lvm$ head -c 10 ./urandom 
head: cannot open ‘./urandom’ for reading: Permission denied 
抱怨

如果允许我在文件系统中创建设备,为什么不允许读取设备?什么导致许可被拒绝?需要进行哪些更改才能使其工作?

+1

没有“LVM文件系统”这样的东西。 LVM不是文件系统,而是一个块设备。一个文件系统并不在乎(事实上并不知道)它所在的块设备是什么类型的,块设备并不关心(实际上并不知道)它上面有什么文件系统(如果有的话是它的文件系统)。 –

+0

LVM并不重要。什么是文件系统类型?它安装了哪些选项? – ephemient

+0

@Jörg感谢有关LVM的澄清。我已经更新了这个问题。我的关键是,为什么在安装在LVM逻辑块设备上的文件系统中创建的随机设备不起作用?需要什么样的许可才能使其工作? –

回答

1

文件系统安装有nodev选项,该选项禁止块和字符特殊设备操作。安装它dev将允许他们工作。