사용자가 루트를 통해 다른 사용자의 파일에 액세스하는 것을 방지하는 메커니즘은 무엇입니까?

사용자가 루트를 통해 다른 사용자의 파일에 액세스하는 것을 방지하는 메커니즘은 무엇입니까?

다중 사용자 시스템에서 사용자가 루트를 통해 다른 사용자의 파일에 액세스하는 것을 방지하는 것은 무엇입니까? 맥락에 따라 질문은 다음과 같이 내 이해를 바탕으로 합니다.

루트 권한과 관련된 두 가지 명령이 있으며 sudo, su. 을 사용하면 sudo다른 사용자(루트 포함)가 되지 않습니다. sudo사용자를 대신하여 실행되는 사전 정의된 승인된 명령 목록이 있습니다. 루트나 다른 사용자가 아니기 때문에 자신의 비밀번호를 사용하여 간단히 인증할 수 있습니다.

를 사용하면 su실제로 루트 또는 다른 사용자가 됩니다. Bob이라는 사용자가 되려면 Bob의 비밀번호가 필요합니다. 루트가 되려면 루트 비밀번호(다중 사용자 시스템에서 정의됨)가 필요합니다.

참고자료:Howtogeek.com:

su루트 사용자 계정으로 전환하며 루트 계정의 비밀번호가 필요합니다. sudo루트 권한으로 단일 명령을 실행하면 루트 사용자로 전환되지 않습니다.

그리고

sub bob 명령을 실행하면 Bob의 비밀번호를 입력하라는 메시지가 표시되고 쉘은 Bob의 사용자 계정으로 전환됩니다.컴퓨터 희망 네트워크

tecmint.com:

'sudo'는 루트 명령을 실행할 권한이 있는 사용자를 나타내는 루트 바이너리 setuid입니다.

루트가 되면 모든 것에 접근할 수 있습니다. 다른 사용자의 계정에 무단으로 접근하는 사람은 루트 비밀번호를 얻을 수 없으며, sudo무엇을 사용할 수 있는지에 대한 정의 도 없습니다 .

다음과 같은 것을 볼 때까지 이 모든 것이 의미가 있습니다.이 링크sudo -V, 여기에 자신의 비밀번호를 사용하고 루트가 되기 위한 튜토리얼이 있습니다 sudo su -.

어떤 사용자라도 루트 비밀번호 없이 루트가 될 수 있다면 무단 액세스로부터 사용자 파일을 보호할 수 있는 메커니즘은 무엇입니까?

답변1

이것기본sudo와 의 차이점은 su인증에 사용되는 메커니즘입니다. 사용자는 비밀번호(철저히 보호되어야 함)를 su알아야 하며 일반적으로 사용자에게 자신의 비밀번호를 묻도록 구성됩니다. 모든 사용자가 혼란을 일으키는 것을 막기 위해 다행히도 이 명령으로 해제된 권한은 파일을 사용하여 구성할 수 있습니다.rootsudosudo/etc/sudoers

이 두 명령은 종종 다른 사용자로 명령을 실행합니다 root.

sudo su -사용자(또는 사용자가 속한 그룹)가 /etc/sudoers파일에 구성되어 있기 때문에 제공한 예제에서 작동합니다. 즉, 그들은허용하다sudo이를 통해 일시적 으로 권한을 sudo얻고 (사용자 이름 이 root제공되지 않은 경우 기본값) . 이제 비밀번호를 몰라도 액세스할 수 있습니다.rootsu -rootroot

반대로, 사용자에게 사용을 허용하지 않으면 sudo사용할 수 없습니다 sudo su -.

배포판에는 일반적으로 wheel구성원이 sudo모든 명령을 실행할 수 있도록 하는 그룹(종종 이라고 함)이 있습니다. 이 그룹에서 제거하면 sudo기본적으로 전혀 사용할 수 없게 됩니다 .

이를 수행하는 라인은 다음 /etc/sudoers과 같습니다:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

