Создать удаленного пользователя в OS X?
Я хотел бы создать пользователя в OS X, у которого есть привилегии удаленного доступа ssh, где они могут получить доступ к определенной папке /пути /в /the /goods /и добавлять /изменять /удалять файлы вручную или через rsync, в то время как остальные Mac находится вне пределов (вне их домашнего каталога).
В идеале у пользователя не должно быть доступа для запуска других программ, кроме rsync.
Этот пользователь будет использоваться сервером сборки для входа и развертывания файлов. Я хочу использовать пару открытых /закрытых ключей, поэтому скрипт сборки не требует ввода пароля.
Как я могу это сделать?
1 ответ
Лучший способ сделать это - создать chroot-тюрьму для пользователя. Я почищу ответ здесь, когда вернусь домой, но я разместил решение на своем блоге.
http://thefragens.com /блог /2011/12 /chrootd-SFTP-на-макинтош-OS-X-сервер /
Ниже приведена основная часть инструкции из вышеприведенного сообщения.
Сначала вы должны создать нового пользователя в Администраторе рабочих групп и назначить им права доступа для SSH через Администратор сервера или назначить их группе, имеющей привилегии доступа 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
. Я не думаю, что важно, в какой группе находится папка. То, что я делал выше, было
- backup
/etc/sshd_config
- изменить права собственности на корневой каталог на
root
- изменить права доступа корневого каталога на 755
- создать папку chroot
- создать папку пользователя внутри папки chroot
- создать папку внутри пользовательской папки, которую пользователь может изменить
- установить права собственности и разрешения
Теперь отредактируйте /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
.
Если вы хотите создать группу в Workgroup Admin для «Chroot Users», а затем добавить новых пользователей, которые вы создали в Workgroup Admin в группу, вам не придется продолжать редактировать /etc/sshd_config
. Вместо вышесказанного добавьте следующее. Убедитесь, что вы добавили группу «Chroot Users» в ACL-доступ ACL в Admin Admin.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Чтобы проверить, работает ли это, выполните следующие действия с терминалом.
$ sftp [email protected]
Password:
sftp>