Tạo một người dùng từ xa chỉ trong OS X?


15

Tôi muốn tạo một người dùng trên OS X có đặc quyền đăng nhập ssh từ xa nơi họ có thể truy cập một thư mục / đường dẫn / đến / hàng hóa / và thêm / sửa đổi / xóa các tệp theo cách thủ công hoặc qua rsync trong khi phần còn lại của máy Mac là giới hạn (bên ngoài thư mục nhà của họ).

Lý tưởng nhất là người dùng không nên có quyền truy cập để chạy bất kỳ chương trình nào khác ngoài rsync.

Người dùng này sẽ được sử dụng bởi một máy chủ xây dựng để đăng nhập và triển khai các tệp. Tôi muốn sử dụng cặp khóa công khai / riêng tư để tập lệnh xây dựng không yêu cầu nhập mật khẩu.

Làm thế nào tôi có thể thực hiện điều này?

Câu trả lời:


8

Cách tốt nhất để làm điều này là tạo ra một nhà tù chroot cho người dùng. Tôi sẽ dọn sạch câu trả lời ở đây khi tôi về nhà nhưng tôi đã đăng giải pháp lên blog của mình.

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

Dưới đây là hầu hết các hướng dẫn từ bài viết trên.

Trước tiên, bạn nên tạo người dùng mới trong Quản trị viên nhóm và gán cho họ quyền truy cập cho SSH thông qua Quản trị viên máy chủ hoặc gán họ cho một nhóm có đặc quyền truy cập SSH. Thảo luận thêm dưới đây.

Từ Terminal, bắt đầu ngay.

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

Mỗi người dùng mới được thêm vào sau đó sẽ là một cái gì đó dọc theo dòng sau.

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

Mỗi thư mục nó đường dẫn đến nhà tù chroot phải được sở hữu root. Tôi không nghĩ rằng thư mục nằm trong nhóm nào. Những gì tôi đã làm ở trên là

  1. sao lưu /etc/sshd_config
  2. thay đổi quyền sở hữu của thư mục gốc thành root
  3. thay đổi quyền của thư mục gốc thành 755
  4. tạo một thư mục chroot
  5. tạo một thư mục người dùng bên trong thư mục chroot
  6. tạo một thư mục bên trong thư mục người dùng mà người dùng có thể sửa đổi
  7. đặt quyền sở hữu và quyền

Bây giờ để chỉnh sửa /etc/sshd_configđể sau đây.

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

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

Điều này tạo ra một nhà tù chroot mà khi người dùng đăng nhập sẽ thả chúng vào thư mục /chroot/user, trong thư mục đó là một thư mục họ có thể thêm mọi thứ vào /chroot/user/scratchpad.

Nếu bạn muốn tạo Nhóm trong Quản trị viên nhóm làm việc cho 'Người dùng Chroot' thì hãy thêm người dùng mới mà bạn đã tạo trong Quản trị viên nhóm vào Nhóm bạn sẽ không phải tiếp tục chỉnh sửa /etc/sshd_configtệp. Thay vì ở trên, thêm vào như sau. Đảm bảo bạn thêm nhóm 'Người dùng Chroot' vào ACL truy cập SSH trong Quản trị viên máy chủ.

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

Để kiểm tra xem các mục trên có hoạt động hay không, hãy đưa ra các mục sau từ thiết bị đầu cuối.

$ sftp user@domain.com
Password:
sftp>

Chỉ cần giải quyết vấn đề của riêng tôi và ghi lại trong trường hợp tôi cần phải làm lại. ;-)
nổi giận
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.