나는 매우 기본적인 혼란을 겪고 있습니다. 어떻게 sudo
작동하나요?
스크립트를 실행했을 때 다음 권한이 있는 디렉터리에 파일을 쓰려고 했기 때문에 실패했다는 것을 알았습니다.
$ ls -l thedir
drwxr--r-- usr grp
하지만 스크립트를 실행하면 sudo -u usr
작동합니다.
sudo를 사용하여 스크립트를 성공적으로 실행할 수 있다면 애초에 스크립트가 실패하는 이유는 무엇입니까?
즉, 해당 사용자로 실행할 수 있는 충분한 권한이 있으면 처음부터 스크립트를 성공적으로 실행할 수 있어야 한다고 생각합니다.
답변1
다른 사용자로 행동할 수 있는 능력이 있다고 해서 현재 사용자와 동일한 권한이 부여되는 것은 아닙니다. 다른 사용자 역할을 하는 현재 사용자 계정의 능력에 따라 권한이 현재 사용자에게 전달되지 않습니다. sudo
그리고 su
귀하는 다른 사용자가 "되거나" "역할"할 수 있습니다. 즉, sudo를 사용하면 실제로 일시적으로 해당 사용자가 됩니다.
root
sudo
다른 사용자로 컴퓨터에 로그온 하더라도 su
시스템에 관한 한 귀하는 해당 사용자이지 가 아니기 때문에 해당 사용자와 동일한 제한 사항(및 사용 권한)을 갖게 됩니다 root
.
답변2
내 생각에 가장 먼저 해야 할 일은 스크립트가 당신의 스크립트처럼 실행되는지 알아내는 것입니다.
#!/bin/bash
whoami
작업 중인 스크립트(예: cronjob)를 호출하는 것과 같은 방식으로 호출합니다. 이는 스크립트가 다른 사용자로 실행되고 있는지에 대한 단서를 제공할 수 있습니다.