SSH 서버에 연결하기 위해 PHP 스크립트를 사용하고 있습니다. 명령을 실행하고 종료됩니다. 비대화형 및 비로그인 셸에 연결합니다. 그래서 파일이 로드 .bashrc
되지 않거나 거기에서 제대로 설정할 .bash_profile
수 없습니다 . ssh의 내부 작동에 대한 정보를 검색해 보니 ssh가 연결된 후 파일을 사용하여 일부 명령을 실행할 umask
수 있는 것 같습니다 . ~/.ssh/rc
내 거~/.ssh/rc
서버에서나는 다음에 연결하고 있습니다 :
#!/bin/bash
echo "Setting umask to 002"
umask 002
echo "Umask set"
문제는 내 umask가 잘못 설정되어 있다는 것입니다. 스크립트를 실행하고 umask
서버에서 명령을 실행 하면 0022
umask가 표시됩니다.
Run: cd /local/web/ && umask
> Setting umask to 002
> Umask set
> 0022
왜 작동하지 않나요?
답변1
umask
내장 명령으로 실행할 때만 유효합니다.
스크립트를 이름으로 호출하지 말고 . script
현재 쉘 프로세스에서 실행되도록 호출하십시오.
0022
하지만 인쇄된 값이 헷갈릴 경우에는 022
차이가 없고 값은 동일합니다.
더 나은 이해하기 쉬운 출력을 위해 POSIX를 사용해 보십시오 umask -S
.