/ dev / nullにアクセスできません:crw-rw-rw- 1 root root 1、3 Sep 21 12:05 / dev / null


11

ユーザーpostgresの場合:

$ ls -l /dev/null
ls: cannot access /dev/null: Permission denied

ユーザーのルートを考えて、許可は正しいです:

# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 /dev/null

私はそれを再作成しようとしました:

# rm /dev/null && mknod -m 0666 /dev/null c 1 3

しかし、結果は同じです。Debian 7とx86_64のカーネル2.6.32を搭載したVPSを使用しています

回答:


18

問題は、/ devへのアクセス許可から発生しました。

# ls -ld /dev
drwx------ 3 root root 4096 Sep 21 12:12 /dev

そのため、ユーザーは/ devにアクセスできませんでした。

# chmod a+x /dev
# chmod a+r /dev

問題を解決しました。


だから私はそれがそれらの許可を持っていた理由を知りたいです。再インストールすることもできます。/ dev内のすべてのものはカーネル管理されており、不適切なアクセス許可を持つのは奇妙です。
cripto 14

いいえ、/ dev内のすべてが「カーネル管理」されていません。
トランド14

@tlundは、お気に入りのカーネルブックを確認してください。「/ devディレクトリは、カーネルの現在の状態を反映している」 doc.opensuse.org/products/draft/SLES/SLES-admin_sd_draft/...
クリプト

@ user1048138:私も知りたいです。VPSプロバイダーからの自動debian 7セットアップから始めました。次に、apt-getのみを使用して更新、アップグレードしました。さらに、wget some_domain / some_package.debを使用して「手動」で1つのパッケージを 作成します。dpkg -i some_package.deb; apt-get -fインストール。ある時点で、/ dev / nullが標準ファイルに変更され、/ dev許可が変更されました。もっと言えません。
ラレバルデ14

1

私は同様の問題を抱えていて、症状を探してここに来ましたが、解決策は私のケースに合いませんでした。したがって、OPに正確に適合しない場合でも、別の考えられる理由を追加したいと思います。

私の特別なケースではproot、素敵なchrootラッパーを使用しました。しかし、権限が上正しかった/dev/null/dev自分自身。

それはたまたまchrootディレクトリのマウントであり、私はthunar通常のユーザーとしてそれを行いました。そのため、この場合、マウントには正しい権限がありませんでした。

ファイルを見るだけでは、これらのアクセス許可が表示されないため、これを見つけるのに時間がかかります。

一般的な解決策は、問題のある場所で条件のチェックを開始し(/dev/null)、次のレベル(/dev)に進み、次にマウント、ファイルシステムなどに進みます。

各ステップでいくつかの前提条件があり、それぞれに独自の外部レベルがあります。たとえば、ユーザーが間違ったグループに属している可能性があり、グループ設定ファイルが作成され、間違った権限などが設定されている可能性があります。

明らかに、一般的な種類のツリーに従う必要があります。


0

私はこれを自分で解決できなかったので、これは私がやったことです:

mycommand.sh | echo -n

echoそれは破棄されますので、コマンドは、標準入力に注意を払っていません。そして、-n無用な改行が標準出力に出力されないようにするためです。


1
これは質問に答える可能性がありますが、なぜそうするのかの説明を提供できれば、より良い答えになるでしょう。
DavidPostill

1
はい。しかし、「/ dev / nullにアクセスできません:crw-rw-rw- 1 root root 1、3 Sep 21 12:05 / dev / nullですが、許可が拒否されました」という質問にどのように答えますか?
DavidPostill

1
質問には答えません。しかし、それは回避策を提供します。理想的な直接的な答えがない場合もあります。
マークスチュワート

0
chmod a+rw /dev/null /dev/random /dev/urandom /dev/ptmx /dev/tty /dev/zero /dev/full /dev/fuse /dev/net/tun

これがVPSでの私の問題を解決するものです。サーバーを再起動した後、このコマンドを再度実行したことに注意してください。

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