私は、ubuntuでrootユーザーを有効にしました。DEなしでubuntuをサーバーとして使用したいです。このため、最初のユーザーに与えられたSudo特権を無効にします。コマンドラインからこれを行うにはどうすればよいですか?私はGUIを使用できることを知っていますが、コマンドラインからそれを行う方法は?
問題のユーザーは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
と入力してユーザーとグループを変更できます。
上記の答えにどんな知恵があったとしても、次のように、指定したユーザーのルートアカウントを有効にし、Sudoを無効にするという問題を解決しました。
最初にルートアカウントを有効にします。
$ Sudo passwd root
buntu 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)
慎重に、この方法でシステムからロックアウトできます!ルートユーザーが自分の権利を保持し、アクセスできることを常に確認してください。変更を取り消すことができるように、事前にルートターミナルを開いたままにしてください。ルート端末を閉じる前に、別の端末で設定をテストしてください!
別の回答 で説明されているように。シェルで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