su는 switch user
의 약어입니다.
su 명령어를 사용하면, 다른 user 계정으로 로그인할 수 있습니다.
해당 user 계정으로 switch하게 되면, 그 user가 로그인한 것처럼 해당 user가 소유한 모든 파일, 디렉토리들에 접근할 수 있게 됩니다. 이 명령어는 root user로 관리 작업을 수행해야하는 시스템 관리자가 주로 사용합니다.
root user : Linux,Unix에서의 super user account.
system에서 최고 권한을 가진 계정
sudo는 superuser do
의 약어입니다.
sudo 명령어를 사용하면, superuser/다른 유저로써 로그인하지 않더라도, 해당 권한으로 명령을 내릴 수 있습니다. 해당 커맨드를 사용할때는 target user의 password가 아닌, 자신의 password를 입력합니다. 해당 커맨드는, root 권한이 없는 시스템에서 admin task를 수행할 때 유용하게 사용됩니다.
su
는 다른 user account로의 switch
를 통해 해당 유저 계정에 full access 하는 것이고,
sudo
는 다른 유저의 계정인 것처럼 명령어를 수행하는 것입니다.
su
는 target user account의 암호를 입력해야하므로, 해당 암호를 알고 있는 사용자는 누구나 해당 계정으로 전환하여 해당 사용자가 소유한 모든 파일 및 디렉토리에 대한 전체 액세스 권한을 얻을 수 있습니다.
반대로 sudo
를 사용하면 암호를 공유하지 않고도 특정 사용자/그룹에게 super user/다른 사용자로서 특정 명령을 실행할 수 있는 권한을 부여할 수 있습니다. 이렇게 하면 필요한 사용자에게만 액세스를 제한하고, 실행되는 모든 권한이 있는 명령을 기록하고 audit할 수 있습니다.
sudo
의 또 다른 장점은 권한에 대한 시간 제한을 지정할 수 있으므로 지정된 시간이 지나면 사용자의 액세스가 자동으로 취소된다는 점입니다. 이를 통해 무단 액세스 또는 상승 위험을 줄일 수 있습니다.
-> sudo가 액세스에 대해 보다 세분화된 control을 제공하고, password 유출 위험이 낮으며, 모든 권한이 있는 작업을 기록하고 audit 할 수 있기 때문에 sudo가 더 선호되고 있습니다.