通常のユーザーにスーパーユーザー権限(ルート権限)があるかどうかを確認したい。私のOSはRHEL 6で、チェック済み/etc/passwd
構成ファイル。ただし、使用しません。 Linuxマシンでユーザーの現在の権限を見つける方法を教えてください。
過去の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のガイド を参照してください。
スーパーユーザー特権は、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です。
ユーザーは、Sudo
というプログラムを介して権利を与えることにより、間接的な「スーパーユーザー」権限を取得できます。
Sudo
を使用すると、スーパーユーザー権限で特定のプログラムを実行できるユーザーまたはグループを指定できます。
通常、ユーザーにはスーパーユーザー権限がありません。しかし、通常のユーザー(つまり、UID!= 0)がroot権限を取得できることを思いついた方法は3つあります。