私は古いSLES GNU / Linuxシステムで作業しています。ルートもなく、独自のユーザーアカウントもありません。複数の人が同じユーザーアカウントを使用します(通常は同時に)。
これは「必須」です。多くの人が他のアカウントではなくそのアカウントを使用していると仮定しているため、自分自身のために別のアカウントをリクエストすることはできません(単一のアカウントではないため、実際には重要ではありません)。さまざまな理由があります)。同時に、私は自分のシェルrcスクリプト、VIM設定、gitまたはMercurial設定、私がパスに書き込むスクリプトなどをパーソナライズしたいと思います。最後に - 他の人がアカウントをどのように使用しているかを知る方法はありません。つまり、私が設定を変更したり、私のファイルなどを操作することに耐えられません(彼らも同じことをしたいかもしれません)。
私の質問:いわゆる「サブユーザー」または「ユーザー内のユーザー」アカウントまたは環境を作成する一般的で確立された方法はありますか?一部のツール/スクリプトでサポートされていますか?
答え1
あなたを$HOME
家から遠ざける
ワンタイム初期化:
install -d /home/shareduser/subusers/einpoklum
- すべての適切な設定ファイルとデータディレクトリをからにコピー/リンク
/home/shareduser
します/home/shareduser/subusers/einpoklum
。
ホームディレクトリにクォータがある人は、変更されていないファイルへのハードリンクとディレクトリへのシンボリックリンクがコピーするよりもスペース効率が高いことを知っています。
各端末からログインしてください。
export HOME="$HOME"/subusers/einpoklum
XDG_CONFIG_HOME
該当する場合と を同様に調整しますXDG_DATA_HOME
。PATH
必要に応じて改善を行います。
グラフィカルログインに対してこれを行うことは、多くのデスクトッププロセスが起動時に変更された環境変数を継承する必要があるため、より複雑です。メカニズムはデスクトップとオペレーティングシステムによって異なりますが、同じ目標が適用されます。
HOME
人々はこれが魔法ではなく単に環境変数であるという事実を忘れてしまいます。
追加読書
答え2
別の二人に属する同時セッションがないと仮定。最良の方法は、次を使用することです。GNUリポジトリこれを管理するため。 Stowは、Linuxエコシステムで最も奇妙で便利なパッケージの1つです。その役割は、シンボリックリンクグループを体系的に管理することです。
アプリケーションの場合は、ユーザーアカウントのホームディレクトリに、そのアカウントを使用しているすべての人のドットファイルを保持するディレクトリ(〜/ .peopleなど)を作成します。その後、各人は自分のドットファイルを people ディレクトリの下のサブディレクトリに保存します。たとえば、Smittyはvimrcなどを〜/ .people / smittyに入れます。 Noraはすべての設定ファイルを〜/ .people / noraなどに保存します。
ログイン時に誰でも実行
(cd ~/.people && stow $name)
ここで、$name は、実行からログオフするときにその人の ~/.people ディレクトリ名です。
(cd ~/.people && stow -d $name)
自動化にはいくつかの方法があります。各ユーザーがログインおよびログアウトしたときに実行される ~/.login および ~/.logout というシェルスクリプトがあります。これが最も簡単な方法になります。しかし、自動化は混乱を招く可能性があります。前回同様の設定をしたとき、誰かが誤って〜/.ssh/authorized_keysを置き換えました。だから私のアドバイスはこれを避けることです。
同時に複数のユーザーがいる場合
華やかな蹴りがなければ、そうするための確実な方法はありません。ただし、構成目的のために、プログラムは$ HOME環境変数を使用してホームディレクトリの場所を決定します。最善の方法は、以前のように ~/.people/$name を使用することですが、stow を使用してユーザーごとに実行しないでくださいHOME="~/.people/$name" bash -l
。これにより、ホームディレクトリ変数が各ユーザーのサブディレクトリに設定された新しいbashセッションが作成され、新しいホームディレクトリ値で正常にログインしたのと同じ起動スクリプトが実行されます。したがって、構成ファイルの場所の$ HOME値を参照する新しいbashインスタンスで実行されるすべてのプログラムは、トップレベルのホームディレクトリの代わりに各個々のディレクトリを使用するように騙されます。このハッキングは非常に脆弱であり、すべてのプログラムで動作するわけではありませんが、複数の人が同時に使用するときにできる最善の方法です。
答え3
この設定では、あらゆる種類の「面白いもの」が必要です。古いオペレーティングシステムは、既知のさまざまな脆弱性を意味し、エンターテイメントの価値を追加します。
この複雑さを捨てて、各ユーザーがアカウントを持っている一般的なものを設定してください。共有を設定するいくつかの実用的でテストされた方法があります(共有リソース用の独自のグループ、ACL設定)。
結局のところ、これらすべてをジャグリングする追加の作業はおそらくそれほど価値がないでしょう。