Copy a file while preserving SELinux context on Linux

  • در صورتی که از دستور cp به منظور کپی کردن یک پرونده یا دایکتوری استفاده نمایید، به صورت پیش‌فرض Context های مربوط به SElinux آن پرونده یا پوشه ، در مقصد اعمال نخواهد شد.
# echo root_msg > /root/root_file.txt
# ls -Z /root/root_file.txt 
-rw-r--r-- root root root:object_r:user_home_t root_file.txt
# cp /root/root_file.txt /tmp/test_file.txt
# ls -Z /tmp/test_file.txt 
-rw-r--r-- root root root:object_r:tmp_t /tmp/test_file.txt
  • همان طور که مشاهده می‌کنید در دستور بالا Context مربوط به Type تغییر کرده است.
  • به منظور کپی کردن یک پرونده یا پوشه همراه با Context های آن به صورت زیر عمل نمایید.
# cp --preserve=context root_file.txt /tmp/temp_file.txt
# ls -Z root_file.txt /tmp/temp_file.txt 
-rw-r--r-- root root root:object_r:user_home_t root_file.txt
-rw-r--r-- root root root:object_r:user_home_t /tmp/temp_file.txt
  • به یک روش دیگر نیز می‌توان Context های مربوط به فایل را انتقال داد.
# cp -Z root:object_r:user_home_t root_file.txt /tmp/temp_file.txt
  • به یک روش دیگر نیز می‌توان Context های مربوط به فایل را انتقال داد.
# cp -a root_file.txt /tmp/temp_file.txt
  • تست شده بر روی CentOS 5.8

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *