コンソールを介してルーターに接続しようとすると、画面は終了し続けます。

コンソールを介してルーターに接続しようとすると、画面は終了し続けます。

画面の使用に問題があります。コンソールを介してルーターに接続しようとするたびに画面が終了します。

eric@pop-os:~$ screen /dev/ttyUSB0
[screen is terminating]

eric@pop-os:~$ screen /dev/ttyUSB0
[screen is terminating]

ルートまたはスーパーユーザーとしてのみ機能します。

答え1

あなたのユーザーアカウントにericアクセスできますか/dev/ttyUSB0?確認するにはを実行してくださいls -l /dev/ttyUSB0。出力は次のとおりです。

$ ls -l /dev/ttyUSB0 
crw-rw----+ 1 root dialout 166, 0 Jul  9 08:55 /dev/ttyUSB0

一番左の列の文字はファイルタイプと権限情報です。

  • 最初の文字はc文字ベースのデバイスを表します。
  • 最後の文字は、+デバイスノードに追加のアクセスルールを指定するアクセス制御リスト(ACL)があることを示します。これは、他の権限が解釈される方法を変更するので重要です。
  • 文字2-4は、3番目の列に示すrw-ようにファイル所有者の権限を表す3文字のグループです。root
  • 2番目の3文字セット(rw-再)は通常、次に適用されることを意味します。グループファイルが割り当てられたユーザーの数。この場合、グループはdialout4列目に表示されます。ただし、このファイルにはACLがあるため意味が異なります。ACLが適用されると、ファイルの所有者ではなく、特定のユーザーまたはグループに付与されている最高権限のみを表示するだけで、どのユーザーまたはグループであるかを知ることはできません。
  • 3文字の3番目のセット(---)は他の人のアクセス権を表します。すべてダッシュの場合、アクセスが許可されていないことを意味します。
  • 最後の文字は、+デバイスノードに追加のアクセスルールを指定するアクセス制御リスト(ACL)があることを示します。

最後に、ACLはgetfacl /dev/ttyUSB0。出力は次のとおりです。

$ getfacl /dev/ttyUSB0 
getfacl: Removing leading '/' from absolute path names
# file: dev/ttyUSB0
# owner: root
# group: dialout
user::rw-
user:sddm:rw-
group::rw-
mask::rw-
other::---

デフォルトでは、既存の非ACLファイル権限を複製し、必要な数のユーザーとグループに追加の権限を指定できます。この場合、GUIログインマネージャプロセスが現在実行されているユーザーアカウントであるuser:sddm:rw-ユーザーへの読み取りおよび書き込みアクセスを示す追加の行があります。クラシックグループがこのファイルへの完全な読み取り/書き込みアクセス権を持っていることを確認する行もあります。この情報は、ACLがこのデバイスノードに適用されると、クラシック出力から隠されます。sddmsddmgroup::rw-dialoutls -l

ACLが権限を付与するという事実は、sddmGUIログインダイアログを使用してローカルにログインする場合、オペレーティングシステムが自動的にローカルシリアルポートへのアクセスを許可するように構成できることを示唆しています。 ACLはログインしているユーザーと一致するように自動的に変更され、sddmユーザーがログアウトするとその状態に戻ります。これらのACLが存在しない場合、デプロイメントではこれらの自動権限メカニズムを使用しない可能性があります。

dialout以前は、シリアルポートがモデムで使用されていたため、グループ名は歴史的です。ただし、デバイスがこれらの特別なグループに割り当てられている場合は、そのdialoutグループを使用してシリアルポートへのアクセスを管理するように展開が設定されている可能性があります。したがって、この例では、ユーザーアカウントをdialoutグループに追加できます。これを行うには、root/superuser アクセス権が必要です。

# usermod -a -G dialout eric

新しいグループメンバーシップは次回のログイン時に適用されるため、ログアウトしてから再度ログインする必要があります。

/devファイルシステムはRAMベースの仮想ファイルシステムなので、システムが起動するたびにすべてのデバイスノードが最初から作成されます。したがって、物理デバイスノードの権限を変更しようとする試みは役に立ちません。システムをシャットダウンすると、変更が忘れられます。代わりに、デバイスに対するデフォルトの権限は、管理者がグループメンバーシップを使用して特定のユーザーに特定の種類のデバイスへのアクセス権を付与できるようにする明示的な目的で特定のグループを使用します。これらのグループを意図したとおりに使用することは、おそらく問題を解決する最も簡単な方法です。

関連情報