Pardus XFCE oturum kaydetme ve güç seçeneklerini devre dışı bırakma görseli.

Pardus XFCE’de Oturum Kaydetme ve Güç Seçeneklerini Kalıcı Olarak Devre Dışı Bırakma

Giriş

Kurumsal Pardus yönetiminde, kullanıcıların oturumlarını kapatırken “Oturumu Kaydet” seçeneğini kullanmaları, bir sonraki girişte sistemin yavaşlamasına veya istenmeyen uygulamaların otomatik açılmasına neden olabilir. Aynı zamanda kamu bilgisayarlarında “Uyku” veya “Hazırda Beklet” gibi seçeneklerin açık olması, enerji yönetimi ve güvenlik açıklarına yol açabilir. Bu makalede, bu seçenekleri Lider Ahenk üzerinden merkezi bir betikle nasıl tamamen ortadan kaldıracağımızı ve Pardus XFCE Oturum Kısıtlama konusunu inceleyeceğiz.

Amaç/Kapsam

Bu rehberin amacı;

  • XFCE masaüstü ortamında “Gelecek girişler için oturumu kaydet” kutucuğunu kaldırmak,
  • Oturum kapatma menüsündeki “Askıya Al”, “Hazırda Beklet” ve “Melez Uyku” butonlarını gizlemek,
  • Kullanıcıların bu ayarları manuel olarak geri getirmesini (override) engellemektir.

Ön Hazırlıklar

  • Lider Ahenk merkezi yönetim sistemine erişim.
  • Hedef istemcilerin XFCE masaüstü ortamını kullanıyor olması.
  • Betiğin sorunsuz çalışması için istemcilerde attr paketinin kurulu olması (chattr komutu için).

Adım Adım Çözüm Aşaması

Aşağıdaki çözüm, sistemdeki ayarları dört farklı katmanda kilitler. İşte betiğin teknik işleyişi:

1. XCFE Kiosk Modu Yapılandırması

Sistemin en üst düzeyinde bir kısıtlama dosyası (kioskrc) oluşturularak XFCE’nin oturum kaydetme yeteneği global olarak kapatılır.

2. Global XML Kilitleme (Flags=”1″)

Xfconf sisteminde ayarlar XML dosyalarında tutulur. Betiğimiz, /etc/xdg altında oluşturduğu XML dosyasına flags="1" parametresini ekleyerek, bu ayarın bir sistem politikası olduğunu ve kullanıcı bazlı değiştirilemeyeceğini sisteme bildirir.

3. Polkit ile Güç Yönetimi Yasaklama

Görsel olarak butonlar gizlense bile, arka planda sistemin uyku moduna geçmesini engellemek için Polkit (PolicyKit) kuralları yazılarak işletim sistemi seviyesinde kısıtlama uygulanır.

4. Mevcut Kullanıcı Profillerinin Temizlenmesi ve Mühürlenmesi

Betiğin en can alıcı kısmı burasıdır; mevcut kullanıcıların ev dizinlerindeki eski önbellekleri siler ve kullanıcıların kendi ayar dosyalarını oluşturmalarını chattr +i (yazılamaz/değiştirilemez) komutuyla engeller.

Nasıl Yapmalı

Lider Ahenk yönetim arayüzü sayesinde hazırladığımız bu karmaşık betiği binlerce bilgisayara tek tıkla gönderebiliriz.

  • Lider Ahenk konsolunda Betik Güncelle/Gönder ekranını açın.
  • Betik içeriğine aşağıda paylaştığımız kodu yapıştırın.
  • Çalıştır butonuna basarak görevi onaylayın.
Lider Ahenk arayüzü üzerinden Pardus XFCE oturum kısıtlama betiğinin gönderilmesi ve onay ekranı.
Hazırladığımız betiğin Lider sunucu üzerinden Ahenk istemcilere gönderilmesi görseli.

Terminal İle Yapılışı

Eğer yerel bir makinede deneme yapmak isterseniz, aşağıdaki kodun tamamını bir dosyaya kaydedip çalıştırabilirsiniz:

#!/usr/bin/env bash

# LiderAhenk için hata toleranslı ve sessiz mod
set -u

echo "=== KRITIK KISITLAMA: Oturum ve Guc Secenekleri Muhurleniyor ==="

# 1. KIOSK MODU
KIOSK_DIR="/etc/xdg/xfce4/kiosk"
mkdir -p "$KIOSK_DIR"
cat <<EOF > "$KIOSK_DIR/kioskrc"
[xfce4-session]
SaveSession=NONE
EOF
chmod 644 "$KIOSK_DIR/kioskrc"

