사용자가 다른 사용자의 디렉터리에 파일을 생성하도록 허용

사용자가 다른 사용자의 디렉터리에 파일을 생성하도록 허용

나는 사용자 apache와 그룹 apache가 소유한 웹사이트를 가지고 있으며 다른 사용자가 웹사이트의 폴더에서 작업할 수 있도록 허용하고 싶습니다. 해당 사용자가 폴더에서 새 파일을 편집하고 생성할 수 있어야 합니다.

사용자를 추가하고 비밀번호를 할당한 다음 액세스 권한을 부여하려는 폴더로 홈 디렉터리를 변경했습니다.

/etc/passwd
peter:x:1016:1017::/home/application/public_html/documents:/bin/bash

그런 다음 이를 Apache 그룹에 추가했습니다.

[root@app01 documents]# groups peter
peter : peter apache

그런 다음 작업할 폴더가 (a) apache 소유인지, (b) 해당 그룹에 읽고 쓸 수 있는지 확인하세요. (나도 777을 써봤는데 여전히 안됨)

drwxrwxr-x+  6 apache apache     4096 Nov 16 09:03 documents

그런 다음 사용자로 로그인하고 폴더에 파일을 만들려고 시도했지만 다음과 같은 결과가 나타납니다.

-bash-4.2$ touch 123.txt
touch: cannot touch ‘123.txt’: Permission denied

[root@app01]# getfacl documents
# file: documents
# owner: apache
# group: apache
user::rwx
group::r-x
group:apache:rw-
mask::rwx
other::rwx
default:user::rwx
default:group::r-x
default:group:apache:rw-
default:mask::rwx
default:other::r-x

디렉터리에 있는 파일을 편집하고 문제 없이 저장할 수 있지만 새 파일이나 폴더를 만들 수는 없습니다. 이 작업을 수행하려면 또 무엇을 해야 합니까?

답변1

일반적으로 사용자 홈페이지 외부에 공유/협업 공간을 만들어야 하며 /var/www/website1/public_html을 권장합니다.

website1이라는 그룹과 website1이라는 사용자를 만들고, website1-admin 그룹을 만듭니다.

그런 다음 디렉터리를 775로 설정할 수 있습니다.

/var/www/website1은 website1:website1-admin일 수 있으며 /var/www/website1/public_html은 website1:website1일 수 있습니다.

그런 다음 쓰기 권한이 필요한 모든 사용자를 website1 그룹에 추가하고 해당 그룹에 apache를 추가합니다.

관리자는 public_html 이외의 파일에 액세스하고 편집할 수 있도록 website1-admin 그룹에 배치될 수 있습니다.

이를 통해 사용자의 홈페이지 /home/wesbite1을 700으로 잠글 수 있습니다.

관련 정보