web-dev-qa-db-ja.com

すべてのファイルへの読み取り専用アクセス権を持つユーザーを作成するにはどうすればよいですか? (つまり、書き込み権限のないルート)

サーバーをバックアップするために、SSH経由でリモートアクセスしたいと思います。すべてのリスクを最小限に抑えるために、rootと同様に、読み取りアクセス権のみを持ち、すべてのファイルにアクセスできるユーザーを使用する必要があります。ただし、彼には書き込み権限はありません。

それを達成する方法に関するアイデアはありますか?

9
Mononofu

メンテナンスの手間がかからない、問題を解決する別の方法を提案するかもしれません。

特定のプログラムへのアクセスが制限されたsshキーを作成できます。ルートに無制限のアクセスを許可するのは嫌いですが、特定のコマンドをリモート経由で実行できるようにする必要がある場合があります。 sshキーを使用すると、sshコマンドを使用してバックアッププログラムを実行できます。

Sshdのマニュアルページの「AUTHORIZED_KEYSFILEFORMAT」セクションを確認してください(OpenSSHを使用していると想定しています)。

http://man.openbsd.org/OpenBSD-current/man8/sshd.8

7
Darren Hall

ACLでそれを達成することができます。すべてのファイルのアクセス許可を変更するrootとして実行されるスクリプトが必要です。興味がある場合は、ACL、setfacl、およびgetfaclのマニュアルページを参照してください。

1
Kim

ACLを使用せずにこれを作成する方法はもう少しあります。ただし、ここでは注意が必要です。まず、たとえばroroot(読み取り専用ルート)というグループを作成します。次に、そのグループIDをすべてのディレクトリに適用します。グループビットのアクセス権をr--または8進数で400にしてから、通常のユーザーと同様にユーザーアカウントを作成できます。グループrorootのメンバーのみ、インストールに含まれるグループによっては、wheel、binなどの一部にしないでください。次のビットは不器用になります。 vim/nano/emacs/joe /を使用して/ etc/passwdファイルを開き、どのエディターでもボートを揺さぶって、作成したIDを探します。 rorootusr、passwdファイルは次のようになります

 root:x:0:0 ::/root:/ bin/sh 

コロンで区切って左から右に読むと、ユーザー名、パスワード(暗号化+シャドウ)、ユーザーID、グループID、コメント、ホームディレクトリ、シェルがあります。与えられた上記の例から

 rorootusr:x:512:450:rootユーザーRO:/ home/rorootusr:/ bin/bash 

0に変更するのは3番目のフィールド(512)です。450はrorootのグループIDになります。編集セッションを保存すると完了です。これでrorootusrはrootアクセスを持ちますが、グループrorootのメンバーにすぎず、システムへの読み取り専用アクセスを持ちます。

これがお役に立てば幸いです、よろしく、トム。

1
t0mm13b