Monte edilmiş bölümleri (fstab + bağlama noktaları) kukladan yönetme


14

Bağlanan bölümleri, /etc/fstabbağlama noktaları olarak kullanılan dizinleri hem değiştirmeyi hem de oluşturmayı içeren kukladan yönetmek istiyorum . mountKaynak türü güncellemeleri fstabgayet ama kullanarak filemonte noktaları oluşturmak için biraz zor olduğunu.

Örneğin, varsayılan olarak dizinin sahibi köküdür ve bağlı bölümün kökü (/) başka bir sahipse, kukla değiştirmeye çalışır ve bunu istemiyorum. Bu dizinin sahibini ayarlayabileceğimi biliyorum, ancak bağlı bölümdeki neden umurumda olsun ki? Tek yapmak istediğim onu ​​monte etmek. Bağlama noktası olarak kullanılan dizinin izinlerini önemsememek için kukla yapmanın bir yolu var mı?

Ben şu anda kullanıyorum:

define extra_mount_point(
    $device,
    $location = "/mnt",
    $fstype = "xfs",
    $owner = "root",
    $group = "root",
    $mode = 0755,
    $seltype = "public_content_t"
    $options = "ro,relatime,nosuid,nodev,noexec",
) {
    file { "${location}/${name}":
        ensure  => directory,
        owner   => "${owner}",
        group   => "${group}",
        mode    => $mode,
        seltype => "${seltype}",
    }

    mount { "${location}/${name}":
        atboot  => true,
        ensure  => mounted,
        device  => "${device}",
        fstype  => "${fstype}",
        options => "${options}",
        dump    => 0,
        pass    => 2,
        require => File["${location}/${name}"],
    }
}

extra_mount_point { "sda3": 
    device   => "/dev/sda3",
    fstype   => "xfs",
    owner    => "ciupicri",
    group    => "ciupicri",
    $options => "relatime,nosuid,nodev,noexec",
}

Önemli olması halinde, kukla-0.25.4-1.fc13.noarch.rpm ve kukla-sunucu-0.25.4-1.fc13.noarch.rpm kullanıyorum.


PS undef, sahip, grup ve izinler için iyi çalışır, ancak SELinux için çalışmaz. Bölümler zaten monte edilmişse, kukla şikayet eder:

puppetd[18052]: Failed to set SELinux context system_u:object_r:public_content_t:s0 on /mnt/sda3
puppetd[18052]: (/File[/mnt/sda3]/seluser) seluser changed 'unconfined_u' to 'system_u'
puppetd[18052]: Failed to set SELinux context unconfined_u:object_r:mnt_t:s0 on /mnt/sda3
puppetd[18052]: (/File[/mnt/sda3]/seltype) seltype changed 'public_content_t' to 'mnt_t'

Takılı bölümün izinleri:

drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/

kukla tarafından oluşturulan bağlama noktasının izinleri ise:

 drwxr-xr-x. root root system_u:object_r:mnt_t:s0       /mnt/sda3/

PPS Bu garip davranış için bir hata bildirdim .

Yanıtlar:


9

Kukla'ya belirli bir meta parametreyi ayarlayarak yönetmemesini söyleyebilirsiniz undef.

file { "${location}/${name}":
    ensure                  => directory,
    owner                   => undef,
    group                   => undef,
    mode                    => undef,
    selinux_ignore_defaults => true,
}

Bu durumda, dizin bağlamadan önce yoksa, kullanıcı ve grup puppetdolarak (muhtemelen root: wheel) ve varsayılan bir umask ile başlatılacaktır. Kukla, bunların yaratılış sırasında veya sonraki çalışmalarda ne olarak ayarlandığını umursamaz.


Alternatif olarak, güvence için biraz karmaşıklık ticareti yapmak istiyorsanız, etkin bağların ne olduğunu belirlemek için özel bir gerçeği ve önceden ya da sonradan monte edilip edilmediğine bağlı olarak dizin izinlerini ayarlamak için bir anahtar deyimi kullanabilirsiniz.


undefhile yaptı. Dizinler, rwxr-xr-x. root root system_u:object_r:mnt_t:s0benim için uygun olan aşağıdaki izinle oluşturulur .
Cristian Ciupitu

1
Lütfen selrange => undef, selrole => undef, seltype => undef, seluser => undef,cevaba ekleyiniz .
Cristian Ciupitu

"Sure => mount" ile dosya sisteminin kökünü yönetmeye çalışan bir kukla riski olmaz mıydı?


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.