web-dev-qa-db-ja.com

通常のユーザーがスーパーユーザー権限を持っているかどうかを確認する方法

通常のユーザーにスーパーユーザー権限(ルート権限)があるかどうかを確認したい。私のOSはRHEL 6で、チェック済み/etc/passwd構成ファイル。ただし、使用しません。 Linuxマシンでユーザーの現在の権限を見つける方法を教えてください。

4
Jayakrishnan T

過去のUnixのルートモデルは簡単でした。 uid 0、あなたはrootであり、すべてにフルパワーを持っています。ただし、状況は少し変わっています。

suidビット

suid bitを使用してファイルを付与できるため、通常のユーザーでもrootとして実行できます。 OK、これはオリジナルのUnixにあったかもしれません。 :-)

グループ

ユーザーがグループ0に属している場合、そのユーザーには完全なroot権限がない可能性がありますが、表示することを意図していない多くのものが表示される可能性があります。また、一部のディストリビューションでは、wheelグループはあなたの目を離さないものです-そのグループに属しているユーザーは、ルートパスワードを知っていれば、ルートへの道をsuできます。

sudo

従来のsuに加えて、Sudoコマンドを使用すると、特定のユーザー/グループが一部のコマンドのみをrootとして実行するように制限できます。 visudoで確認してください。

sshアクセス

Sshを使用すると、rootとして接続できるsshキーを生成できますが、コマンドx、y、zのみを使用します。これは一般的に、バックアッププロセスがシステム内のすべてのファイルにアクセスする必要があるバックアップなどのタスクで使用されます。

機能

Linuxカーネルは、ネットワークインターフェイスやブロックデバイスなどの特定のサブシステムへのアクセスを許可する機能を獲得しました。 このリスト を参照してください。

SELinuxロール

システムでセキュリティフレームワークSELinuxが有効になっている場合、SELinuxにもロールベースのアクセス権があります。 SELinuxに関するFedoraのガイド を参照してください。

10

スーパーユーザー特権は、UID(ユーザーID)0であることによって付与されます。/etc/passwordファイルからのユーザーのgrep。ユーザーの後の最初の数値フィールドはUIDで、2番目はGID(groupid)です。ユーザーがUID 0でない場合、root権限はありません。これは、適切なグループ(wheel、nobodyなど)に所属することで得られる可能性のある追加のアクセス許可はカバーしていませんが、スーパーユーザーではありません。このユーザーが何ができて何ができないかがまだわからない場合は、単にそのユーザーにsu(su-username)して、何ができるかを確認します。所有していないディレクトリのファイルを変更できますか?そうでない場合は、スーパーユーザーではありません。これがお役に立てば幸いです。

例:nobody:x:99:45:Nobody:/:/ sbin/nologin

誰もがユーザー名ではなく、99がuidで、45がgidです。

2
Grahamux

ユーザーは、Sudoというプログラムを介して権利を与えることにより、間接的な「スーパーユーザー」権限を取得できます。

Sudoを使用すると、スーパーユーザー権限で特定のプログラムを実行できるユーザーまたはグループを指定できます。

2
mailq

通常、ユーザーにはスーパーユーザー権限がありません。しかし、通常のユーザー(つまり、UID!= 0)がroot権限を取得できることを思いついた方法は3つあります。

  1. ルートからsビットで何かを実行します。ファイルシステム全体でそのようなファイルを検索することにより、それを見つけることができます(検索を使用)。
  2. 彼はユーザーIDを変更します(suコマンド)。ただし、rootパスワードを知っている限り、すべてのユーザーが変更できます(したがって、禁止するためにrootパスワードを指定しないでください)。
  3. 須藤。/etc/sudoersをチェックして、どのユーザーがroot権限で何を実行できるかを確認してください。
1
flolo