업데이트

업데이트

우선, 예, 상위 디렉토리에 올바른 권한이 있습니다. 이제 그 문제가 해결되었으므로 여기에 거래가 있습니다.

내 사용자는 쓰거나 rm할 수 없습니다./mnt/file-server/reports/vendor/client/2018/02-04-02-10/

모든 사용자는 sftpusers 그룹의 구성원입니다. 이어지는 모든 디렉토리는 02-04-02-10동일한 권한을 갖습니다. 모든 사용자는 파일/디렉토리가 디렉터리에 있는 경우를 제외하고 모든 디렉터리의 파일/디렉터리를 쓰거나 rm할 수 있습니다 02-04-02-10.

$tree -Rpg /mnt/file-server
/mnt/file-server/
├── [drwsrws--- sftpuser]  reports
│   ├── [drwsrws--- sftpuser]  vendor
│   │   ├── [drwsrws--- sftpuser] client
│   │   │   └── [drwsrws--- sftpuser]  2018
│   │   │       ├── [drwsrws--- sftpuser]  02-04-02-10
│   │   │       │   ├── [-rw-rw---- sftpuser]  Fast_Track_Instock.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Forecast_and_Inventory_Planning.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  parent_asi.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_and_Inventory_Product_Details_Manufacturer.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_and_Inventory_Product_Details_Sourcing.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_Diagnostic_Ordered_Revenue.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_Diagnostic_Shipped_Cogs.csv
│   │   │       │   └── [-rw-rw---- sftpuser]  Sales_Diagnostic_Shipped_Revenue.csv

$lsattr /mnt/file-server/reports/vendor/client/2018/ | grep 02-04
-------------e-- ./02-04-02-10

$stat /mnt/file-server/reports/vendor/client/2018/02-04-02-10/
  File: ‘02-04-02-10/‘
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 97eh/2430d  Inode: 15335547    Links: 2
Access: (2770/drwsrws---)  Uid: ( 2001/  fps)   Gid: ( 1006/sftpusers)
Access: 2018-03-19 10:03:34.657116835 -0600
Modify: 2018-03-19 10:03:43.743147764 -0600
Change: 2018-03-19 17:40:03.574287737 -0600
 Birth: -

루트는 파일을 쓰거나 rm할 수 있습니다. 문제는 없습니다.

다음은 사용자가 파일을 터치하려는 시도의 예입니다.

id -a uid=3009(seanhadmin) gid=3009(seanhadmin) groups=3009(seanhadmin),1006(sftpusers)

touch /mnt/file-server/reports/vendor/client/2018/02-04-02-10/foo touch: cannot touch ‘/mnt/file-server/reports/vendor/client/2018/02-04-02-10/foo’: Permission denied

$df -h | grep file-server
/dev/md126      4.0T  1.3T  2.6T  33% /mnt/file-server

내가 도대체 ​​무엇을 놓치고 있는 걸까? 나는 절박한 심정으로 서버를 재부팅하기도 했습니다(물론 문제가 해결되지는 않았습니다).

업데이트

그래서 ACL에서 이상한 점을 발견했습니다.

좋은 ACL은 다음과 같습니다.

$getfacl 01-07-01-13/
 file: 01-07-01-13/
 owner: fps
 group: sftpusers
 flags: ss-
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:group:sftpusers:rwx
default:mask::rwx
default:other::---

여기02-04-02-10

getfacl 02-04-02-10/
 file: 02-04-02-10/
 owner: fps
 group: sftpusers
 flags: -s-
user::rwx
group::r-x
group:2000:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:sftpusers:rwx
default:mask::rwx
default:other::---

아무리 노력해도 제대로 업데이트할 수 없었습니다. 해결 방법으로 디렉터리를 다른 파일 시스템으로 옮긴 다음 다시 옮긴 다음 권한/소유권을 다시 수정했습니다.

ACL이 업데이트되지 않는 이유에 대한 해결책이 있는 사람이 있다면 듣고 싶습니다.

답변1

해결 방법은 문제 디렉터리의 상위 디렉터리를 다른 파일 시스템에 복사한 다음 다시 제자리에 복사하고 권한/소유권을 수정하는 것이었습니다.

문제 디렉토리가 rm'd되었기 때문에 setfacl 문제를 해결할 수 없었습니다.

궁금한 사람이 있다면 내가 실행한 명령은 다음과 같습니다.

$setfacl -Rd --set u:fps:rwx 02-04-02-10 $setfacl -Rd --set g:sftpusers:rwx 02-04-02-10 $setfacl -Rdm o::0 02-04-02-10

관련 정보