Создать только удаленного пользователя в OS X?

15

Я хотел бы создать пользователя на OS X, который имеет права удаленного входа в систему ssh, где он может получить доступ к определенной папке / путь / к / товары / и добавлять / изменять / удалять файлы вручную или через rsync, в то время как остальные Mac Запрещено (за пределами их домашнего каталога).

В идеале у пользователя не должно быть доступа для запуска любых других программ, кроме rsync.

Этот пользователь будет использоваться сервером сборки для входа и развертывания файлов. Я хочу использовать пару открытый / закрытый ключ, чтобы сценарий сборки не требовал ввода пароля.

Как я могу сделать это?

chrisan
источник

Ответы:

9

Лучший способ сделать это - создать chroot-тюрьму для пользователя. Я уберу ответ здесь, когда вернусь домой, но я разместил решение в своем блоге.

https://thefragens.com/chrootd-sftp-on-mac-os-x-server/

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

Во-первых, вы должны создать нового пользователя в Workgroup Admin и либо назначить ему привилегии доступа для SSH через Server Admin, либо назначить его группе, которая имеет права доступа SSH. Дальнейшее обсуждение ниже.

С терминала начинайте прямо.

sudo cp /etc/sshd_config /etc/sshd_config.bkup

sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot

Каждый добавленный новый пользователь будет выглядеть следующим образом.

sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2

Каждая папка, в которой находится путь к chroot-тюрьме, должна принадлежать root. Я не думаю, что имеет значение, в какой группе находится папка. То, что я сделал выше, было

  1. резервный /etc/sshd_config
  2. изменить владельца корневого каталога на root
  3. изменить разрешения корневого каталога на 755
  4. создать папку chroot
  5. создать папку пользователя внутри папки chroot
  6. создать папку внутри пользовательской папки, которую пользователь может изменить
  7. установить права собственности и разрешения

Теперь, чтобы отредактировать /etc/sshd_configследующее.

#Subsystem  sftp    /usr/libexec/sftp-server
Subsystem   sftp    internal-sftp

Match User user
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/user

Это создает тюрьму chroot, которая, когда пользователь входит в систему, перетаскивает их в папку /chroot/user, в этой папке есть папка , в которую они могут добавлять вещи /chroot/user/scratchpad.

Если вы хотите создать группу в Администраторе рабочей группы для «Пользователи Chroot», то добавьте в группу новых пользователей, созданных вами в Администраторе рабочей группы, вам не нужно будет продолжать редактировать /etc/sshd_configфайл. Вместо вышесказанного добавьте следующее. Убедитесь, что вы добавили группу «Пользователи Chroot» в ACL доступа SSH в Server Admin.

Match Group chrootusers
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/%u

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

$ sftp user@domain.com
Password:
sftp>
afragen
источник
Просто решаю свои проблемы и документирую на случай, если мне понадобится сделать это снова. ;-)
afragen