为什么我不能在/ sys中创建目录


8

我正在学习Ubuntu并尝试一些东西。

我注意到我无法在/ sys中创建目录

这是一个特殊目录还是其他?还有其他类型的目录吗?

(我做了一个sudo -i和一个chmod a+w /sys

Answers:


17

首先,您应该将/sys的权限更改回去(sudo chmod a-r /sys将这样做,因为默认权限为dr-xr-xr-x)。/sys应该不是世界可写的!

通常,要在主文件夹,外部媒体和/tmp文件夹之外的系统部分中创建文件和目录,则应root使用一样进行操作sudo,而不是通过更改权限或所有权来授予访问权限。不建议将目录设置为可写入世界。

有关推荐方法的信息,请参见:

您甚至可以使用gksudo nautilus(或者sudo -H nautilus如果没有的话gksudo)打开一个拥有根目录的文件浏览器窗口。不过要小心-它几乎可以做任何事情,其中​​大多数事情都是您可能不想做的事情。另外,请注意,如果您从拥有根文件的浏览器窗口中启动程序,该程序也将以root身份运行。

这就是通常你应该做的,编辑或创建所拥有的目录的新内容root。然而...

/sys是不同的; 甚至root不能在那里直接创建东西

/proc和一样/dev,在Ubuntu和其他使用Linux内核的操作系统中,它/sys是一个虚拟文件系统,它表示的不是磁盘(或任何位置)上的真实文件。

简而言之,/sys内核提供有关(物理和虚拟)设备的信息的一种方式。

/sys文件系统中的某些条目也可以有意义地写入,并且对其进行写入是一种动态设置设备配置的方式。(这不应与/dev文件系统混淆;写入条目/dev向设备发送数据的一种方式

但这仍然必须以root用户身份完成。而不是更改其上/sys或其任何部分的权限,您应该sudo如上所述以root用户身份执行那些操作。

在Unix.SE上,此答案说明了如何执行此操作,甚至说明了如何允许某些非管理员(不能以root用户身份执行大多数操作)更改某些/sys设置。

有关如何/sys工作的更多信息,请参见:

输入项/sys是由内核和驱动程序创建的。您不能仅从命令行创建它们。(如上所述,您可以以root用户身份进行编辑,但通常无法通过用户空间创建新的用户,除非加载内核模块或以其他方式安装驱动程序或修改内核。)

如果您碰巧对编写驱动程序感兴趣,请参阅:


4

是的,/sys是一个“特殊”目录。来自维基百科

现代Linux发行版包括/ sys目录作为虚拟文件系统(sysfs,相当于/ proc,后者为procfs),该目录存储并允许修改连接到系统的设备,而许多传统的UNIX和类似Unix的操作系统使用/ sys作为指向内核源代码树的符号链接。

“存储并允许修改连接到系统的设备”非常重要。/sys专门用作虚拟文件系统的事实是为什么您(和root)无法对其进行写入。我会避免弄乱/sys。使用非常开放和透明的Linux,由于种种原因通常情况是无法更改的。出于安全目的,或者在这种情况下,因为有另一种实现目标的方法,风险要小得多。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.