次のコマンドを使用して、自分をsudoersユーザーリストに追加しました
root@debian:/home/oshirowanen#adduser oshirowanen Sudo
そのコマンドをもう一度実行しようとすると、
root@debian:/home/oshirowanen# adduser oshirowanen Sudo
The user `oshirowanen' is already a member of `Sudo'.
root@debian:/home/oshirowanen#
これまでのところ、すべて良さそうです。
次にrootユーザーを終了し、自分のアカウントを使用して何かをインストール/削除/検索しようとすると、機能せず、私がsudoerではないと不平を言っています...たとえば
root@debian:/home/oshirowanen# exit
exit
oshirowanen@debian:~$ Sudo aptitude search ice
[Sudo] password for oshirowanen:
oshirowanen is not in the sudoers file. This incident will be reported.
oshirowanen@debian:~$
なぜこうなった?
これはvisudo
から取得したものです
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group Sudo to execute any command
%Sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
正しい権限を取得するには、自分をグループに追加した後で再度ログインする必要があります。
2つのシェルで確認するには:
alice $ Sudo adduser test
alice $ su - test
alice $ Sudo adduser test Sudo
test $ Sudo ls
test is not in the sudoers file. [...]
test $ exit
alice $ su - test
test $ Sudo ls
examples.desktop
明確に言うと、開かれたシェルbeforeSudo
グループにユーザーが追加されたシェルには、新しい特権がありません。
ここでは2つの異なる動作が行われています。
一部のディストリビューションでは、sudoersグループはsudoersファイルで構成され、すべてをSudo経由で実行します。
グループを追加するには、rootとしてこれを実行してファイルを編集できます。
visudo
以下を追加します(またはコメントを外します)。
%Sudo ALL=(ALL) ALL
%記号は、それがグループ名であることを示します。最初の「ALL」は実行できるホスト、2番目は偽装できるユーザー、最後の「ALL」はSudo経由で実行できるコマンドです。
また、新しいグループメンバーシップを有効にするには、おそらく再ログインする必要があります。
アクティブなグループメンバーシップを確認するには、次を実行します。
id