• 締切済み

/dev/nullを削除できない

OS:Redhat Linux ES 5.0 /dev/nullファイルのパーミッションがcrw-rw-rw- からsrwxr-xr-xに 変わってしまい、mknodで作り直そうと思いましたが、どうしても /dev/nullファイルを削除できませんので作り直せない状態です。 # rm -rf /dev/null <-エラーメッセージはない #ls -l /dev/null -rw-r--r-- 1 root root 0 7月 17 11:36 /dev/null <-パーミッションが変わっている #mknod -m 666 /dev/null c 1 3 mknod: `/dev/null': ファイルが存在します # どのようにすれば/dev/nullを作り直せるのでしょうか?

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.3

/dev/nullを消そうとした経験がないのでわかりませんが、シングルユーザーモードで試してはどうでしょうか。 あと、/dev/null はディレクトリじゃないので rm の -r オプションは不要です。また、-f オプションもスクリプトの中で使う意味はわかりますが、手動の際に指定するのは悪い癖だと思います。

rere2006
質問者

補足

ご指摘ありがとうございます。 シングルユーザモードで実行してみます。

  • yakan9
  • ベストアンサー率54% (2202/4052)
回答No.2

/dev/nullや、/dev/zeroは、OSというより、全てのプログラムで 利用するため、手をつけてはいけない領域ではないでしょうか。 エリアのパッキングやサブルーチンのリターン変数等に使って いますので、変更すると、システム自体もうそこでおかしく なってきます。 /dev/~自体手をつけないほうがよいと思いますけど。

rere2006
質問者

補足

出来るなら私も/dev/nullには手を付けたくありませんが、 ソース型ファイルに変わってしまい、本来の/dev/nullの動きが出来ず サービスの再起動時等いろんな場面でエラーが発生しています。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

rmとmknodではなくてchmodで良くありませんか? ってのと、/devは仮想FS(devfs)だと思うのでリブートで元に戻るような気がします。

rere2006
質問者

補足

chmodでファイルパーミッションを変えられることは知ってますが ファイルの形式(ソースファイル→キャラクタファイル)に 変換することも可能なんでしょうか?

