कमांड लाइन से उपयोगकर्ता के लिए sudo अनुमति अक्षम करें


18

मैंने ubuntu में रूट उपयोगकर्ता को सक्रिय कर दिया है और ubuntu को बिना DE के सर्वर के रूप में उपयोग करना चाहता है। इसके लिए मैं पहले उपयोगकर्ता को दिए गए sudo विशेषाधिकार को अक्षम करना चाहता हूं। मैं कमांड लाइन से यह कैसे कर सकता हूं? मुझे पता है कि मैं एक GUI का उपयोग कर सकता हूं, लेकिन इसे कमांड लाइन से कैसे करें?


आप अपने समूह कैसे सेट करते हैं, इस पर निर्भर करते हुए,
विज़ुडे

जवाबों:


14

प्रश्न में उपयोगकर्ता के पास सूडो विशेषाधिकार हैं क्योंकि यह adminसमूह में है। जैसा कि wojox ने टिप्पणी की है, आप visudoव्यवस्थापक समूह से sudo विशेषाधिकार का उपयोग कर सकते हैं और हटा सकते हैं , लेकिन यह व्यवस्थापक समूह के सभी सदस्यों से sudo क्षमताओं को न केवल एक उपयोगकर्ता को निकाल देगा ।

वैकल्पिक रूप से, आप उपयोगकर्ता को व्यवस्थापक समूह से निकाल सकते हैं। यदि स्क्रीन ओरिएंटेड viकमांड लाइन को पर्याप्त माना जाता है, vigrतो उपयोगकर्ता नाम को उपयुक्त लाइन से चलाएं और हटाएं।

"शुद्ध" कमांड लाइन समाधान के लिए, कोशिश करें gpasswd, क्योंकि यह / etc / group को प्रशासित करता है और समूहों से उपयोगकर्ताओं को जोड़ और हटा सकता है।

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
root@toki:~# gpasswd -d username admin
Removing user username from group admin

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
root@toki:~# gpasswd -a username admin
Adding user username to group admin
root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

नीचे मेरा पहला जवाब है इससे पहले कि मुझे एहसास हुआ कि इसे करने के लिए एक कम गूंगा था।

यदि आप ऐसा करने के लिए अधिक जटिल तरीका चाहते हैं, तो आप उपयोग कर सकते हैं usermod

यहाँ usermodआदमी पृष्ठ से एक उद्धरण है :

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of.
    Each group is separated from the next by a comma, with no intervening
    whitespace. The groups are subject to the same restrictions as the
    group given with the -g option.

    If the user is currently a member of a group which is not listed, the
    user will be removed from the group. This behaviour can be changed via
    the -a option, which appends the user to the current supplementary group
    list.

इसलिए आपको उपयोगकर्ता को छोड़कर सभी समूहों को निर्दिष्ट करना होगा admin

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

root@toki:~# usermod -G 4,20,24,46,111,122 username

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),122(sambashare)

अंत में, यह प्रश्न की भावना का उल्लंघन करता है, लेकिन users-adminउपयोगकर्ता और समूहों को संशोधित करने के लिए कमांड लाइन से टाइप कर सकता है ।


ऐसा लग रहा है कि sudo
प्रीसीज़

2

उपरोक्त उत्तरों में जो भी ज्ञान पाया जा सकता है, मैंने रूट खाते को सक्षम करने और एक निर्दिष्ट उपयोगकर्ता के लिए sudo को अक्षम करने के मुद्दे को हल किया है।

पहले रूट खाते को सक्षम करें:

$ sudo passwd root

उबंटू प्रलेखन में अधिक जानकारी ।

फिर:

  • जड़ हो जाओ
  • बैकअप और फिर / etc / group को एडिट करें
  • परिवर्तनों का परीक्षण करने के लिए फिर से उपयोगकर्ता बनें

अर्थात्:

$ su
# cp /etc/group /etc/group.bak
# nano /etc/group               # find a line like 'sudo:x:27:guest', remove the
                                # user name (i.c. 'guest') and save the file
# exit,
$ [try any sudo command]

उपयोगकर्ता 'अतिथि' अब sudoers फ़ाइल से निकाल दिया गया है। यदि सभी अच्छी तरह से चले गए हैं, तो किसी भी sudo कमांड को इस तरह एक संदेश वापस करना चाहिए:

guest is not in the sudoers file.  This incident will be reported.

इस कंप्यूटर पर लॉग इन करने वाला अतिथि गलती से या सिस्टम के साथ स्वेच्छा से गड़बड़ी नहीं कर सकता है, क्योंकि आपको ऐसा करने के लिए रूट होने की आवश्यकता है। बेशक, यदि आप एक नया उपयोगकर्ता जोड़ते हैं, तो आपको / etc / group के संपादन को दोहराना होगा।

चीयर्स!

- linuxrev

(उबुन्टु 12.04)


1

चेतावनी

Carefull, आप अपने आप को इस तरह से हमारे सिस्टम से बाहर कर सकते हैं! हमेशा सुनिश्चित करें, कि रूट-उपयोगकर्ता अपने अधिकारों को बनाए रखता है और आप इसे एक्सेस कर सकते हैं। रूट टर्मिनल को पहले से खुला रखें ताकि आप परिवर्तनों को पूर्ववत कर सकें। अपने रूट-टर्मिनल को बंद करने से पहले दूसरे टर्मिनल में टेस्ट सेटिंग्स!

soduers

जैसा कि एक अन्य उत्तर में वर्णित है । /etc/sudoersशेल में विस्कोस को शामिल करके संपादित करें :

sudo select-editor # this is optional. it will allow you to select your default editor in shell
sudo visudo

फिर इस तरह से कहने वाली रेखा को बदलें:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

इसके लिए:

# root may gain root privileges
root ALL=(ALL) ALL

या लाइन हटाएं, यदि आप सुनिश्चित हैं, तो आपका रूट उपयोगकर्ता खाता सक्षम है।

समूह

डिफ़ॉल्ट उपयोगकर्ता 'एडमिन' समूह का सदस्य है। यदि आप इसे पसंद करते हैं, तो आप उपयोगकर्ताओं को उस समूह की सदस्यता रद्द कर सकते हैं । मेरे अंतिम लिंक का अनुसरण करके या फ़ाइल admin:x:120:defaultuserमें लाइन से उसका नाम हटा दें /etc/group:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group

1
@psusi: नहीं, आप गलत हैं। वह इसे हटा सकते हैं। जैसा कि उन्होंने कहा "मैंने उबंटू में रूट उपयोगकर्ता को सक्रिय कर दिया है" अर्थ, वह हमेशा के लिए लॉग इन के रूप में लॉग इन कर सकते हैं। कृपया मेरी पोस्ट के डाउनवोट को सही करें।
कॉन-एफ-
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.