Назад | Перейти на главную страницу

UNIX - Как дать пользователю права над другим пользователем, и мне не нужно вводить sudo или вводить пароль?

У меня 2 рассматриваемых пользователя

мерзавец user - используется для gitosis - так что это пользователь без пароля, и к нему можно получить доступ только через root ...

пользователь пользователь - где находятся мои файлы

поэтому я бы хотел дать пользователю мерзавец права на переход к такой папке luddico

git@domain.me:~/respositories# cd /home/user/websites/domain.com

а затем выполнить любое действие внутри пользователя пользователь файлы (любой файл / папка), так что я могу, например,

git@domain.com:/home/user/websites/domain.com#  git pull

потому что на самом деле действие, указанное выше, возвращает:

error: cannot open .git/FETCH_HEAD: Permission denied

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

Итак, как я мог настроить пользователя мерзавец иметь права root / admin над пользователем пользователь без необходимости вводить пароль или sudo перед командами? как если бы это был root

заранее спасибо

По запросу, небольшой учебник по группам. Надеюсь, это не слишком элементарно.

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

# groups root
root : root bin daemon sys adm disk wheel

Первая в списке - это основная группа, которая будет владельцем группы по умолчанию для любых файлов, создаваемых пользователем. Это указано в выводе ls как вторая «корневая» запись.

# touch testfile
# ls -l testfile
-rw-r--r--  1 root root 19 Jan 29 08:37 testfile

Чтобы добавить пользователя в группу, вы используете usermod, как показано. Указанный вами флаг "-g" в нижнем регистре изменяет основную группу. Может быть лучше изменить только вторичный, используя флаг «-G» и «-a». А именно, чтобы поместить пользователя git в группу luddico.

# usermod -G luddico -a git
# groups git
git : git luddico

Это должно предоставить git доступ ко всем файлам, которые принадлежат группе luddico и имеют соответствующие разрешения группы. Групповые разрешения - это второй набор "rwx", перечисленных в ls. Тестовый файл, который я показал выше, разрешает доступ на чтение только корневой группе. Если вы хотите предоставить всем членам этой группы доступ на запись, вам придется использовать для этого chmod.

# ls -l testfile
-rw-r--r--  1 root root 19 Jan 29 08:37 testfile
# chmod g+w testfile
# ls -l testfile
-rw-rw-r--  1 root root 19 Jan 29 08:37 testfile

Теперь любой член корневой группы может читать или писать в тестовый файл. Примените ту же концепцию к файлам Luddico.

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

Если вам нужны более сложные функции списков управления доступом, вам следует изучить списки ACL POSIX, предоставляемые getfacl (1) и setfacl (1).