ルートユーザーが「デバイスまたはリソースの使用中」応答を受け取らないのはなぜですか?

ルートユーザーが「デバイスまたはリソースの使用中」応答を受け取らないのはなぜですか?

私はGSMモデムを使用しており、/dev/ttyUSB2そのデバイスを使用しています。

デバイスには、次の適切な権限があります。

$ ls -alh /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 2 May 25 19:44 /dev/ttyUSB2

私はdialoutグループに属しており、このモデムに一度だけATコマンドを送信できます。 「ATD」コマンド()を送信したecho -e -n "ATD ...;\r" > /dev/ttyUSB2後、lsof /dev/ttyUSB2プロセスに従ってこのファイルを開くには、ModemManager別のATコマンドを送信すると、次のメッセージが表示されます。

bash: /dev/ttyUSB2: Device or resource busy

さて、何らかの理由でModemManagerはファイルを使用していますが、そのようなことが起こった場合でも同じ方法でコマンドを送信できますが、rootユーザーからは可能です。

2つの質問があります。

  1. ルートユーザーがこの「デバイスまたはリソースを使用している」ロックを無視できるのはなぜですか。
  2. 一般ユーザーがrootユーザーのようにバイパスする必要がある権限/その他の設定は何ですか?

ベストアンサー1

最近、Gentooでの作業中に同様のエラーが発生しましたwvdial(正しく設定されたカーネルの使用、usb_modeswitch設定の使用、wvdial設定が他のシステムで動作していることを確認するなど)。説明したように、ルートはモデムを簡単に初期化してインターネットに接続できますが、グループdialoutのユーザーはあなたと非常によく似たエラーメッセージを受け取ります。関連デバイスファイルは次のとおりです。

$ ls -l /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 2 Apr  6 01:43 /dev/ttyUSB2

問題は、wvdialが私のシステムの/run/lockロックファイルの下に必要なロックファイルを生成できないことがわかりました。root:uucp一般ユーザーを に追加した後、uucpロックファイルを作成できます。

$ ls -la /run/lock
drwxrwxr-x  2 root uucp  80 Apr  6 01:43 .
drwxr-xr-x 10 root root 520 Apr  6 01:44 ..
-rw-r--r--  1 foo  foo   11 Apr  6 01:43 LCK..ttyUSB2
[...]

そして、ユーザーはrootのように正常に接続できます。 (気になる場合は、find / -group uucpそのフォルダ以外には何も返されません。)

私はModemManager、デバイスファイルを直接書き込んだり読んだりするのに慣れていませんが(そして、デバイスファイルを直接書いたり読んだりするのに慣れていません)、説明が似ていることを考えると、一般ユーザーを別の補足グループに追加する必要があるかもしれません。ルートとして接続して、ModemManagerに関連する他のファイルが何であるかを確認します。そのうちの1つ(または親ディレクトリ)が問題の原因である可能性があります。

おすすめ記事