newgrp
कमांड केवल एक इंटरैक्टिव शैल, AFAICT से उपयोग किया जा सकता है। असल में, मैंने इसके बारे में छोड़ दिया ... अच्छा, चलो काफी समय पहले कहें कि मैंने जो प्रतिस्थापन लिखा है वह अब ब्रिटेन और यूएसए दोनों में वोट देने योग्य है।
ध्यान दें कि newgrp
शैल में निर्मित एक विशेष कमांड है। कड़ाई से, यह एक कमांड है जो खोल के बाहर है, लेकिन खोल ने इसे संभालने के तरीके के बारे में ज्ञान में अंतर्निहित किया है। शैल वास्तव में exec
प्रोग्राम है, इसलिए आपको तुरंत बाद एक नया खोल मिलता है। यह एक निश्चित रूट प्रोग्राम भी है। सोलारिस पर, कम से कम newgrp
भी SHELL पर्यावरण चर को अनदेखा करता है।
मैं प्रोग्राम हैं जो मुद्दा यह है कि newgrp
को संबोधित करना था आस-पास काम की एक किस्म है। याद रखें, कमांड उपयोगकर्ताओं को एक साथ कई समूहों से संबंधित होने की क्षमता को पूर्व-दिनांकित करता है (Version 7 Unix Manuals देखें)।चूंकि newgrp
निष्पादित करने के बाद कमांड निष्पादित करने के लिए एक तंत्र प्रदान नहीं करता है, su
या sudo
के विपरीत, मैंने एक प्रोग्राम newgid
लिखा है, जैसे newgrp
, एक सेटयूड रूट प्रोग्राम है और आपको एक समूह से दूसरे समूह में स्विच करने की अनुमति देता है। यह काफी सरल है - केवल मुख्य() प्लस मानक मानकीकृत त्रुटि रिपोर्टिंग का एक सेट इस्तेमाल किया जाता है। स्रोत के लिए मुझसे संपर्क करें (जीमेल डॉट कॉम पर अंतिम बिंदु)। मेरे पास 'asroot
' नामक एक और अधिक खतरनाक कमांड भी है जो मुझे (लेकिन केवल मुझे - डिफ़ॉल्ट संकलन के तहत) उपयोगकर्ता और समूह सूचियों को और अधिक अच्छी तरह से ट्विक करने की अनुमति देता है।
asroot: Configured for use by jleffler only
Usage: asroot [-hnpxzV] [<uid controls>] [<gid controls>] [-m umask] [--] command [arguments]
<uid controls> = [-u usr|-U uid] [-s euser|-S euid][-i user]
<gid controls> = [-C] [-g grp|-G gid] [-a grp][-A gid] [-r egrp|-R egid]
Use -h for more help
Option summary:
-a group Add auxilliary group (by name)
-A gid Add auxilliary group (by number)
-C Cancel all auxilliary groups
-g group Run with specified real GID (by name)
-G gid Run with specified real GID (by number)
-h Print this message and exit
-i Initialize UID and GIDs as if for user (by name or number)
-m umask Set umask to given value
-n Do not run program
-p Print privileges to be set
-r euser Run with specified effective UID (by name)
-R euid Run with specified effective UID (by number)
-s egroup Run with specified effective GID (by name)
-S egid Run with specified effective GID (by number)
-u user Run with specified real UID (by name)
-U uid Run with specified real UID (by number)
-V Print version and exit
-x Trace commands that are executed
-z Do not verify the UID/GID numbers
Mnemonic for effective UID/GID:
s is second letter of user;
r is second letter of group
(इस कार्यक्रम बढ़ी: मैं इसे खरोंच से redoing रहे थे, मैं अलग विकल्प पत्र की आवश्यकता के बिना यूजर आईडी या उपयोगकर्ता नाम को स्वीकार करेंगे, समूह आईडी या समूह का नाम लिए डिट्टो।)
यह मुश्किल हो सकता है setuid रूट प्रोग्राम स्थापित करने के लिए अनुमति प्राप्त करने के लिए। बहु-समूह सुविधाओं के कारण अब कुछ कामकाज उपलब्ध हैं। एक तकनीक जो काम कर सकती है वह है निर्देशिकाओं पर सेटगिड बिट सेट करना जहां आप फाइलें बनाना चाहते हैं। इसका अर्थ यह है कि इस पर ध्यान दिए बिना कि फ़ाइल कौन बनाता है, फ़ाइल उस समूह से संबंधित होगी जो निर्देशिका का मालिक है। यह अक्सर आपको आवश्यक प्रभाव प्राप्त करता है - हालांकि मुझे उन लोगों के बारे में पता है जो लगातार इसका उपयोग करते हैं।
स्रोत
2008-11-18 19:47:58
मदद उद्धृत कर सकते हैं? जैसा कि exec sg nas_bio3 "$ @" –
में नहीं है, मुझे नहीं पता कि लिनक्सन का जवाब कब स्वीकार किया गया था जब सोलारिस को टैग किया गया था। मैं एक ही स्थिति में हूं, और "एसजी" मेरे सोलारिस बॉक्स पर मौजूद नहीं है। – Jolta