Quyền bị từ chối trong thư mục 777


17
john@ubuntu01:~$ sudo ls -l /var/opt/gitlab/git-data/repositories/GL/www.git
total 25068
drwxr-xr-x  2 git  git      4096 aug 14 19:58 branches
-rw-r--r--  1 git  git        66 aug 14 19:58 config
drwxrwxrwx  2 root root     4096 aug 15 14:56 custom_hooks
-rw-r--r--  1 git  git        73 aug 14 19:58 description
-rw-r--r--  1 git  git        23 aug 14 19:58 HEAD
lrwxrwxrwx  1 git  git        47 aug 14 19:58 hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks
drwxr-xr-x  2 git  git      4096 aug 14 19:58 hooks.old.1471193907
-rw-r--r--  1 git  git      1329 aug 15 14:48 index
drwxr-xr-x  2 git  git      4096 aug 15 13:58 info
drwxr-xr-x 71 git  git      4096 aug 15 14:55 objects
-rw-r--r--  1 git  git        98 aug 15 13:58 packed-refs
-rw-r--r--  1 git  git  25618530 aug 15 14:03 post-receive.log
drwxr-xr-x  5 git  git      4096 aug 14 20:31 refs
john@ubuntu01:~$ ls -l /var/opt/gitlab/git-data/repositories/GL/www.git
ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': Permission denied

Đây là ACL

john@ubuntu01:~$ sudo lsattr /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks
-------------e-- /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks/post-receive

Tôi chưa bao giờ nhìn thấy điều này trước đây. Không được phép với LS ngay cả với 777? Tôi cần chia sẻ thư mục này để phát triển thuận tiện hơn. Làm thế nào tôi có thể giải quyết nó? Cảm ơn bạn.

EDITED: (đây là yêu cầu của bạn)

john@ubuntu01:~$ sudo ls -ld /var/opt/gitlab/git-data/repositories/GL/www.git
drwxrwxrwx 8 git git 4096 aug 15 14:48 /var/opt/gitlab/git-data/repositories/GL/www.git
john@ubuntu01:~$ sudo ls -ld /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks
drwxrwxrwx 2 root root 4096 aug 15 14:56 /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks

EDITED THÊM

sudo ls -ld /var/opt/gitlab/git-‌​data/repositories/GL/‌​www.git
ls: cannot access '/var/opt/gitlab/git-‌​data/repositories/GL/‌​www.git': No such file or directory

hmmm ... đây là cái gì


1
quyền của thư mục bạn đang lsing không được hiển thị?
Zanna

là custom_hooks và có root root drwxrwxrwx 2, xem ở trên
user1797147

1
ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': Permission deniedvì vậy hãy cho chúng tôi thấy điều gì xảy ra khi bạnls -ld /var/opt/gitlab/git-data/repositories/GL/www.git
Zanna

1
bạn có thể vui lòng làm những gì tôi yêu cầu? nếu bạn không có quyền thực thi trên thư mục mẹ thì 777 trên cái này sẽ không giúp bạn
Zanna

2
Rõ ràng vấn đề của bạn là lên cây cao hơn rồi. Tiếp tục tăng cấp và kiểm tra các quyền, và bạn sẽ thấy rằng một trong số chúng không có quyền x cho o, chẳng hạndrwxr-x---
Zanna

Câu trả lời:


21

Điều này xảy ra bởi vì có một thư mục cao hơn trong cây mà bạn không có quyền thực thi. Nếu một thư mục mẹ không có quyền thực thi đối với một số người dùng, thì người dùng đó không thể thống kê bất kỳ thư mục con nào bất kể các quyền trên các thư mục con đó.

Thí dụ:

$ ls -l cake
drwxr-xr-x 2 zanna zanna 4096 Jul 12 11:43 brownies
$ chmod 666 cake
$ ls -l cake/brownies
ls: cannot access 'cake/brownies': Permission Denied

Mặc dù tôi là chủ sở hữu của thư mục 'brownies' và tất cả người dùng đều có quyền đọc và nhập nó, tôi không thể truy cập nó nếu thư mục mẹ của nó không có quyền thực thi.

Tốt hơn là sử dụng các nhóm để quản lý quyền hơn là cung cấp quyền cho thư mục 777. Bạn có chắc chắn cần phải làm điều đó?

Cách khắc phục sự cố theo cách an toàn hơn:

Giả sử trên /var/opt/gitlabthư mục bạn có một cái gì đó như thế này:

drwxr-x--- 5 git git 4096 aug 14 17:30 gitlab

Thêm chính bạn và tất cả những người dùng khác cần sự cho phép vào nhóm git, ví dụ:

sudo usermod -a -G john git

Người dùng phải đăng xuất và đăng nhập lại để có hiệu lực. Ngay cả khi quyền viết là cần thiết trên thư mục con, bạn cũng không cần thêm nó vào thư mục mẹ, vì vậy bạn hoàn toàn không phải sử dụng chmod. Bạn có thể muốn thay đổi quyền của thư mục con để ngăn mọi người không thể ghi vào nó:

chmod 775 /var/opt/gitlab/git‌​-data/repositories/GL‌​/www.git/custom_hooks

hoặc là

chmod o-w /var/opt/gitlab/git‌​-data/repositories/GL‌​/www.git/custom_hooks

1
Cảm ơn một lần nữa, không, tôi chỉ đang thử nghiệm một số kịch bản. Cảm thấy thoải mái hơn nhiều khi chỉnh sửa với N ++ trên windows so với Gedit thô sơ. Ngoài ra Nautilus thô sơ không thể CẮT một cái gì đó sau đó TRẢ TIỀN bằng cách tạo một thư mục mới cùng lúc ... hoặc nhấp chuột phải -> Thư mục mới.
dùng1797147
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.