Gnu-Screen

嘗試控制台進入路由器時螢幕不斷終止

  • July 9, 2019

我的螢幕有問題。每次我嘗試控制我的路由器時,它都會終止。

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

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

它只能作為 root 或超級使用者使用。

您的使用者帳戶是否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,表示基於字元的設備。
  • 最後一個字元是+,表示該設備節點上有一個Access Control List(簡稱ACL),指定進一步的訪問規則。這很重要,因為它改變了其他權限的解釋方式。
  • 字元 2-4 是一個三字母組rw-,表示文件所有者的權限,root如第三列所示。
  • 第二組三個字母(rw-再次)將經典地表示適用於文件分配到的使用者*組的權限。*在這種情況下,組dialout如第四列所示。**但是因為這個文件有一個 ACL,所以含義是不同的:**有了一個有效的 ACL,它只是表示授予特定使用者或組而不是文件所有者的最高權限 - 但您無法知道它是哪個使用者或組。
  • 第三組三個字母 ( ---) 表示其他所有人的訪問權限 - 如果都是破折號,則表示不允許訪問。
  • 最後一個字元是+,表示該設備節點上有一個Access Control List(簡稱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 文件權限,並允許為任意數量的使用者和組指定額外的權限。在這種情況下,有一個額外的行user:sddm:rw-指示對 user 的讀寫訪問權限sddm,這是 GUI 登錄管理器程序sddm目前執行的使用者帳戶。還有group::rw-一行確認經典dialout組對該文件具有完全讀/寫訪問權限 -ls -l當 ACL 應用於此設備節點時,此資訊從經典輸出中隱藏。

ACL 授予權限這一事實sddm表明,如果您使用 GUI 登錄對話框在本地登錄,則此作業系統可能已配置為自動授予對本地串列埠的訪問權限。ACL 將自動更改以匹配登錄使用者,並sddm在使用者註銷時自動更改。如果這樣的 ACL 不存在,那麼您的發行版可能不會使用這樣的自動權限機制。

組名dialout是歷史的,因為串列埠曾經與調製解調器一起使用。但是,如果將設備分配到這樣的特殊組,則表明分發可能已配置為使用該dialout組管理對串列埠的訪問。因此,在此範例中,您可能希望將您的使用者帳戶添加到dialout組中。您需要 root/超級使用者訪問權限才能執行此操作:

# usermod -a -G dialout eric

新的群組成員資格在下次登錄時生效,因此您需要退出並重新登錄。

因為/dev文件系統是一個基於 RAM 的虛擬文件系統,所以每次系統啟動時,所有設備節點都是從頭開始創建的。因此,嘗試更改實際設備節點的權限將是徒勞的;當您關閉系統時,您的更改將被遺忘。相反,設備的預設權限使用特定組,其明確目的是允許管理員使用組成員身份授予特定使用者對特定類型設備的訪問權限:按預期使用這些組可能是解決問題的最簡單方法。

引用自:https://unix.stackexchange.com/questions/529090