-bash:/ dev / null:許可が拒否されました


30

Centos 6システムで新しいユーザーを作成しようとしています。

はじめに

useradd kevin

次に、そのユーザーとしてコマンドを実行しようとしました

su - kevin

ただし、次のエラーメッセージが表示されます

-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
[kevin@gazelle ~]$

そして、私はそのユーザーとしてはあまりできません。

許可/dev/nullは次のとおりです。

-rwxr-xr-x  1 root root           9 Jul 25 17:07 null

私のMacにあるものとほぼ同じですが、

crw-rw-rw-   1 root   wheel         3,   2 Jul 25 14:08 null

それはだ可能性私がDEVに触れていること、が、本当にそう。

ルートユーザーとして、グループに追加kevinしてみましたroot

usermod -a -G root kevin

ただし、/dev/null許可が拒否されたエラーは引き続き発生します。

なぜ新しいユーザーは書き込みできないの/dev/nullですか?
新しいユーザーはどのグループに参加すべきですか?
ユーザーを正しく偽装していませんか?
Linuxでユーザー/権限を設定するための初心者向けガイドはありますか?


1
/ dev / nullが9バイト長の通常ファイルに変更されたように見えます。デバイスファイル(ファイルタイプ/許可ビットフィールドの先頭にある 'c')であることが想定されています。の場合cat /dev/null、最近使用したもののように見えますか?
マークプロトニック14

ああ。はい、そうでした。"* マスター"。それを答えとして追加しますか?それをマークしますか?
ケビン・バーク

再起動すると/ dev / nullが再作成されますが、/ dev / nullをファイルに変更したことを知っていますか?それが再び起こった場合、それは痛みになるでしょう。
マークプロトニック14

1
私の推測では、私は「gitのブランチ」の出力を移動させるには/ dev / nullの代わりにそれを書くか、悪いスクリプトか何かだったの
ケビン・バーク

回答:


56

誰かが明らかに通常のファイルを/ dev / nullに移動しました。再起動すると再作成されます

rm -f /dev/null; mknod -m 666 /dev/null c 1 3

@Flowがコメントで指摘したように、rootこれを行う必要があります。


12
「誰か」によって、あなたは、[はい:)「私」を意味する場合
ケビン・バーク

私もサーバーで同じ問題を実行しました。Ubuntu 14.04 LTS。しかし、許可は変更しませんでした。どのプロセスが許可を変更したかを追跡できる可能性はありますか?
マニ

@Mani Linuxはデフォルトでそのような小さな変更をログに記録しませんが、今後は監査を有効にして確認できます。Linux chmodでファイルを検出する方法
Mark Plotnick

1
ソリューションは問題を修正しますが、問題は再発します。どうして?
アビシェクソニ

で説明したように@AbhishekSoniあなたは、監査を試みる場合があります表示、ファイルの履歴(ファイルを変更したユーザーのリスト)
マーク・Plotnick


3

Markが提案した解決策は、OpenBSDでは機能しませんでした。しかしながら

mknod -m 666 /dev/null -c 2 2

トリックをしました。これをOpenBSD 5.6でテストしました。受け入れられた回答が実行されると、/ dev / nullはそれを読み取るコードをかなりひどくブロックしてねじ込みます。


OPはOpenBSDではなくCentOSを使用しませんでしたか?
ott--

3
残念ながら、オペレーティングシステムごとに異なるメジャー/マイナー番号が使用され/dev/null、標準はありません。OPはCentOSの6 Linuxが使用していますについての質問1,3のためには/ dev / nullにFreeBSD上で、少なくとも2001年に戻って、私が見てきた0,615,017,0、と20,0。OpenBSDはを使用し2,2ます。OpenBSDでは、実際に数字を知る必要はありません。実行できます# cd /dev; ./MAKEDEV std
マークPlotnick

メジャー番号とマイナー番号は、オペレーティングシステム間で転送できません。Linuxで機能するものは通常、* BSDまたはMac OS X(またはSolaris、AIX、HP-UXなど)では機能せず、その逆も同様です。mknodマニュアルを精査する(幸運なら情報がそこにある)か、カーネルヘッダーを精査して、コマンドで使用する正しい番号を見つける必要があります。
ジョナサンレフラー

1

これは、Ubuntuアプリケーション内のWindowsで、に書き込みを行うスクリプトを実行しようとしたときに起こりました/dev/null。アクセス権は、両方のために正しかった/dev/dev/null

問題は、スクリプトファイルのWindows改行であることが判明しました。ランニング :

dos2unix.exe c:\path\to\script.sh

私のために問題を解決しました。


0

後世のためにMac OS Xの回答を投稿しています...

sudo su \
&& rm -rf /dev/null \
&& mknod /dev/null c 3 2 \
&& chmod 666 /dev/null
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.