Автомонтирование SMB-шар с использованием KRB5
В некоторых случаях, может потребоваться автоматически на старте хоста монтировать smb-шары не при помощи файла с логином/паролем, а с помощью krb5.
Имеется (предусловие):
Введенная в домен VM на ubuntu 24 server LTS
Поставлены необходимые библиотеки из https://ubuntu.com/server/docs/how-to-set-up-sssd-with-ldap-and-kerberos
Для настройки нам потребуется:
1)Сгенерировать keytab-файл
ktutil ktutil: addent -password -p username@DOMAIN.COM -k 1 -f Password for username@DOMAIN.COM: ktutil: wkt /path/to/username.keytab ktutil: quit
2)Настроить подходящие права к файлу: sudo chown username:username /path/to/username.keytabsudo chmod 600 /path/to/username.keytab
3)Получить Kerberos-тикет и записать в файл: kinit -kt /path/to/username.keytab username@DOMAIN.COM
4)Поставить kstart для автоматического обновления тикетовsudo apt-get install kstart
5)Создать systemd-service /etc/systemd/system/k5start-username.service:
[Unit] Description=Maintain Kerberos Ticket for username
[Service]
Type=simple ExecStart=/usr/bin/kstart -U -t -K 60 -k /path/to/username.keytab -f /tmp/krb5cc_username
User=username
Restart=always
[Install] WantedBy=multi-user.target
6)включить systemd-сервис:
sudo systemctl daemon-reload
sudo systemctl enable kstart-username.service
sudo systemctl start kstart-username.service
7)создать systemd-сервис в /etc/systemd/system/mount-smb-username.service для монтирования шары:
[Unit] Description=Mount SMB Share for Username after k5start Requires=k5start-username.service After=k5start-username.service
[Service]
Type=oneshot ExecStart=/usr/bin/mount -t cifs //some/share/path /mnt/some_mnt_point -o sec=krb5,cruid=username
ExecStop=/usr/bin/umount /mnt/some_mnt_point RemainAfterExit=yes
[Install] WantedBy=multi-user.target