web-dev-qa-db-ja.com

LinuxユーザーにSudoアクセスを許可する方法は?

ユーザーの1人にSudoアクセスを許可しようとしています。ターミナルに何を入力する必要がありますか?

53
Adam Boostani

visudoを実行する必要があり、それを開くエディターで次のように書き込みます。

igor    ALL=(ALL) ALL

その行は、ユーザーigorにすべての許可を付与します。

一部のコマンドのみの実行を許可する場合は、次の行にそれらをリストする必要があります。

igor    ALL=(ALL) /bin/kill, /bin/ps
66
Igor Chubin

この回答 は必要なことを行いますが、通常は特定のユーザー名をsudoersに追加しません。代わりに、groupのsudoersがあり、必要に応じてユーザーをそのグループに追加するだけです。この方法では、ユーザーにvisudoパーミッションを与えるときに、Sudoを複数回使用する必要はありません。

Ubuntuを使用している場合、グループはおそらくすでにセットアップされており、adminという名前になっています。

$ Sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#

...

# Members of the admin group may gain root privileges
%admin 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

Archや他のいくつかのディストリビューションでは、通常wheelと呼ばれ、設定が必要になる場合があります。 Arch Wiki

Wheelグループのユーザーがコマンドの前に「Sudo」を付けたときに完全なルート権限を付与するには、次の行のコメントを外します:%wheel ALL =(ALL)ALL

また、ほとんどのシステムでvisudoEDITOR環境変数を読み取るか、デフォルトでviを使用することに注意してください。したがって、EDITOR=vim visudoを実行して、vimをエディターとして使用することができます。

グループにユーザーを追加するには、(rootとして)実行する必要があります。

# usermod -a -G groupname username

ここで、groupnameはグループ(たとえば、adminまたはwheel)であり、usernameはユーザー名(たとえば、john)です。

57
Lev Levitsky