関連するQ&A

  • /dev/nullについて

    社内で運用しているサーバにputtyからログインした時、 -bash: /dev/null: Permission denied というメッセージが表示されました。 サーバーのOSは、CentOS release 6.5 (Final)です。 /dev/nullがレギュラーファイルになっているのが原因らしく、以前にも同様の問題が発生しました。 それで、原因を特定するように依頼されたのですが、知識がなく困っております。 crontab 等でメッセージを表示させないようにするために、 「コマンド > /dev/null 2>&1」というような書き方をすることは知っていたのですが、 この方法はネットで紹介されていたりするため、これが原因になっているとは思えません。 恥ずかしいことにそれ以外にどこで使用されているのか分かりません。 他に/dev/nullに対して何か処理をさせるようなものをご存じないでしょうか? どんなものでも構いませんので、ご協力をお願いいたします。

  • /dev/ttyS0をuucpに設定する

    CentOS6.5(final) 32bitにおいて/dev/ttyS0の設定を変更し、再起動がしても設定が有効となるようにトライしています。 uucpの設定をするという情報があったので、以下のようにしました。 1. chmod 666 /dev/ttyS0 (これが本来やりたい設定です) 2. chgrp uucp /dev/ttyS0 3. /etc/groupのuucpに自分のユーザを設定 上記3までやった段階で $>ls -l /dev/ttyS0 と実行すると crw-rw-rw-. 1 root uucp 4, 64 Feb 11 00:03 /dev/ttyS0 となっています。 ただ、この後にCentOSをshutdownしてから再起動すると crw-rw----. 1 root dialout 4, 64 Feb 11 00:05 /dev/ttyS0 と設定が戻ってしまうようです。 設定においてどこか間違っているのでしょうか?

  • Rawデバイスに対するオーナー変更が効かない

    こんばんは。 ミラクルLinux4を使用していますが RAWデバイスを4つ作成しました。 でrootユーザーで chown oracle:oinstall /dev/raw/raw[1-4] とoracleにオーナー変更します。この時点ではoracleユーザーで ddコマンドも成功します。 ※dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=100 ところがOSを再起動するとオーナーがrootに戻ってしまいます。。 オーナーをoracleユーザーのままにするにはどうすれば 良いでしょうか?・・。アドバイスお願いします。 【再起動前】 ls -al /dev/raw crw-rw---- 1 oracle oinstall 162, 1 1月 3 20:23 raw1 crw-rw---- 1 oracle oinstall 162, 2 1月 3 20:23 raw2 crw-rw---- 1 oracle oinstall 162, 3 1月 3 20:23 raw3 crw-rw---- 1 oracle oinstall 162, 4 1月 3 20:23 raw4 【再起動後】 ls -al /dev/raw crw-rw---- 1 root disk 162, 1 1月 3 20:23 raw1 crw-rw---- 1 root disk 162, 2 1月 3 20:23 raw2 crw-rw---- 1 root disk 162, 3 1月 3 20:23 raw3 crw-rw---- 1 root disk 162, 4 1月 3 20:23 raw4

  • 容量がいっぱいになりました。削除してもよいですか?

    困ってます、宜しくお願いします!! CentOSの専用サーバーを利用しているのですが、メールが飛ばないなどの症状が頻繁に発生するのでSSHより確認してみたのですが、/dev/hda2の容量が100%となっており、これが原因では無いかと考えております。 【df -a 結果】 /dev/hda2 8064304 7602944 51704 100% /var で、更にこの中を確認すると以下の情報が得られました。(大きなデータだけ記載いたします) 【ls -l 結果】 drwxr-xr-x 20 root root 118784 4 19 22:37 dev drwxrwxrwt 5 root root 81920 7 9 11:03 tmp devの中を覗いてみたのですが、膨大なファイルが存在しているため断念・・・。(何か分かりません) 続いて、tmp内を見ると、明らかにこれだけで容量を圧迫しているデータが1つ確認出来ました。 drwxrwxrwt 5 root root 81920 7 9 11:03 . この、ドットだけのファイル名のファイルは何になりますでしょうか? また、これは削除してもよいものか?削除することで容量の確保が可能か?をお伺いしたく思います。 大丈夫と言うことであれば、少々怖いのですが削除を試してみたいと思います。 その際は以下のコマンドで問題ありませんでしょうか? rm -i . ↑この様な感じで・・・。 どなたか詳しい方らっしゃいましたら、アドバイスのほどお願いいたします。

  • apache2でerror403について。

    お世話になります。apache2をrpmでインストールし、squidもrpmでインストールし、sargもrpmでインストールしました。 ドキュメントルートは現在 var/wwwにしています。 http://hostname/だとアパッチ標準が表示されます。 http://hostname/html/index.html だと作成したページが表示されます。 http://hostname/sarg/index.html だと下記エラーが表示されます。 Access forbidden! You don't have permission to access the requested object. It is either read-protected or not readable by the server. 現在のパーミッションです。sargのディレクトリが(drwxr-xr-x 6 root)が6になっている位で他に変わった点が見つかりません。 また、この6の意味を今調べてるのですが、なかなか説明文書にたどりつきません。 どうすれば権限を与えることができるのか? どなたかご教授ください。よろしくお願いします。 /var/www/ drwxr-xr-x 2 root root 4096 2月 25 2003 cgi-bin drwxr-xr-x 3 root root 4096 9月 6 10:56 error drwxr-xr-x 2 root root 4096 9月 7 11:25 html drwxr-xr-x 3 root root 4096 9月 6 10:56 icons drwxr-xr-x 6 root root 4096 9月 7 11:02 sarg ls /sarg -l drwxr-xr-x 3 root root 4096 9月 7 10:45 ONE-SHOT drwxr-xr-x 2 root root 4096 6月 30 09:06 daily -rw-r--r-- 1 root root 1419 6月 30 09:06 index.html drwxr-xr-x 2 root root 4096 6月 30 09:06 monthly drwxr-xr-x 2 root root 4096 6月 30 09:06 weekly ls /html -l -rw-r--r-- 1 root root 110 9月 7 11:25 index.html 環境(サーバー) Apache/2.0.40 (Red Hat Linux) RedHat Lunix release 9 Kernel 2.4.20-8 on an i686 環境(クライアント) ウィンドウズ2000sp3 IE6

  • このファイルは何のファイルですか?

    私は、RedHat7.2Jを使っていますが、/homeに自分では、作った覚えのないファイルができていました。 消そうと思い、rootでrmコマンドを使ってみたのですが、「許可されていない操作です」となって消せません。 lsコマンドを使って見てみると下のように出ました。 -rw------- 1 root root 33554432 3月 4 20:19 .journal この隠しファイルとなっているjournalとは何のためのファイルなのか、教えてください。

  • スペシャルファイルのグループについて

    スペシャルファイルをlsで見た際、グループ名にカンマが含まれています。(disk 3, 0) /etc/groupファイルを見てもdiskというグループはあるがdisk 3, 0というグループはありません。 これはいったい何を意味しているのでしょうか? <例:スペシャルファイルのls> [root@localhost test]# ls -l /dev/hda brw-rw---- 1 root disk 3, 0 Oct 14 15:21 /dev/hda <例:通常ファイルのls> [root@localhost test]# ls -l ./sc -rw-r--r-- 1 hoge hoge4 34 Oct 9 17:28 ./sc

  • 一般ユーザでDAT操作できません

    Red Hat Enterprise Linux ES release 3を使用しています。 rootユーザではmtやtarにてDAT(DDS4)の操作ができるのですが、一般ユーザではできないです。 ・rootユーザ # mt -f /dev/st0 status SCSI 2 tape drive: File number=0, block number=0, partition=0. Tape block size 0 bytes. Density code 0x26 (DDS-4 or QIC-4GB). Soft error count since last status=0 General status bits on (41010000): BOT ONLINE IM_REP_EN ・一般ユーザ $ mt -f /dev/st0 status /dev/st0: Permission denied よくわからず/dev/st0のパーミッションを見てみました。 # ls -la /dev/st0 crw-rw---- 1 root disk 9, 0 9月 15 2003 /dev/st0 となっていたので、正しい方法ではないと思いますが この一般ユーザを/etc/groupのdiskグループに含めて 見ましたが、結果は変わりませんでした。 tarコマンドでも同じような結果です。 一般ユーザでもこのデバイスを使用できるようにする方法を教えてください。

  • ls -lの見方を教えてください。

    ls -lのパーミッションの次にでてくる数字はファイルとディレクトリの場合で何を表すか教えてください。 [root@hogehoge etc]# ls -l /etc/sysconfig/networking/profiles/default/ 合計 36 -rw-r--r-- 2 root root 146 8月 25 23:12 hosts -rw-r--r-- 3 root root 221 8月 25 23:12 ifcfg-eth0 -rw-r--r-- 3 root root 147 8月 25 23:12 ifcfg-eth1 -rw-r--r-- 1 root root 0 8月 25 23:12 network -rw-r--r-- 2 root root 80 8月 25 23:12 resolv.conf

  • chmod u-x .*の動作について教えて下さい

    パーミッション変更作業中に 「chmod u-x .*」としたところ予期しない動作をしました。 私事ですが、 先日これで、サーバを停止させてしまい始末書を書きました。 原因はわかったのですがコマンドの動作に理解できずに困っています。 詳しい方がおられましたら、ご教授お願いします。 よろしくお願いします。 問題は、カレントディレクトリで .(ドット)から始まる全てのファイルに対して ユーザの実行権限を削除するということで 下記のコマンドを実行しました。 「chmod u-x .*」 その結果、親と親の親ディレクトリの 実行権限まで変わってしまったということです。 カレントディレクトリには、 下記のファイル(ディレクトリ)があります。 . .. .bash_history .bash_logout .bash_profile .bashrc 「..」が変更対象に含まれている為、 「../foo」親ディレクトリが変更対象になります。 「../bar」が変更対象に含まれないのは、 「..」でも直接親子関係にないから変更対象に入らない。 そのため、 「../../home」も同じ理由で親子関係にないから変更対象に入らない と思っています。 確認した環境は RHEL4とFedora6ですどちらも結果は同じ。 ■下記に実行したコマンドを記載します。 (文字数に制限があるようなので、内容を一部加工させて頂きました。) 【コマンド入力前のパーミッション】 [root@baz /]# ls -la / | grep home drwxr-xr-x 4 root root 4096 1月 9 1:01 home [root@baz /]# ls -la /home 合計 28 drwxr-xr-x 4 root root 4096 日時 . drwxr-xr-x 3 root root 4096 日時 .. drwx--x--x 1 bar bar 4096 日時 bar drwx------ 5 foo foo 4096 日時 foo [root@baz foo]# ls -la 合計 40 drwx------ 5 foo foo 4096 日時 . drwxr-xr-x 4 root root 4096 日時 .. -rw------- 1 foo foo 165 日時 .bash_history -rw-r--r-- 1 foo foo 24 日時 .bash_logout -rw-r--r-- 1 foo foo 176 日時 .bash_profile -rw-r--r-- 1 foo foo 124 日時 .bashrc drwx------ 5 foo foo 4096 日時 Maildir drwxr-xr-x 2 foo foo 4096 日時 etc drwxr-xr-x 2 foo foo 4096 日時 public_html 【問題のコマンドを実行】 [root@baz foo]# pwd /home/foo [root@baz foo]# chmod u-x .* 【コマンド入力後のパーミッション】 [root@baz foo]# ls -la 合計 40 drw------- 5 foo foo 4096 日時 . drw-r-xr-x 4 root root 4096 日時 .. -rw------- 1 foo foo 165 日時 .bash_history -rw-r--r-- 1 foo foo 24 日時 .bash_logout -rw-r--r-- 1 foo foo 176 日時 .bash_profile -rw-r--r-- 1 foo foo 124 日時 .bashrc drwx------ 5 foo foo 4096 日時 Maildir drwxr-xr-x 2 foo foo 4096 日時 etc drwxr-xr-x 2 foo foo 4096 日時 public_html [root@baz /]# ls -la /home 合計 28 drw-r-xr-x 4 root root 4096 日時 . drwxr-xr-x 3 root root 4096 日時 .. drwx--x--x 1 bar bar 4096 日時 bar drw------- 5 foo foo 4096 日時 foo [root@baz /]# ls -la / | grep home drw-r-xr-x 4 root root 4096 日時 home