Створити віддаленого лише користувача в OS X?


15

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

В ідеалі користувач не повинен мати доступу для запуску будь-якої іншої програми, крім rsync.

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

Як я можу це досягти?

Відповіді:


9

Найкращий спосіб зробити це - створити в'язницю chroot для користувача. Я приберу відповідь тут, коли повернусь додому, але я розмістив рішення у своєму блозі.

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

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

Спочатку слід створити нового користувача в адміністраторі Workgroup Admin і призначити їм права доступу для SSH через Admin Server Server або призначити їх групі, яка має права доступу до 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 Users" до списку доступу ACH до SSH на сервері адміністратора.

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

Щоб перевірити, чи працює вищезгадане, видайте наступне з терміналу.

$ sftp user@domain.com
Password:
sftp>

Просто вирішувати власні проблеми та документувати, якщо мені доведеться це зробити ще раз. ;-)
afragen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.