su로 로그인하지 않은 경우 바이너리 파일을 실행할 수 없습니다.

su로 로그인하지 않은 경우 바이너리 파일을 실행할 수 없습니다.

나는 Linux를 가지고 놀고 있으며 터미널 사용을 시작하고 있습니다. 일반 사용자에게는 권한이 없는 파일 시스템의 루트에 폴더를 만들려고 합니다.

실행할 때 su root mkdir u01; 자격 증명을 묻는 메시지가 나타나면 터미널에서 "바이너리 파일을 실행할 수 없습니다"라는 오류를 반환합니다.

su root다음을 실행하면 mkdir u01명령이 제대로 작동합니다.

어떤 아이디어가 있나요?

저는 Oracle Linux 6.5를 사용하고 있습니다.

답변1

문제는 에 대한 전화입니다 su.

다른 사용자로 명령을 실행하는 올바른 구문은 다음과 같습니다.

su [username] -c "[command]"

명령 주위에 따옴표가 있습니다. 명령이 제대로 실행되도록 하려면 다른 인수를 유지하는 것이 중요합니다.

답변2

전반적으로 "일반" 사용자는 파일 시스템의 루트에 파일이나 폴더를 만드는 것이 허용되어서는 안 됩니다. 이를 허용하면 모든 방식의 보안 문제가 발생합니다.

"su root mkdir u01"을 실행하면 시스템에서 루트 비밀번호를 묻습니다. 아마도 실행해야 할 것은 "sudo mkdir u01"이며 일반 사용자 비밀번호를 묻습니다. 이는 sudo가 이를 허용하도록 올바르게 구성되었다고 가정합니다.

답변3

올바르게 구성한 경우 sudo해당 디렉터리를 만드는 올바른 방법은 다음과 같습니다.

sudo mkdir u01

어떤 이유로 sudo가 작동하지 않는 경우(또는 설치되지 않은 경우(가능성은 낮지만 가능)) 다음과 같이 su명령 매개변수와 함께 사용할 수 있습니다 .-c

su -c "mkdir u01"

( 에 올바르게 전달하려면 명령을 인용해야 합니다 su.)

sudo사용 과 사용의 중요한 차이점 su: 비밀번호를 묻는 메시지가 표시되면 sudo사용자 계정 비밀번호가 필요하지만 su루트 계정 비밀번호가 필요합니다. 많은 Linux 배포판(특히 Ubuntu/Debian 제품군)에서는 루트 계정 비밀번호가 할당되지 않을 수 있으므로 su사전에 루트 계정에 비밀번호를 할당하지 않는 한 실패할 수 있습니다.

관련 정보