sudo를 사용하여 명령을 실행하는 것과 루트 사용자로 실행하는 것의 차이점은 무엇입니까?

sudo를 사용하여 명령을 실행하는 것과 루트 사용자로 실행하는 것의 차이점은 무엇입니까?

sudo <command>저는 Linux를 처음 접했고 지금까지 항상 동일한 실행을 생각해 왔습니다 . 나는 최근에 이 명령을 가지고 놀다가 미묘하지만 혼란스러운 차이점을 발견했습니다.<command>rootls

sudo ls -lap(루트 디렉터리에서) 실행하면 다음과 같은 결과가 나타납니다.

sudo ls-lap

vs. 내가 (또는 일반 사용자로) ls -lap실행할 때root아니요 sudo):

LS 루프

명백하지만 중요하지 않은 색상 차이를 제외하면, 자세히 살펴보면 -p실행 명령을 사용할 때 옵션(뒤로 디렉토리 표시)이 작동하지 않는다는 것을 알 수 있습니다 /.linkssudo

둘 사이에 실질적인 차이가 있나요? 아니면 버그인가요?
어쨌든 이것은 두 명령이 다르게 처리된다는 것을 의미합니까?

답변1

당신 ls은 별칭이고 sudo그것을 모릅니다. 사용자를 로 전환하면 root대화형 셸이 시작 스크립트를 실행하고 관련 별칭을 설정합니다.

alias ls다음으로 실행해 보세요 root.통과하다 sudo, 해당 명령을 확인하세요.

심볼릭 링크 출력의 차이는 출력에 색상을 추가하는 부작용인 것 같습니다.

ls -lp --color=tty /

V.

ls -lp --color=never /

같은 차이를 보여주게 됩니다.

관련 정보