Konfigurujemy serwer SFTP na Macu (OS X 10.9) część 3/3
W tej części mieliśmy zająć się tworzeniem kont zdalnego dostępu do SFTP dla wielu użytkowników, w oparciu o skrypt automatyzujący i uwalniający nas od wielokrotnego modyfikowania pliku sshd_config.
Niestety, z racji braku czasu, nadmiaru innych obowiązków i tematów, wpisu tego nie udało mi się doprowadzić do zadowalającego stanu. Dlatego poniżej załączam skrypt, który przygotowałem wcześniej. Uprzedzam lojalnie, że to wersja rozwojowa, zawierająca błędy i nie wszystko działa jak należy. Postanowiłem jednak udostępnić go wam z nadzieją, że ktoś z czytelników znajdzie motywację, by go poprawić i z powodzeniem używać na swoim komputerze. Przypuszczam, że istnieją spore szanse, że nastąpi to szybciej niż ja tego dokonam :)
#!/bin/bash
# Wczytywanie danych użytkownika
read -e -p "Wprowadź nazwę konta: " USERNAME
read -e -p "Wprowadź pełną nazwę: " FULLNAME
read -e -p "Wprowadź hasło: " PASSWORD
# Sprawdzenie kolejnego wolnego identyfikatora użytkownika
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))
# Tworzenie konta użytkownika
sudo dscl . -create /Users/$USERNAME
sudo dscl . -create /Users/$USERNAME UserShell /bin/bash
sudo dscl . -create /Users/$USERNAME RealName "$FULLNAME"
sudo dscl . -create /Users/$USERNAME UniqueID "$USERID"
sudo dscl . -create /Users/$USERNAME PrimaryGroupID 20
sudo dscl . -create /Users/$USERNAME NFSHomeDirectory /Users/$USERNAME
sudo dscl . -passwd /Users/$USERNAME $PASSWORD
# Dodanie użytkownika do grupy Zdalni
sudo dseditgroup -o edit -t user -a $USERNAME Zdalni
# Dodanie użytkownika do chroot jail
sudo mkdir -p /chroot/$USERNAME/zdalny
sudo chown -R root /chroot/$USERNAME
sudo chown $USERNAME /chroot/$USERNAME/zdalny
sudo chmod -R 755 /chroot/$USERNAME
echo "Utworzony został użytkownik #$USERID: $USERNAME ($FULLNAME) w grupie Zdalni z uprawnieniami do łączenia z serwerem SFTP"
Powyższy skrypt wymaga również jednorazowej modyfikacji pliku sshd_config:
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match Group Zdalni
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Poprzednie artkuły na ten temat:
Konfigurujemy serwer SFTP na Macu (OS X 10.9) część 1/3
Konfigurujemy serwer SFTP na Macu (OS X 10.9) część 2/3
