화면 사용에 문제가 있습니다. 콘솔을 통해 라우터에 연결하려고 할 때마다 화면이 종료됩니다.
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 는 세 번째 열에 표시된
rw-
대로 파일 소유자의 권한을 나타내는 세 글자 그룹입니다 .root
- 두 번째 세 글자 세트(
rw-
다시)는 일반적으로 다음에 적용된다는 의미입니다.그룹파일이 할당된 사용자 수입니다. 이 경우 그룹은dialout
네 번째 열에 표시됩니다.하지만 이 파일에는 ACL이 있으므로 의미가 다릅니다.ACL이 적용되면 파일의 소유자가 아닌 특정 사용자 또는 그룹에게 부여된 최고 권한만 표시할 뿐 어떤 사용자 또는 그룹인지 알 수는 없습니다. - 세 글자의 세 번째 집합(
---
)은 다른 사람의 접근 권한을 나타냅니다. 모두 대시인 경우 접근이 허용되지 않음을 의미합니다. - 마지막 문자는
+
장치 노드에 추가 액세스 규칙을 지정하는 액세스 제어 목록(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이 이 장치 노드에 적용될 때 클래식 출력에서 숨겨집니다 .sddm
sddm
group::rw-
dialout
ls -l
ACL이 권한을 부여한다는 사실은 sddm
GUI 로그인 대화 상자를 사용하여 로컬로 로그인하는 경우 운영 체제가 자동으로 로컬 직렬 포트에 대한 액세스 권한을 부여하도록 구성될 수 있음을 시사합니다. ACL은 로그인한 사용자와 일치하도록 자동으로 변경되며 sddm
사용자가 로그아웃하면 해당 상태로 되돌아갑니다. 이러한 ACL이 존재하지 않는 경우 배포에서는 이러한 자동 권한 메커니즘을 사용하지 않을 수 있습니다.
dialout
과거에는 직렬 포트가 모뎀과 함께 사용되었기 때문에 그룹 이름 은 역사적입니다. 그러나 장치가 이러한 특수 그룹에 할당된 경우 해당 dialout
그룹을 사용하여 직렬 포트에 대한 액세스를 관리하도록 배포가 구성되었을 수 있음을 나타냅니다 . 따라서 이 예에서는 사용자 계정을 dialout
그룹 에 추가할 수 있습니다 . 이 작업을 수행하려면 루트/수퍼유저 액세스 권한이 필요합니다.
# usermod -a -G dialout eric
새로운 그룹 멤버십은 다음 로그인 시부터 적용되므로 로그아웃한 후 다시 로그인해야 합니다.
/dev
파일 시스템은 RAM 기반의 가상 파일 시스템이므로 시스템이 시작될 때마다 모든 장치 노드가 처음부터 생성됩니다 . 따라서 실제 장치 노드의 권한을 변경하려는 시도는 소용이 없습니다. 시스템을 종료하면 변경 사항이 잊혀집니다. 대신, 장치에 대한 기본 권한은 관리자가 그룹 멤버십을 사용하여 특정 사용자에게 특정 유형의 장치에 대한 액세스 권한을 부여할 수 있도록 하는 명시적인 목적으로 특정 그룹을 사용합니다. 이러한 그룹을 의도한 대로 사용하는 것이 아마도 문제를 해결하는 가장 쉬운 방법일 것입니다.