Разрешение отклонено в 777 папках

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

Вот ACLs

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

Я никогда не видел это прежде. Никакое разрешение к LS даже с 777? Я должен совместно использовать эту папку для более удобной разработки. Как я могу решить его?Спасибо.

ОТРЕДАКТИРОВАННЫЙ: (вот Ваши запросы),

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

ОТРЕДАКТИРОВАННЫЙ БОЛЬШЕ

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

хм... что это такое?

14
задан 29 November 2016 в 13:10

1 ответ

Это происходит, потому что существует каталог выше в дереве, где Вы не имеете, выполняют разрешение. Если родительский каталог имеет, не выполняют разрешение для некоторого пользователя, то тот пользователь не может статистика никакие подкаталоги независимо от полномочий на тех подкаталогах.

Пример:

$ 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

Даже при том, что я - владелец каталога 'брауни' и все пользователи, имеют разрешение считать и ввести его, я не могу получить доступ к нему, если его родительский каталог имеет, не выполняют разрешение.

лучше к группы использования управлять полномочиями, чем дают, чтобы дать каталогам 777 разрешений. Вы уверены, что необходимо сделать это?

, Как решить проблему более безопасным способом:

Позволяют нам принять на /var/opt/gitlab каталог, у Вас есть что-то вроде этого:

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

Добавляют себя и всех других пользователей, которым нужно разрешение группе мерзавца, например:

sudo usermod -a -G john git

Пользователи должны выйти из системы и въехать задним ходом, чтобы это вступило в силу. Даже если разрешение записи необходимо на подкаталоге, Вы не должны добавлять его на родительском каталоге, между прочим, таким образом, Вы не должны использовать chmod вообще. Вы могли бы хотеть изменить свои полномочия подкаталога предотвратить любого от способности записать в него:

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

или

chmod o-w /var/opt/gitlab/git‌​-data/repositories/GL‌​/www.git/custom_hooks
20
ответ дан 23 November 2019 в 02:59

Другие вопросы по тегам:

Похожие вопросы: