SELinux विषम-माखोमेडिर को गैर-मानक स्थान पर उपयोगकर्ता होम निर्देशिका बनाने की अनुमति नहीं देता है


9

हम CentOS सर्वर पर उपयोगकर्ताओं को प्रमाणित करने के लिए SSSD का उपयोग कर रहे हैं। ऑड-ईवन होम डिरेक्ट्री / होम होने पर ऑडोजोबड-मखोमेडिर पूरी तरह से ठीक काम करता है, लेकिन एक विशेष सर्वर पर, हमें डिफॉल्ट होम डायरेक्टरी को / डेटा में बदलना पड़ता है, जो कि SAN माउंट पर है।

अब, जब भी कोई उपयोगकर्ता लॉग इन करने का प्रयास करता है, तो उन्हें निम्न संदेश के साथ बैश शेल में छोड़ दिया जाता है।

Creating home directory for first.last.

Could not chdir to home directory /data/X.Y.local/first.last: No such file or directory

-bash-4.1$

मैं हर प्रयास के लिए निम्नलिखित AVC इनकार संदेश देखता हूं:

type=AVC msg=audit(1492004159.114:1428): avc:  denied  { create } for  pid=2832 
comm="mkhomedir" name="x.y.local"
scontext=system_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023
tcontext=system_u:object_r:default_t:s0 tclass=dir

के लिए / डेटा के संदर्भ को बदलना सुनिश्चित किया है।

 drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data

यदि / डेटा का एक ही संदर्भ / घर है, तो SELinux, oddjobd को /data/XYlocal/first.last बनाने के लिए प्रतिबंधित क्यों कर रहा है?

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

[अपडेट करें]

निश्चित नहीं है कि यह इसे हल करने का सही तरीका है, लेकिन निम्नलिखित तीन प्रविष्टियों को जोड़ने के बाद उपयोगकर्ता अब लॉग इन कर सकते हैं और अपने घर निर्देशिकाओं में जा सकते हैं। नए उपयोगकर्ता निर्देशिका के लिए नीचे दिए गए संदर्भ के आधार पर बनाए जा रहे हैं।

semanage fcontext -a -t home_root_t /data
semanage fcontext -a -t user_home_dir_t /data/x.y.local
semanage fcontext -a -t user_home_t "/data/x.y.local(/.*)?"

क्या इस समस्या को दूर करने का यह सही तरीका है?


यकीन नहीं होता कि यह आपके मुद्दे के लिए प्रासंगिक है, लेकिन इसने मुझे अतीत में दु: ख दिया है: linux.die.net/man/8/nfs_selinux
0xSheepdog

जवाबों:


4

उस अंतिम खंड के साथ semanage fcontextसंदर्भ को स्थायी रूप से हां करने का सही तरीका है। restoreconहालांकि इसे प्रभावी होने के लिए आपको दौड़ने की आवश्यकता होगी ।

restorecon -Rv /data

restoreconमें कुछ भी ध्यान में रखना होगा /etc/selinux/targeted/contexts/files/file_contexts.local, जो आपके कस्टम fcontexts होना चाहिए जो आपने अभी-अभी उपयोग किया हैsemanage

इन संदर्भों को अस्थायी रूप से सेट करने के लिए, chconकमांड देखें :

chcon -Rv -t home_root_t /data 

1

होम निर्देशिकाओं को स्थानांतरित करते समय, सर्वर दोष पर इस उत्तरsemanage fcontext में वर्णित के रूप में EQUAL तंत्र का उपयोग करना सबसे अच्छा समाधान है :

semanage fcontext -a -e /home /data

यह सुनिश्चित करना है कि मूल घर के स्थान के सभी नियम नए पर भी लागू होते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.