이 그룹에서 사용자를 제거하면 시스템이 더욱 안전해지지만 사용자(또는 다른 시스템 관리자)가 사용자를 대신하여 시스템에서 더 많은 관리 작업을 수행하게 됩니다.

더 현명한 절충안은 누가 그것을 사용할 수 있고 사용할 수 없는지, 그리고 그들이 사용할 수 있는 명령(기본값 대신)을 sudo보다 세밀하게 제어할 수 있도록 구성하는 것입니다.sudo모두주문하다). 예를 들어,

## Allows members of the users group to mount and unmount the
## cdrom as root
%users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

(이전의 %wheel 행이 주석 처리되었거나 wheel그룹에 사용자가 없는 경우에만 유용합니다.)

아마도 배포판에서는 관리자가 사용자와 시스템에 무엇을 요구할지 예측할 수 없기 때문에 이러한 보다 세분화된 구성을 표준으로 구현하지 않을 것입니다.

결론은 세부 사항을 알고 있으면 사용자 셸 액세스 권한을 부여하지 않는 다른 명령이나 다른 사용자의 파일을 변경할 수 있는 명령에 대한 액세스를 허용하는 동안 sudo중지할 수 있다는 것입니다 . 누구에게 , 어떤 수준까지 허용하는지 신중하게 고려해야 합니다 .sudo su -rootsudo

경고하다:visudo파일을 편집하려면 항상 이 명령을 사용하십시오. sudoers편집 내용을 확인하고 잘못 구성된 파일(구문 오류로 인해)로 인해 sudo오류에 대해 편집을 사용할 수 없는 난처한 상황을 방지할 수 있습니다. 이는 root이 계정이 기본적으로 비활성화된 Debian/Ubuntu 및 변형에서 특히 그렇습니다.

답변2

루트 권한과 관련된 두 가지 명령이 있으며 sudo, su. 을 사용하면 sudo다른 사용자(루트 포함)가 되지 않습니다. sudo사용자를 대신하여 실행되는 사전 정의된 승인 명령 목록이 있습니다(이는 선택한 사용자에게 선택적 권한을 부여하는 방법에 대한 설명에서 제가 물었던 질문을 해결합니다). 루트나 다른 사용자가 아니기 때문에 자신의 비밀번호를 사용하여 간단히 인증할 수 있습니다.

이것은 정확하지 않습니다. su와 사이의 가장 분명한 차이점 sudo은 후자가 일반적으로 대상 사용자의 비밀번호가 아닌 자신의 비밀번호를 요구하도록 구성되고 sudo더 유연하다는 것입니다. 그들의 전체 목적은 당신을 또 다른 사용자로 만드는 것입니다. su특정 명령을 실행하고 sudo대화형 셸을 시작할 수 있으며 기본 모드가 다릅니다.

가장 일반적으로 이름이 지정된 그룹이 있습니다.wheel, 모든 명령을 모든 사용자로 실행할 수 있습니다. 때로는 사용자가 특정 사용자로서 특정 명령만 실행하도록 제한하려는 경우가 있는데 sudo이는 su.

를 사용하면 su실제로 루트 또는 다른 사용자가 됩니다. Bob이라는 사용자가 되려면 Bob의 비밀번호가 필요합니다. 루트가 되려면 루트 비밀번호(다중 사용자 시스템에서 정의됨)가 필요합니다.

sudo또한 설정 규칙에 따라 /etc/sudoers허용되는 한 자신의 비밀번호를 사용하여 모든 사용자가 될 수 있습니다 . sudo사용자가 실행할 수 있는 명령을 제한할 수 있으며 특정 사용자의 비밀번호를 공개하지 못하도록 하거나 특정 사용자가 비밀번호를 전혀 갖고 정기적으로 로그인할 수 없도록 방지합니다.

루트가 되면 모든 것에 접근할 수 있습니다. 다른 사용자의 계정에 무단으로 접근하는 사람은 루트 비밀번호를 얻을 수 없으며, sudo무엇을 사용할 수 있는지에 대한 정의 도 없습니다 .

