test -r이 ls -l과 일치하지 않습니다.

test -r이 ls -l과 일치하지 않습니다.

파일 및 디렉터리 권한 문제로 어려움을 겪고 있습니다. 모순되는 ls -l말을 해주세요 test -w.

$ ls -l
total 1792
-rw-r--r--  1 root www-data     168 Jan 29 23:53 CODE_OF_CONDUCT.md
-rw-r--r--  1 root www-data   19421 Jan 29 23:53 COPYING
-rw-r--r--  1 root www-data   14547 Jan 29 23:53 CREDITS
-rw-r--r--  1 root www-data      95 Jan 29 23:53 FAQ
-rw-r--r--  1 root www-data 1414049 Jan 29 23:53 HISTORY
-rw-r--r--  1 root www-data    3638 Jan 29 23:53 INSTALL
-rw-r--r--  1 root www-data    5273 Jan 29 23:54 LocalSettings.php
-rw-r--r--  1 root www-data    1530 Jan 29 23:53 README.md
-rw-r--r--  1 root www-data   36717 Jan 29 23:53 RELEASE-NOTES-1.39
-rw-r--r--  1 root www-data     199 Jan 29 23:53 SECURITY
-rw-r--r--  1 root www-data    4371 Jan 29 23:53 UPGRADE
-rw-r--r--  1 root www-data    4496 Jan 29 23:53 api.php
-rw-r--r--  1 root www-data  156078 Jan 29 23:53 autoload.php
drwxr-xr-x  3 root www-data    4096 Jan 29 23:53 images
$ sudo -u www-data test -r INSTALL; echo "$?"
0
$ sudo -u www-data test -w INSTALL; echo "$?"
1
$ sudo -u www-data test -x INSTALL; echo "$?"
1

www-data는 www-data의 멤버입니다.

$ groups www-data
www-data : www-data

아파치는 내가 무엇을 놓치고 있나요? ls에 업로드할 수 없기 때문에 동의하는 것 같습니다 .image/

운영 체제: Ubuntu 22.04.1 LTS 커널: Linux 5.15.0-58-generic

답변1

매우 잘 작동 합니다 test -w. (제목에는 이라고 되어 있지만 test -r질문은 에 관한 것이므로 test -w오타인 것 같습니다.)

보거나 볼 수 있는 man test경우 :man [

-w 파일

   FILE exists and the user has write access.

test평가 참고해주세요사용자에게 읽기 권한이 있습니다

귀하의 경우 다음과 같은 권한이 있습니다.

-rw-r--r--  1 root www-data    3638 Jan 29 23:53 INSTALL

이것뿌리사용자(첫 번째 r), 그룹 구성원www-데이터(두 번째 r) 및 기타 모든 사람(세 번째 r), 디렉터리에 액세스할 수 있는 한 누구나 사용할 수 있습니다.읽기 권한.

그럼에도 불구하고, www-데이터그룹 번호쓰다...도 아니다구현하다권한을 평가할 때www-데이터발생한 사용자 1(또는 오류):

sudo -u www-data test -w INSTALL; echo "$?"
1
sudo -u www-data test -x INSTALL; echo "$?"
1

~에 대한

아파치는 이미지/에 업로드할 수 없기 때문에 ls에 동의하는 것 같습니다.

이 그룹의 구성원에 대한 디렉터리에 대한 권한에는 images쓰기 권한이 없기 때문에 이는 또한 정확합니다.www-데이터sudo chmod g+w( 그룹에 대한 액세스 권한을 부여하는 데 사용됨 )

Apache 프로세스를 실행하는 사용자도 필요합니다.찾다access( x)는 이 디렉터리 이전의 모든 디렉터리에 액세스합니다.

관련 정보