सवाल किसी उपयोगकर्ता को सीमित सुडो विशेषाधिकार देना


मैंने सुना है कि यह किया जा सकता है लेकिन इस पर कोई दस्तावेज नहीं मिला है। विशेष रूप से मैं किसी को स्टीम एप्लिकेशन के लिए सूडो के रूप में अपने पासवर्ड का उपयोग करने की क्षमता देना चाहता हूं।


3
2017-07-30 21:55


मूल


आपको रूट के रूप में स्टीम चलाने की आवश्यकता क्यों है? - Wilf
संपादित करें हाँ मुझे पता है कि वास्तव में पुराने गेम को रूट अनुमति की आवश्यकता है। अफसोस की बात है कि इन से बचने के लिए सबसे अच्छा हो सकता है ... - Wilf


जवाब:


आप उपयोग कर सकते हैं आदेश उपनाम यह निर्धारित करने के लिए कि उपयोगकर्ता किस आदेश को चला सकता है sudo - उदा। इस /etc/sudoers उपयोगकर्ता को व्यवस्थापक करने के लिए आवश्यक आदेशों को प्रतिबंधित करता है:

# define host aliases
Host_Alias HOSTNAME = laptop

# define command aliases
Cmnd_Alias ARCH = /bin/tar, /bin/gzip, /bin/gunzip
Cmnd_Alias CRYPT = /sbin/losetup, /sbin/cryptsetup
Cmnd_Alias DIR = /bin/mkdir, /bin/rmdir
Cmnd_Alias DEVICE = /sbin/ifup, /sbin/ifdown
Cmnd_Alias DISK = /bin/mount, /bin/umount
Cmnd_Alias EDIT = /usr/bin/nano, /usr/bin/gedit
Cmnd_Alias FILE = /bin/cp, /bin/echo, /bin/ln, /bin/mv, /bin/rm, /usr/bin/touch, /usr/bin/rename
Cmnd_Alias FORMAT = /sbin/mkfs.ext2, /sbin/mkfs.ext3, /sbin/mkfs.ext4, /sbin/mkfs.msdos, /sbin/mkfs.vfat
Cmnd_Alias NAV = /usr/bin/nautilus
Cmnd_Alias NETWORK = /sbin/route, /sbin/iptables, /usr/bin/nmap, /usr/sbin/hping3
Cmnd_Alias PERM = /bin/chattr, /bin/chgrp, /bin/chmod, /bin/chown
Cmnd_Alias PROCESS =  /usr/bin/ps, /bin/kill, /usr/bin/killall, /sbin/shutdown
Cmnd_Alias SELINUX = /usr/sbin/semanage, /usr/bin/chcon, /sbin/restorecon, /usr/sbin/setsebool
Cmnd_Alias SERVERS = /etc/init.d/network, /etc/init.d/cups, /etc/init.d/nfs, /etc/init.d/httpd, /etc/init.d/vsftpd
Cmnd_Alias SERVICE = /usr/bin/systemctl, /sbin/chkconfig, /sbin/service, /usr/sbin/updatedb
Cmnd_Alias SOFTWARE = /usr/bin/dpkg, /usr/bin/apt-get
Cmnd_Alias VIEW = /bin/cat, /usr/bin/du, /bin/ls, /bin/tree, /bin/top, /bin/tails

# define access
root ALL = (ALL) ALL
wilf HOSTNAME = NOPASSWD: ARCH, CRYPT, DIR, DISK, DEVICE, EDIT, FILE, FORMAT, NAV, NETWORK, PERM, PROCESS, SERVERS, SERVICE, SOFTWARE, VIEW

इसे कॉपी और पेस्ट न करें। मैनुअल पढ़ें (man sudoers) और कोशिश करें और समझें कि यह आपके सिस्टम को सुरक्षित रखने के लिए पहले क्या करता है। विशेष रूप से NOPASSWD बिट्स (उपर्युक्त डिवाइस के लिए है जिसका उपयोग उस महान सुरक्षा की आवश्यकता नहीं है)। इसके बाद भी जांच करें कि क्या उपयोगकर्ता नहीं कर सकते हैं sudo -i इसके आसपास आदि

आप अलग-अलग उपयोगकर्ताओं के बजाय विशिष्ट समूहों को आदेश भी निर्दिष्ट कर सकते हैं। उदाहरण के लिए, समूह में उपयोगकर्ताओं को अनुमति देने के लिए wheel कंप्यूटर के साथ बंद करने के लिए (इसमें मौजूद होना आवश्यक है और इसमें आवश्यक उपयोगकर्ताओं को शामिल किया गया है) sudo shutdown... और कोई पासवर्ड नहीं:

 %wheel ALL= NOPASSWD: /sbin/shutdown

एक स्टीम एप्लिकेशन (या एक निश्चित प्रोग्राम) चलाने के विनिर्देशों के साथ, इसके लिए लॉन्चर ढूंढें / बनाएं (आमतौर पर में ~/.local/share/applications यदि स्थानीय उपयोगकर्ता द्वारा किया जाता है), तो आप इसे चलाने के लिए आवश्यक कमांड को ढूंढने के लिए इसका उपयोग कर सकते हैं - कृपया ध्यान दें कि यह आमतौर पर संग्रहीत प्रोग्राम को संदर्भित करता है ~/.local/share। हालांकि, आमतौर पर एक संपादन योग्य निर्देशिका में एक स्क्रिप्ट तक उपयोगकर्ता सुडो पहुंच प्रदान करना वास्तव में खराब आईडीए है क्योंकि वे ऊंचा पहुंच प्राप्त करने के लिए स्क्रिप्ट को अपने स्वयं के साथ स्वैप कर सकते हैं। यदि आप उन्हें कुछ स्क्रिप्ट तक पहुंच देना चाहते हैं, तो सुनिश्चित करें कि वे केवल संपादन योग्य हैं root (उदा /sbin सही अनुमति के साथ)। यदि आप किसी उपयोगकर्ता पर भरोसा नहीं करते हैं, तो उन्हें सूडो पहुंच न दें।


5
2017-07-30 22:05



मैंने बनाया है custom पर फ़ाइल /etc/sudoers.d/ फ़ोल्डर और टिप्पणी (%sudo तथा %smith) पर sudoers के लिए दर्ज smith उपयोगकर्ता लेकिन अभी भी sudo काम कर रहा है, क्या आप कह सकते हैं कि क्यों? - Nullpointer
आपके प्रश्न के आधार पर यहाँ यह सबसे आसान / सबसे अच्छा समाधान नहीं हो सकता है - आपने इसके बाद क्या रखा था %smith आदि लाइनें? यदि आप एक नया सवाल पूछते हैं कृपया निर्दिष्ट करें कि उन्हें किस तक पहुंचने में सक्षम होना चाहिए, और दिखाओ sudoers आदि विधियों की कोशिश की है। बीटीडब्ल्यू उपयोगकर्ताओं को केवल कुछ कस्टम स्क्रिप्ट (सीमित उपयोगकर्ता इनपुट के साथ) तक पहुंच प्रदान करना सबसे अच्छा हो सकता है। - Wilf