이 모든 것은 자신의 비밀번호만 사용하여 루트가 되는 방법에 sudo -V대한 튜토리얼인 [이 링크][1]와 같은 것을 보기 전까지는 의미가 있습니다 .sudo su -

어떤 사용자라도 루트 비밀번호 없이 루트가 될 수 있다면 무단 액세스로부터 사용자 파일을 보호할 수 있는 메커니즘은 무엇입니까? [1]:http://home.ubalt.edu/abento/linux/terminal/sudo.html

먼저 sudo -V바이너리 버전을 인쇄 sudo하고 sudo -v이후 섹션에 관계없이 캐시된 자격 증명을 확인합니다.

둘째, 이것은 꽤 어리석은 일입니다. 지정된 사용자( )로 대화형 셸을 시작하는 옵션이 sudo su이미 있고 , 하나의 권한 승인 도구( )를 실행하여 다른 권한 승인 도구( )를 실행하는 것은 정말 어리석기 때문입니다.sudosudo -isudosu

셋째, "모든 사용자"는 반드시아니요루트가 될 수 있습니다. 가능하다면 전체 시스템이 완전히 안전하지 않을 것입니다. 루트 사용자는 강력한 권한을 갖고 있으며 무엇이든 할 수 있으며 루트로 명령을 실행하는 것은 그 용도 중 하나일 뿐입니다 sudo. 특정 사용자가 특정 사용자로서 특정 명령을 실행할 수 있도록 하는 일반적인 권한 부여 도구입니다.

답변3

짧은 대답은 할 수 없다는 것입니다.

누군가(예: simth)가 sudoer 그룹에 가입하도록 허용하면 그 사람은 명령을 내린 sudo su -다음 루트가 되고 다른 사용자(예: wesson)가 될 수 있습니다. 이것은 simth에 루트 비밀번호를 제공하는 또 다른 방법입니다. 하지만 그(Smith)는 루트 비밀번호를 변경할 수 있습니다.

또한 눈치 챘다

/etc/sudoers1) 한 줄에 지정 해야합니다

%sudo   ALL=(ALL:ALL) ALL

2) smith(위 예에서)는 sudo 그룹에 있어야 합니다.

이는 기본 설정이 아닙니다.

액세스 권한 을 부여하려면 누군가(Smith)를 완전히 신뢰해야 합니다 sudo su -.

답변4

이러한 답변 중 어느 것도 이 문제를 해결하지 못합니다. 정답은 파일 권한을 통해 모든 사용자가 루트를 포함하여 다른 사용자의 파일에 액세스하는 것을 방지한다는 것입니다. 예, 루트가 파일(또는 디렉터리, 즉 파일)을 읽고 쓰는 것을 방지하는 방법이 있습니다.

예를 들어 디렉터리에는 다음 항목이 포함될 수 있습니다.

drwxrwxr-x 13 루트 루트 8192 1월 17일 15:38 bash-5.2.15 drwxr-xr-x 15 루트 루트 4096 1월 20일 08:13 비트코인 ​​drwxr-xr-x 8 루트 루트 4096 12월 6일 16:37 Boost_1_84_0 -rwx - ----- 1 루트 루트 13210 1월 19일 17:44 doit_configure -rwx------ 1 루트 루트 7491 10월 17일 11:44 doit_configure_bash

디렉토리는 "d"로 시작합니다. 일반 파일은 "-"로 시작합니다. 그런 다음 파일/디렉토리에 대한 권한이 있습니다. 예를 들어 rwxrwxrwx는 소유자, 그룹 및 기타의 세 부분으로 나뉩니다. r=읽기, w=쓰기, x=실행 권한.

"su" 및 "sudo" 명령 유틸리티는 액세스에 도움이 되지만 실제로 원래 질문에 대한 답은 아닙니다.

관련 정보