Ubuntu에서 폴더의 여러 사용자에게 쓰기 권한을 부여하십시오.


75

사용자 tomcat6이 소유 한 폴더가 있습니다.

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

다른 사용자 (ruser)가 문서 폴더에 대한 쓰기 권한을 허용하고 싶습니다. 두 사용자 (tomcat6 및 ruser)는 동일한 그룹에 속하지 않습니다. 나는 setfacl:

sudo setfacl -m  u:ruser:rwx document

그러나 이것은 나에게 준다. setfacl: document: Operation not supported 오류. 친절하게 도와주세요.

답변:


136

이렇게하려면 두 가지 방법이 있습니다. 디렉토리를 "world"writable로 설정하거나 두 사용자에 대한 새 그룹을 만들고 해당 그룹에 쓰기 가능하게 만듭니다.

분명히 세계에 쓰기 가능하게 만드는 것은 나쁜 것이므로 두 번째 옵션이 바람직합니다.

Linux 사용자는 둘 이상의 그룹에 속할 수 있습니다. 이 경우 새로운 그룹을 만들고 싶습니다. tomandruser:

sudo groupadd tomandruser

그룹이 있으므로 두 명의 사용자를 추가하십시오.

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

이제 남은 일은 디렉토리에 대한 사용 권한을 설정하는 것입니다.

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

이제 tomandruser 그룹의 구성원 만 디렉토리 내에서 모든 것을 읽고, 쓰거나 실행할 수 있습니다. chmod 및 chgrp 명령에 대한 -R 인수를주의하십시오. 이것은 대상 디렉토리의 모든 하위 디렉토리로 반복되고 발견 된 모든 파일과 디렉토리를 수정하도록 지시합니다.

770을 다음과 같이 변경할 수도 있습니다. 774 다른 사람들이 파일을 읽을 수있게하려면, 775 다른 사용자가 파일을 읽고 실행하도록하려면 그룹 할당 변경 사항은 사용자가 로그 아웃하고 다시 로그인 할 때까지 적용되지 않습니다.

또한 사용자 중 한 사람이 디렉토리에 만든 새 파일이 그룹의 다른 사용자가 자동으로 쓰기 가능하도록하려면 (아마도) 수행해야합니다. 이리 .


2
디렉토리에 대한 set-group-ID 플래그를 설정하여 새 그룹 및 하위 디렉토리가 자동으로 올바른 그룹에 속하도록 만들 수도 있습니다. sudo find /path/to/the/directory -type d -exec chmod 2770 '{}' \;
Marcello Nuccio

8
나는 chmod 770이나 775를 사용하는 것을 피할 것이다. 그 허락은 모든 파일. 대신 다음과 같은 것을 사용하십시오. chmod -R g+w 다른 모든 것을 망쳐 놓지 않고 쓰기 권한을 추가 할 수 있습니다.
Christian Varga

2
사용자가 새 파일을 만들면 (예 : mysql by SELECT INTO OUTFILE ), 기본 그룹에 사용 권한을 설정합니다 ( mysql 이 경우 파일은 다른 사용자가 액세스 할 수 없습니다. 이 문제를 해결하는 방법?
Olexa

2
예를 들어 사용자가 폴더 소유권을 변경하지 않고 폴더에 대한 쓰기 액세스 권한을 부여하려는 경우 어떻게해야합니까? 당신은 public_html 폴더에 아파치의 권한을 망쳐 놓고 싶지 않아?
codecowboy

1
노트 : "그룹 할당 변경은 사용자가 로그 아웃하고 다시 로그인 할 때까지 적용되지 않습니다." 나는 그것을 놓쳤다 :)
Vladimir Vukanac

1

예제 스크립트는 w (write)/ r (read) / x (execute) 주어진 폴더 경로에 대한 사용 권한 /path/to/the/directory ...에 대한 USER1USER2. 쓰기 권한 만 부여하려면 rwxw.


#!/bin/bash

# Block others and people in the same group to do read/write/execute on give folder:    
sudo chmod 700 /path/to/the/directory 

#Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx  /path/to/the/directory 

#Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx  /path/to/the/directory 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.