# 2. GLOBAL XML KİLİTLEME
GLOBAL_SESSION_DIR="/etc/xdg/xfce4/xfconf/xfce-perchannel-xml"
mkdir -p "$GLOBAL_SESSION_DIR"
cat <<EOF > "$GLOBAL_SESSION_DIR/xfce4-session.xml"
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-session" version="1.0">
  <property name="general" type="empty">
    <property name="SaveOnExit" type="bool" value="false" flags="1"/>
  </property>
  <property name="shutdown" type="empty">
    <property name="ShowSuspend" type="bool" value="false" flags="1"/>
    <property name="ShowHibernate" type="bool" value="false" flags="1"/>
    <property name="ShowHybridSleep" type="bool" value="false" flags="1"/>
  </property>
</channel>
EOF
chmod 644 "$GLOBAL_SESSION_DIR/xfce4-session.xml"

# 3. POLKIT KURALLARI
POLKIT_FILE="/etc/polkit-1/rules.d/10-disable-suspend.rules"
cat <<EOF > "$POLKIT_FILE"
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.login1.suspend") == 0 ||
        action.id.indexOf("org.freedesktop.login1.hibernate") == 0 ||
        action.id.indexOf("org.freedesktop.login1.hybrid-sleep") == 0) {
        return polkit.Result.NO;
    }
});
EOF
systemctl restart polkit &>/dev/null || true

# 4. KULLANICI TEMIZLIGI
for USER_HOME in /home/*; do
    [ -d "$USER_HOME" ] || continue
    USERNAME=$(basename "$USER_HOME")
    id "$USERNAME" &>/dev/null || continue
    rm -rf "$USER_HOME/.cache/sessions/"* &>/dev/null
    USER_CONF="$USER_HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml"
    if [ -f "$USER_CONF" ]; then
        chattr -i "$USER_CONF" &>/dev/null || true
        rm -f "$USER_CONF"
    fi
    mkdir -p $(dirname "$USER_CONF")
    touch "$USER_CONF"
    chown root:root "$USER_CONF"
    chmod 444 "$USER_CONF"
    chattr +i "$USER_CONF" &>/dev/null || true
done
echo "=== ISLEM TAMAMLANDI ==="Code language: PHP (php)

Test – Kontrol Aşaması

İşlem tamamlandıktan sonra aradaki farkı net bir şekilde görebilirsiniz:

Betiği Çalıştırmadan Önce: Kullanıcı tüm güç seçeneklerine erişebiliyor ve oturumu kaydetme kutucuğu aktif durumda.

oturumarayuzoncesi

Betiği Çalıştırdıktan Sonra: Kutucuk tamamen kaldırılmış ve güç seçenekleri (Uyku vb.) menüden gizlenmiş durumda.

oturumarayuzsonrasi

Dikkat Edilmesi Gerekenler

  • chattr Hatası: Bazı dosya sistemlerinde (örneğin NFS veya çok eski sistemler) chattr komutu çalışmayabilir. Bu durumda kullanıcılar kendi ayar dosyalarını silseniz bile tekrar oluşturabilirler.
  • Önbellek (Cache): Eğer betiği çalıştırdıktan sonra değişiklik göremiyorsanız, kullanıcının .cache/sessions klasörünün tamamen silindiğinden emin olun (betiğimiz bunu otomatik yapar).

Sıkça Sorulan Sorular

Betiği çalıştırdıktan sonra ayarları nasıl geri alabilirim?

Oluşturulan XML dosyalarındaki flags="1" değerini kaldırıp, chattr -i komutuyla dosyaların kilidini açarak ayarları eski haline getirebilirsiniz.

Kiosk modu sadece belirli bir kullanıcıya uygulanabilir mi?

Evet, makaledeki global ayar yerine betiği sadece ilgili kullanıcının /home/kullanici/.config dizinini hedefleyecek şekilde modifiye edebilirsiniz.

chattr komutu “not supported” hatası veriyor, ne yapmalıyım?

Eğer XFS gibi bazı özel dosya sistemleri veya ağ sürücüleri (NFS) kullanıyorsanız bu hata alınabilir. Bu durumda sadece dosya izinlerini (chmod 444) kullanmalısınız.

Polkit kuralları diğer masaüstü ortamlarını (GNOME vb.) etkiler mi?

Evet, Polkit kısıtlamaları sistem seviyesinde olduğu için tüm masaüstü ortamlarında güç seçeneklerini (askıya al vb.) devre dışı bırakır.

Oturum kaydetme neden varsayılan olarak kapatılmalı?

Özellikle kamu kurumlarında açık kalan oturumlar, bir sonraki kullanıcının sistemini yavaşlatır ve profil dosyalarının şişmesine neden olur.

Notlar

  • Bu betik, Pardus 21 ve 23 sürümlerindeki XFCE masaüstü ortamı için optimize edilmiştir.
  • Betik çalıştırılırken sudo veya root yetkisi gereklidir.
  • Betik çalıştırıldıktan sonra sistem bir kez yeniden başlatılmalıdır.

Pardus XFCE Oturum Kısıtlama, kullanıcı deneyimini iyileştirmek ve sistem güvenliğini artırmak için önemli bir süreçtir.

İlginizi Çekebilir