내 서버에 하드 드라이브를 설치한 후 큰 문제가 발생했습니다. 모든 것이 잘 작동하지만 테스트한 후 bash 파일에서 bash 파일을 실행하면 설치 전에는 잘 작동했지만 설치 후에는 루트 모드 권한이 거부되었습니다.
ls -alt /var/www/test/bin/change-sys-hostname
-rwxrwx--- 1 www-data www-data
내 코드는 다음과 같습니다.example.sh
/var/www/test/bin/change-sys-hostname $servername
결과:
permission denied
답변1
권한 거부는 허용되지 않는 작업을 시도하고 있음을 의미합니다. 귀하의 질문에는 허용되지 않는 콘텐츠를 결정하는 데 필요한 몇 가지 기본 정보가 부족합니다.
처음부터 시작하기: example.sh
.이 스크립트를 어떻게 실행합니까? 처럼 bash examle.sh
? 처럼 ./example.sh
? 후자의 경우: 스크립트를 직접 실행할 수 있어야 합니다. 이 스크립트를 실행할 수 있나요? ls -l
이를 확인하는 데 사용합니다 .
참고로 다음 줄로 스크립트를 시작해야 합니다.
#!/bin/bash
bash를 사용하여 실행하십시오.
두 번째 참고 사항: $server
설정해야 합니다. 이는 쉘 환경에서 설정될 수 있지만 확실해야 합니다. 그러나 $server
올바른 값을 설정하지 않으면 다른 오류 메시지가 나타날 수 있습니다. $server
확실히 하기 위해 값으로 응답할 수도 있습니다.
다음 기사: 실행할 수 있나요 /var/www/test/bin/change-sys-hostname
? 이 스크립트는 그룹별로 실행될 수 있습니다 www-data
. 당신은 그 그룹에 속해 있나요? 그룹 세트에 id
있는지 확인하세요 .www-data
두 번째는 change-sys-hostname
내부에서 할 수 없는 일이 있는지 여부입니다. change-sys-hostname
실행이 허용되어야 하는 다른 프로그램이 있을 수도 있습니다. 특히, 스크립트는 루트만 쓸 수 있는 일부 파일을 쓸 수 있습니다. 그래서 sudo
필요할 수도 있습니다.
해결책을 찾기 위해 취해야 할 몇 가지 기본 단계를 살펴보았습니다. 이 단계의 많은 정보는 문제에 포함되지 않으며 진행 상황을 평가하는 데 필요하다는 것을 알 수 있습니다.