Linux管理者は、 sudo権限を追加、削除、および付与する方法を知っている必要があります。 ユーザーに。通常のユーザーに一時的なsudoアクセスを許可して、ソフトウェアをインストールしたり、特定の管理タスクを自分で実行したりする場合があります。時間の経過とともに、sudo特権を取り消すことを忘れる可能性があります。したがって、Linuxシステムにスーパーユーザーが何人いるかを時々確認することをお勧めします。忘れられた、または不要なsudoアクセスがある場合は、単にそれらを取り消すことができます。この簡単なガイドでは、LinuxおよびUnixライクなオペレーティングシステムですべてのsudoユーザーを見つける方法について説明します。
推奨ダウンロード-無料のチートシート:「Linuxコマンドラインチートシート」
Linuxのsudoユーザーを一覧表示する
まず、システム内のすべてのユーザーを一覧表示します。これを行うには、次を実行します:
$ awk -F':' '{ print $1}' /etc/passwd
Ubuntuシステムからの出力例:
root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-timesync systemd-network systemd-resolve systemd-bus-proxy syslog _apt lxd messagebus uuidd dnsmasq sshd sk senthil kumar ostechnix
Linuxシステムのすべてのユーザーを一覧表示する別の方法は次のとおりです。
$ compgen -u
ここで、次のコマンドを使用して、Linuxシステムでsudoまたはsuperユーザーのみを検索します。
$ grep '^sudo:.*$' /etc/group | cut -d: -f4 sk,ostechnix
"getent"
を使用することもできます "grep"
の代わりにコマンド 同じ結果を得るには。
$ getent group sudo | cut -d: -f4 sk,ostechnix
上記の出力にあるように、「sk」と「ostechnix」は私のシステムのsudoユーザーです。
ユーザーがsudo権限を持っているかどうかを確認する
Linuxシステムですべてのsudoユーザーを見つける方法がわかりました。特定のユーザーがsudo特権を持っているかどうかを確認するにはどうすればよいですか?簡単です!
ユーザーがsudoユーザーであるかどうかを確認するには、単に実行します
$ sudo -l -U sk
出力例:
Matching Defaults entries for sk on ubuntuserver: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User sk may run the following commands on ubuntuserver: (ALL : ALL) ALL
ご覧のとおり、「sk」という名前のユーザーはすべてのコマンドを実行できます。つまり、彼はsudoグループに属しています。
別のユーザーを確認しましょう。
$ sudo -l -U senthil
出力例:
User senthil is not allowed to run sudo on ubuntuserver.
さて、ユーザー「senthil」はsudoを実行することを許可されていません。彼はただの普通のユーザーです!
次のコマンドを実行して、ユーザーがsudoアクセス権を持っているかどうかを確認することもできます。
$ sudo -nv
出力として何も得られない場合、ユーザーはsudoアクセス権を持っています。
以下のような出力が表示された場合、ユーザーにはsudoアクセス権がありません。
$ sudo -nv Sorry, user senthil may not run sudo on ubuntuserver.
推奨される読み物:
- UbuntuのユーザーにSudo権限を付与および削除する方法
- LinuxでデフォルトのSudoログファイルを変更する方法
- ユーザーにSudo特権を復元する方法
- LinuxでSudoパスワードなしで特定のコマンドを実行する方法
- sudoを使用するときに、ユーザーが自分のパスワードではなくrootパスワードを使用するように強制する方法