를 호출하면 sudo
암호를 묻는 메시지가 표시된 다음 /etc/sudoers
구성 파일을 확인하여 사용자에게 명령을 실행하기 위한 액세스가 허용되는지 확인합니다. 특정 사용자나 그룹이 특정 명령을 실행할 수 있도록 하는 구성 파일 /etc/sudoers
입니다 . sudo
예를 들어, 아래에서는 사용자가 john
터미널에서 power off 명령을 실행하도록 허용합니다.
john ALL= /sbin/poweroff
분명히 루트 사용자는 무엇이든 할 수 있습니다:
root ALL=(ALL) ALL
sudo
루트는 무엇이든 할 수 있기 때문에 우리는 종종 이 프로그램을 사용하여 일부 시스템 수준 명령을 실행하기 위해 루트(암호 프롬프트 사용)로 권한을 높이고 싶습니다 . 올바른 사용자 비밀번호를 입력하면 명령을 실행할 수 있습니다. 하지만 먼저 이 사용자를 루트로 승격시킬 수 있는 방법이 필요합니다. 그러므로 목적은 /etc/group
.
sudo:x:27:myuser
/etc/group
사용자가 속한 그룹을 정의하는 텍스트 파일입니다. 파일 시스템 권한은 사용자, 그룹, 기타로 구분됩니다. 그룹을 사용하면 디스크, 프린터 및 기타 주변 장치에 대한 액세스와 같은 추가 기능을 체계적으로 위임할 수 있습니다.
다 읽었을 때이 기사데몬을 사용하는 방법과 관련하여 gammu-smsd
다음 줄을 발견했습니다.
SMS를 보낼 때마다 관리자 비밀번호를 입력하고 싶지는 않으므로 가장 먼저 해야 할 일은 다이얼아웃 그룹에 자신을 추가하는 것입니다. 이 그룹의 모든 구성원은 Ubuntu 시스템에서 모뎀과 유사한 장치를 사용할 권한이 있습니다.
다이얼아웃 그룹에 이러한 권한을 부여하는 것은 어디에 정의되어 있습니까? 내 /etc/sudoers
파일을 살펴보니 다이얼아웃에 대한 언급이 없습니다.
$ sudo cat /etc/sudoers
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
그룹과 관련하여 핵심 요소가 누락된 것 같습니다.
답변1
그룹에 다양한 액세스 권한을 부여하는 Unix 접근 방식은 매우 원시적입니다. 이는 대부분 문제의 장치에 쓰기(및 읽기 가능) 유형 권한만 부여하는 것입니다. 예를 들어 다이얼아웃의 경우:
faheem@orwell:/dev$ ls -lah | grep dialout
crw-rw---T 1 root dialout 4, 64 Jul 22 22:45 ttyS0
crw-rw---T 1 root dialout 4, 65 Jul 22 22:45 ttyS1
crw-rw---T 1 root dialout 4, 66 Jul 22 22:45 ttyS2
crw-rw---T 1 root dialout 4, 67 Jul 22 22:45 ttyS3
따라서 다이얼아웃 그룹은 문제의 장치(이 경우 직렬 포트)에 대한 쓰기 및 읽기 권한을 갖습니다.
답변2
현재 사용자가 특정 그룹에 속해 있는지 확인하는 프로그램을 작성해 보세요. 그렇다면 응용프로그램을 실행하고, 그렇지 않으면 관리자 비밀번호를 묻는 메시지를 표시합니다.
이는 sudoers 파일과는 아무런 관련이 없지만 소프트웨어 코드 수준에서 수행되는 검사입니다.