Рейтинг:0

Не удается перейти в каталог, даже если у группы есть разрешения

флаг cn

Я знаю, что есть и другие подобные вопросы, но там ничего не решило мою проблему.

gitlab-runner@my-machine:~$ группы
gitlab-бегун мой-пользователь

gitlab-runner@my-machine:~$ sudo ls -l /home
всего 16
drwxrwsr-x+ 16 мой пользователь мой пользователь 4096 13 февраля 09:22 мой пользователь
# ... дома других пользователей опущены ...

gitlab-runner@my-machine:~$ sudo ls -l /home/my-user
всего 528
drwsrws---+ 4 my-user my-user 4096 7 июня 2020 г. my-dir
# ... ненужные файлы опущены ...

gitlab-runner@my-machine:~$ sudo ls -l /home/my-user/my-dir
всего 48
drwxrwsr-x+ 7 мой-пользователь мой-пользователь 4096 12 августа 2021 г. мой-каталог
drwxrwsr-x+ 6 my-user my-user 4096 7 июня 2020 г. venv

gitlab-runner@my-machine:~$ cd /home/my-user/my-dir
-bash: cd: /home/my-user/my-dir: Отказано в доступе

Пользователь является членом группы, группа имеет права на чтение и выполнение в целевой папке и дома, в котором она содержится, но пользователь не может CD внутрь. я тоже пробовал выйти а потом sudo — gitlab-бегун снова, но это все еще не работает. Почему?

Я не уверен, почему Икс бит показывает с и нигде не могу найти объяснения. Может быть, это актуально, но я не знаю, что это значит и как это изменить, так как судо chmod г + х не меняет его.

флаг cn
Ray
`s` - это бит SetUID, SetGID и т. д. Вы можете прочитать об этом во многих местах, например, по [этой] (https://www.geeksforgeeks.org/setuid-setgid-and-sticky-bits-in-linux-file-permissions) ссылке. Что касается вашей проблемы, почему бы вам не заняться ею понемногу? `cd` в `/home`, затем `/home/my-user` и т. д. Посмотрим, что получится. Кроме того, почему вы делаете «sudo-gitlab-runner»? У этого пользователя нет пароля, с которым вы можете войти?
raj avatar
флаг cn
raj
После поля разрешений для каждого из каталогов отображается знак «+», что означает, что дополнительные разрешения устанавливаются с помощью ACL. Они могут переопределить «базовые» разрешения. Проверьте с помощью `sudo getfacl pathname` для каждого каталога. Что касается бита `s` в группе, это означает, что файлы/подкаталоги, созданные в каталоге, будут иметь группу, установленную в группу каталога, независимо от того, кто их создает. Вы можете удалить это с помощью `sudo chmod g-s pathname`.
theberzi avatar
флаг cn
@Ray, я имел в виду «su - gitlab-runner», а не «sudo». Виноват.
Рейтинг:1
флаг cn

Оказывается, для этой папки у меня были установлены ACL, как правильно указал @raj в комментариях.

У меня сложилось ошибочное впечатление, что разрешения ACL будут связаны с битами разрешений с помощью операции ИЛИ, тогда как вместо этого они полностью переопределяют их. Мой ACL для каталога был RW- разрешения, Икс бит отсутствовал, и поэтому у меня не было разрешений на CD там с этим пользователем.

Ответить или комментировать

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