su
superuser excute() 대신 superuser 명령이 실행되는 이유가 궁금합니다 sudo
.
답변1
su
이는 sudo
다른 사용자(아마도 루트)로서 프로그램(아마도 셸)을 실행하는 가장 일반적인 두 가지 방법입니다. 동일한 효과가 있지만 작업 허용 여부를 결정하는 방식이 매우 다르게 작동합니다.
su
원본 사용자가 루트이거나 사용자가 대상 계정에 대한 액세스 권한이 있음을 증명해야 합니다(일반적으로 비밀번호를 입력하여).sudo
사전 승인 필요: 원본 사용자, 대상 사용자 및 명령의 조합은 구성 파일에서 선언되어야 합니다.
su
가장 먼저 나타났습니다: 일찍 나타났습니다.유닉스 V31973년. 당시에는 루트가 되는 경우만 다루었습니다(따라서 이름은 다음과 같습니다).에스우수한-너재즈). sudo
나중에 왔어1980년에, 복잡한 인증 정책을 정의할 수 있는 가능성을 추가합니다. su
오래되고 단순하기 때문에 모든 UNIX 계열 시스템에서 사용할 수 있는 표준 도구이며 sudo
매우 일반적인 추가 기능이지만 기본 설치 및 임베디드 시스템에서는 누락되는 경우가 많습니다.
su
Debian은 기본 시스템의 일부이기 때문에 기본값 입니다. Linux에는 다음과 같은 su
프로그램이 있습니다.GNU Coreutils(및 ls
등 cp
) 및유틸리티Linux(및 mount
, fdisk
등 taskset
). 루트로 실행되는 많은 시스템 스크립트는 su
시스템 사용자로 작업을 시작하는 데 사용됩니다 . 이 sudo
패키지는 시스템 없이도 시스템을 실행할 수 있기 때문에 선택 사항입니다. 이는 최종 사용자 도구이며 다른 소프트웨어에서는 거의 사용되지 않습니다.
보안을 위해 다음을 참조하세요.sudo, su 또는 login 중 루트 권한을 얻는 가장 안전한 방법은 무엇입니까?
답변2
Sudo는 시스템에 설치되거나 설치되지 않을 수 있는 추가 프로그램입니다. sudo
데비안에서는 소프트웨어 패키지로 제공됩니다 . 언급하고 있는 특정 상황/코드에 대한 추가 정보가 없으면 가장 가능성 있는 대답은 sudo가 설치되었다고 가정할 수 없다는 su
것 입니다.POSIX 표준에는 다음이 필요합니다.Debian 기본 시스템의 일부로 설치됩니다. 따라서 이식성을 극대화하려는 스크립트나 튜토리얼에서는 su
.