왜 일부 명령에는 sudo가 아닌 su가 필요한가요?

왜 일부 명령에는 sudo가 아닌 su가 필요한가요?

로 명령을 실행하는 것은 sudo루트 사용자로 로그인하여 명령을 실행하는 것과 동일하다고 생각했습니다. 그러나 에서는 작동하지 않지만 sudo에서는 작동하는 몇 가지 명령을 발견했습니다 su.

예를 들어,

sudo > mail.log
bash: mail.log: Permission denied

그러나 실제로는 su동일한 명령을 입력하고 실행하면 작동합니다.

왜 이런거야?

답변1

이 명령으로 무엇을 하는지 보세요.

sudo > mail.log

>리디렉션 stdout 전에 명령줄에서 mail.log파일 자르기를 시도합니다. 이 작업은 일반 사용자가 수행합니다( sudo인수 없이 시작하기 전). 아마도 일반 사용자에게는 mail.log파일 에 대한 쓰기 권한이 없을 것입니다 .

모든 것이 정상적으로 작동합니다.

명령을 실행하고 파일 형식에 쓰기 위해 sudo가 필요한 경우 다음 명령을 사용하십시오.

sudo "some_command with operands > mail.log"

관련 정보