/ sysにディレクトリを作成できないのはなぜですか


8

私はUbuntuを学び、物事を実験しています。

/ sys内にディレクトリを作成できないことに気付きました

これは特別なディレクトリですか?他の種類のディレクトリはありますか?

(私はa sudo -iとa をやりましたchmod a+w /sys

回答:


17

最初に、/sysの権限を元に戻す必要sudo chmod a-r /sysがあります(デフォルトの権限はなので、変更されますdr-xr-xr-x)。/sys誰でも書き込み可能であってはなりません!

一般的には、あなたのホームフォルダ外のシステムの一部、外部メディア内のファイルやディレクトリを作成し、そして/tmpフォルダは、あなたがすべきであるとして、それを行うrootsudo、よりもむしろ自分自身にアクセス権を与える権限や所有権を変更することもできます。ディレクトリを誰でも書き込み可能にすることは、特にお勧めできません。

推奨される方法については、以下を参照してください。

を使用してgksudo nautilus(またsudo -H nautilusはがない場合gksudo)、ルート所有のファイルブラウザーウィンドウを開くこともできます。ただし、これには注意してください。ほとんど何でもできるので、それらのほとんどは、おそらく実行したくないものです。また、ルート所有のファイルブラウザウィンドウからプログラム起動すると、そのプログラムもルートとして実行されます。

これが、が所有するディレクトリの新しいコンテンツを編集または作成するための一般的な操作ですroot。しかしながら...

/sys異なります; rootそこに直接作成することもできません

/procおよびと同様に/dev、UbuntuやLinuxカーネルを使用する他のOSでは/sys仮想ファイルシステムであり、それが表すのはディスク上の(またはどこにでもある)実際のファイルではありません。

つまり、カーネルは(物理および仮想)デバイスに関する情報を提供/sysする方法です。

/sysファイルシステム内の一部のエントリも意味のある書き込みが可能であり、それらへの書き込みはデバイスの構成を動的に設定する方法です。(これを/devファイルシステムと混同しないでください。エントリへの書き込み/devは、データをデバイス送信する方法です。

しかし、これはまだrootとして実行する必要があります。上で説明したよう/sysに、権限を変更するのではなく、その一部をrootとして実行するだけsudoです。

Unix.SEに関するこの回答では、その方法と、一部の非管理者(ほとんどのアクションをrootとして実行できない)が一部の/sys設定を変更できるようにする方法についても説明しています。

動作の詳細について/sysは、以下を参照してください。

のエントリは/sys、カーネルとドライバによって作成されます。コマンドラインから作成することはできません。(上記のように、一部をrootとして編集できますが、カーネルモジュールをロードするか、ドライバーをインストールするか、カーネルを変更することを除いて、一般にユーザースペースから新しいものを作成することはできません。)

ドライバーの作成に興味がある場合は、以下を参照してください。


4

はい、/sys「特別な」ディレクトリです。ウィキペディアから:

最新のLinuxディストリビューションには、/ sysディレクトリが仮想ファイルシステムとして含まれ(sysfs、/ proc、つまりprocfsに相当)、システムに接続されたデバイスを保存および変更できますが、多くの従来のUNIXおよびUnixライクなオペレーティングシステムでは、カーネルソースツリーへのシンボリックリンクとしての/ sys。

「システムに接続されたデバイスの保存と変更を可能にすること」は非常に重要です。実際に/sys仮想ファイルシステムとして使用されているが、特別に取り付けられた、あなた(およびルート)は、それに書き込むことができない理由です。私はいじりを避け/sysます。Linuxは非常にオープンで透過的であるため、通常、適切な理由で変更できません。セキュリティ上の理由から、またはこの場合は、リスクを大幅に軽減する目的を達成する別の方法があるためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.