🛡️
Mali Mühür Merkezi [KAMU-SM // VUK-MÜHÜR-TERMİNALİ]

MacOS Sonoma 14.2'de mali mühür için libakisp11.dylib dosyasını terminalden symlink ile tanıtmaya çalışıyorum ama "Operation not permitted" (SIP) engeline takılıyorum. SIP kapatmadan çözen var mı?

MacOS Sonoma 14.2 yüklü MacBook cihazımda Kamu SM mali mühür sürücülerini kurduktan sonra Java ve imzalama uygulamalarının kartı görmesi için libakisp11.dylib dosyasını terminalden sistem dizinine symlink ile bağlamaya çalışıyorum. Ancak komut satırında sürekli 'Operation not permitted' hatası alıyorum ve Apple'ın Sistem Bütünlüğü Koruması (SIP) mekanizmasına takılıyorum. Şirketin kurumsal güvenlik ilkeleri nedeniyle bilgisayarı kurtarma moduna alıp SIP korumasını devre dışı bırakmadan bu sorunu çözmenin güvenli bir yöntemi var mıdır?
Durum: Çözüldü Kategori: Soru-Cevap

2 Cevap

✓

Apple, macOS Catalina'dan itibaren başlattığı ve Sonoma 14.2 ile daha da sıkılaştırdığı System Integrity Protection (SIP) ve İmzalı Sistem Bölüntüsü (SSV) nedeniyle /usr/lib veya /System gibi kök dizinlere sudo yetkisiyle dahi yazma, değiştirme veya sembolik bağ (symlink) oluşturma izni vermemektedir. Eski Kamu SM kılavuzlarında yer alan sudo ln -s ... /usr/lib/libakisp11.dylib komutunun hata vermesinin sebebi budur.

SIP'i kesinlikle kapatmanıza gerek yoktur; bu sorunu tamamen güvenli ve yerel yollarla çözmek için aşağıdaki 3 adımı uygulayabilirsiniz:

  1. SIP Korumasında Olmayan /usr/local/lib Dizinini Kullanın:
    Apple, üçüncü parti kütüphaneler için /usr/local/lib dizinine izin vermektedir. Terminal uygulamasını açıp şu komutları sırasıyla çalıştırın:
    sudo mkdir -p /usr/local/lib
    sudo ln -sf /Library/akisp11/libakisp11.dylib /usr/local/lib/libakisp11.dylib
  2. Terminal ve Java'ya 'Tam Disk Erişimi' (Full Disk Access) Verin:
    macOS Sonoma'da Terminal'in kütüphaneleri bağlayabilmesi için işletim sistemi izinleri gereklidir:
    • Sistem Ayarları (System Settings) > Gizlilik ve Güvenlik (Privacy & Security) > Tam Disk Erişimi (Full Disk Access) menüsüne gidin.
    • Kullandığınız Terminal (veya iTerm) uygulamasını ve yüklü olan Java binary dosyasını listeye ekleyip açık (etkin) konuma getirin.
  3. Java PKCS#11 Konfigürasyonunda Mutlak Yol Tanımlayın:
    Aslında symlink oluşturmak zorunda bile değilsiniz. GİB İmza Aracı, ArkSigner veya e-Defter uygulamanızın kullandığı pkcs11.cfg dosyasını açıp doğrudan kütüphanenin orijinal mutlak yolunu yazabilirsiniz:
    name = AKIS
    library = /Library/akisp11/libakisp11.dylib
    slot = 0

Not: Eğer Apple Silicon (M1/M2/M3) işlemcili Mac kullanıyorsanız, çalıştırdığınız Java sürümü ile AKİS kütüphanesinin mimarisinin (ARM64 vs x86_64) uyuştuğundan emin olun. Intel mimarili sürücü kullanıyorsanız Java'yı da Rosetta üzerinden çalıştırmanız gerekebilir.

Yanıtlayan
Tolga D.

SIP korumasını kapatmanıza gerek yoktur. Apple /usr/lib dizinini kilitlediği için terminalden linki /usr/local/lib dizinine vermelisiniz: sudo mkdir -p /usr/local/lib && sudo ln -sf /Library/akisp11/libakisp11.dylib /usr/local/lib/ komutunu çalıştırmanız yeterlidir. Ayrıca imzalama programınızın ayarlarında PKCS11 yoluna sembolik link yerine doğrudan /Library/akisp11/libakisp11.dylib dosyasını gösterirseniz link oluşturmaya bile gerek kalmaz.

Yanıtlayan
Kemal B.