ちょっと変な質問かもしれませんが、可能かどうか知りたいです。
私はシステムを設定するときにすべてのことをする必要がないように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
またvi
。HOME=/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
。
答え2
二重認証
私が知っている限り、あなたが要求したことを達成する方法はありません。
代替
マルチターミナル
いつでも複数のウィンドウを開くことができます。私はしばしば複数のタブで終わっていますがgnome-terminal
、そのうちのいくつかは他のシステムの他のアカウントにログインしており、他のものはまだ私のローカルシステムにしかありません。
スクリーンとTMUX
別のオプションは、使用方法を学ぶことです。screen
またはtmux
これにより、ウィンドウ間を前後に切り替えることができます。複数のタブがあるだけでなく、かなり使用しますgnome-terminal
。
このアプローチの別の利点は、端末セッションを保存するためにリモートシステムとの接続を切断し、後で再接続できることです。
代替 sudo ワークフロー
このトリックを使用すると、環境のエイリアスにアクセスできます。エイリアスを次のように設定します。
$ alias sudo='sudo '
メモ:コマンドの後にスペースがあります。それ以降はsudo
正常に動作し、問題なくユーザーのエイリアスを使用できます(通常はroot権限で)。
もっと仕組みの詳細ここで見つけることができます。
抜粋
エイリアス値の最後の文字がスペースまたはタブの場合、エイリアスの後の次のコマンドワードもエイリアス拡張を確認します。
次のエイリアスを使用して環境の.profileをロードすることもできます。
$ alias sudo='sudo su -i ENV=/home/myuser/.profile'
また何ですか?
あなたが経験しているワークフローは、Unix環境の動作方法とまったく同じです。したがって、これに適応し、反復的な操作をスクリプトまたはエイリアスとして作成して表示されないようにすることをお勧めします。
システムアカウント(ルートなど)にログインするときに特定のものが必要だと思われる場合は、同じ高い権限を持つ他の人と協力して、そのアカウント内の特定の基準に同意することができます。
ショートカットとエイリアスを作成する場合は、これを行うことも、そうする必要があります効率的かもしれません。