回答:
問題のユーザーは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
。
以下は、usermod
manページからの引用です。
-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
代わりになったようです
上記の答えにどんな知恵があっても、次のように、指定したユーザーのルートアカウントを有効にしてsudoを無効にする問題を解決しました。
最初にルートアカウントを有効にします。
$ sudo passwd root
詳細については、Ubuntu Documentationを参照してください。
次に:
あれは:
$ 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)
慎重に、この方法でシステムからロックアウトできます!ルートユーザーが自分の権利を保持し、アクセスできることを常に確認してください。変更を取り消すことができるように、事前にルートターミナルを開いたままにしてください。ルート端末を閉じる前に、別の端末で設定をテストしてください!
別の答えで説明されているように。/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