ฉันต้องการจัดการพาร์ติชั่นที่ติดตั้งจากหุ่นเชิดซึ่งมีทั้งการแก้ไข/etc/fstab
และการสร้างไดเรกทอรีที่ใช้เป็นจุดเมานท์ การmount
ปรับปรุงประเภททรัพยากรfstab
ทำได้ดี แต่การใช้file
สำหรับสร้างจุดเมานท์นั้นค่อนข้างยุ่งยาก
ตัวอย่างเช่นโดยค่าเริ่มต้นเจ้าของไดเรกทอรีคือรูทและหากรูท (/) ของพาร์ทิชันที่เมาท์มีเจ้าของอื่นหุ่นเชิดจะพยายามเปลี่ยนมันและฉันไม่ต้องการสิ่งนี้ ฉันรู้ว่าฉันสามารถตั้งค่าเจ้าของไดเรกทอรีนั้นได้ แต่ทำไมฉันต้องดูแลสิ่งที่อยู่ในพาร์ติชันที่เมาท์? สิ่งที่ฉันต้องการทำคือติดตั้ง มีวิธีที่จะทำให้หุ่นเชิดไม่สนใจเกี่ยวกับสิทธิ์ของไดเรกทอรีที่ใช้เป็นจุดเชื่อมต่อหรือไม่?
นี่คือสิ่งที่ฉันใช้อยู่ตอนนี้:
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",
}
ในกรณีที่เป็นเรื่องสำคัญฉันใช้ puppet-0.25.4-1.fc13.noarch.rpm และ puppet-server-0.25.4-1.fc13.noarch.rpm
PS undef
ทำงานได้ดีสำหรับเจ้าของกลุ่มและสิทธิ์ แต่ไม่ใช่สำหรับ SELinux หากพาร์ติชั่นติดตั้งอยู่แล้วหุ่นเชิดจะบ่น:
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'
สิทธิ์ของพาร์ติชันที่เมาท์คือ:
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/
ในขณะที่สิทธิ์ของจุดเชื่อมต่อที่สร้างขึ้นโดยหุ่นเชิดคือ:
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/sda3/
PPS ฉันได้รายงานข้อบกพร่องสำหรับพฤติกรรมแปลก ๆ นี้แล้ว
undef
ทำเคล็ดลับ ไดเรกทอรีจะถูกสร้างขึ้นโดยได้รับอนุญาตต่อไปนี้rwxr-xr-x. root root system_u:object_r:mnt_t:s0
ซึ่งใช้ได้กับฉัน