あるユーザーとしてログインし、別のユーザーとして認証

あるユーザーとしてログインし、別のユーザーとして認証

ちょっと変な質問かもしれませんが、可能かどうか知りたいです。

私はシステムを設定するときにすべてのことをする必要がないようにrootを使用することを好みます。ただし、rootアカウントは私の個人アカウントではないため、rootアカウント(bashrc、vimrcなど)で設定を変更すると、他の人が迷惑になる可能性があります。だから個人アカウントを使って設定に戻りたいのですが、権限がありません。

ルートアカウントだけに問題はなく、時には他のユーザーアカウントでも作業を行う必要があります。

理想的には、他のユーザー(またはrootアカウント)で認証できますが、そのようにログインすることはできません。

特定のユーザーとしてログインして個人プロファイルの設定ファイル(bashrcやvimrcなど)を手動で実行することもできますが、これは毎回面倒な作業のようです。

私がここで説明する内容を効率的に実行する方法を知っている人はいますか?それとも、これは奇妙にしてはいけないと思いますか?

ベストアンサー1

私はこの問題に対する普遍的な解決策がないと思います。同時に2人のユーザーにすることはできません。コマンドを実行するたびに、シェルはコマンドを実行する必要があるユーザーを推測する必要があります。ファイルを作成するときは、ファイルが誰に属しているのかなどを推測する必要があります。

5番目の段落を作成します。私のホームディレクトリへのパスを含めるように、PATH、LD_LIBRARY_PATH、MANPATH、およびPKG_CONFIG_PATHをソーシングして調整するスクリプト/usr/local/bin(私はこれと呼びますbecomeme)があります。/home/user/.bashrcまたviHOME=/home/me vi簡単なユースケースであるbashrc、vi、およびscreenではかなりうまく機能します。

しかし、これはある程度まで機能します。なぜなら、別のユーザーとして自分のホームディレクトリにアクセスすることは、通常、ユーザーが望ましくない特定のファイルとディレクトリへの書き込み権限が必要であることを意味するからです。したがって、vi最も一般的なユースケースではハッキングに近いですscreen

becomeme他のユーザーに切り替えた後に入力することを覚えておくだけで、あまり複雑ではありません。ルートの場合、これはかなり迅速に機能し、他のユーザーの場合は、まず自宅のファイルに対する権限を付与する必要があります。

まだ試していないがユースケースに適している可能性があるもう1つのアプローチは、UID 0とユーザーファミリーを使用して別のユーザーを作成することです。あなたがしなければなら/etc/passwdないのは、合計に1行を追加することだけです/etc/shadow。たとえば、rootユーザー名がadminの場合、その行は次の/etc/passwdようになります。

admin:x:0:0:My personalized root account:/home/mynormaluser:/bin/bash

次に、入力passwd adminして項目を作成します/etc/shadow。今すぐログインすると、adminルートUID 0になりますが、通常のホームディレクトリと一般ユーザーの設定が適用されます。また、共有する必要がない独自のパスワードもあります。ただし、これはNFS-homeでは機能しません(root_squashを参照)。

これが機能している間、adminユーザーとしてホームディレクトリにファイルを作成するたびに、いくつかのファイル権限の問題が発生する可能性があります。適切な作成マスクを使用してユーザーと指定されたグループ間でのみ共有することで、これらの問題を解決できますadmin

おすすめ記事