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


18

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


グループの設定方法に応じて、visudo
wojox

回答:


14

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

以下は、usermodmanページからの引用です。

-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、コマンドラインから入力してユーザーとグループを変更できます。


Preciseで削除するグループがsudo代わりになったようです
Joril

2

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

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

$ sudo passwd root

詳細については、Ubuntu 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)


1

警告

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

ソーダ

別の答えで説明されているように。/etc/sudoersシェルでvisudoを呼び出して編集します。

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
@psusi:いいえ、間違っています。彼はそれを削除できます。「私はubuntuでrootユーザーを有効にしました」という意味で、彼は常にルートユーザーとしてログインしてアクセスを得ることができます。私の投稿のあなたの投票権を訂正してください。
CON-F-使用
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.