web-dev-qa-db-ja.com

コマンドラインからユーザーへのSudo権限を無効にする

私は、ubuntuでrootユーザーを有効にしました。DEなしでubuntuをサーバーとして使用したいです。このため、最初のユーザーに与えられたSudo特権を無効にします。コマンドラインからこれを行うにはどうすればよいですか?私はGUIを使用できることを知っていますが、コマンドラインからそれを行う方法は?

18
sagarchalise

問題のユーザーはadminグループに属しているため、Sudo特権を持っています。 wojoxがコメントしたように、visudoを使用して管理者グループからSudo特権を削除できますが、1人のユーザーだけでなくall管理者グループのメンバーから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と入力してユーザーとグループを変更できます。

14
Bribles

上記の答えにどんな知恵があったとしても、次のように、指定したユーザーのルートアカウントを有効にし、Sudoを無効にするという問題を解決しました。

最初にルートアカウントを有効にします。

$ Sudo passwd root

buntu Documentation に詳細があります。

次に:

  • ルートになる
  • バックアップしてから/ 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]

ユーザー「guest」がsudoersファイルから削除されました。すべてがうまくいけば、Sudoコマンドは次のようなメッセージを返すはずです。

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

このコンピューターにログインしているゲストは、rootになる必要があるため、偶然または喜んでシステムに干渉することはありません。もちろん、新しいユーザーを追加する場合は、/ etc/groupの編集を繰り返す必要があります。

乾杯!

-linuxrev

(Ubuntu 12.04)

2
user171569

警告

慎重に、この方法でシステムからロックアウトできます!ルートユーザーが自分の権利を保持し、アクセスできることを常に確認してください。変更を取り消すことができるように、事前にルートターミナルを開いたままにしてください。ルート端末を閉じる前に、別の端末で設定をテストしてください!

ソーダ

別の回答 で説明されているように。シェルでvisudoを呼び出して/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」グループのメンバーです。あなたがそれを好めば、あなたも同じようにできます ユーザーのメンバーシップを取り消す そのグループに。私の最後のリンクに従うか、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
con-f-use