2人のユーザーがいます。各ユーザーにはプロジェクトがあります。
質問:
2つのプロジェクトを同時に作業する必要がありますが、変更するには常に別のユーザーとしてログインする必要があります。そうでなければ権限がないからです。
両方のユーザーに別のエイリアスセットが必要なので、2つのユーザー間でプロジェクトを分割しました。両方のプロジェクトは異なるPHPバージョンで実行されており、エイリアスは正しいバージョンを参照する必要があります。エイリアスはプロジェクト固有のCLIコマンドに使用されます。
質問:
ユーザーAにユーザーBにフルアクセスを与え、その逆も可能ですか?
答え1
ユーザーAにユーザーBにフルアクセスを与え、その逆も可能ですか?
実際には、ユーザーAとユーザーBの両方(つまり、2つのアカウントが互いに完全に信頼できる場合)をsudo
使用して、2つのアカウントを切り替えることができます。エイリアスやその他の定義をログイン/起動スクリプト.bash_profile
に配置すると、.bashrc
スイッチで自動的に実行されるようにすることもできます。
# as User A
sudo -su userb # Or sudo -iu userb
# as User B
sudo -su usera # Or sudo -iu usera
ユーザーAとユーザーBの両方がroot権限を持たず、他のアカウントに切り替える権限のみを持つように設定できます。
ルートシェル(
sudo -s
)を開きます。設定を変更する前に閉じないでください。わかるこれにより、引き続きsudo
rootアクセス権が提供されます。visudo
(またはEDITOR=nano visudo
気に入らない場合)を使用しvi
て、ファイルの下部近くに1行を追加します。usera ALL=(userb) NOPASSWD: ALL userb ALL=(usera) NOPASSWD: ALL
あなたがそこに着いて戻ってくることができるかどうかを
sudo
テストしてください。usera
userb
手順1を実装したのと同じ方法でまだrootアクセス権を取得できるかどうかをテストします。
コメントに気づきました。あなたは同様のことを行いますが、2つのユーザーアカウントのいずれかを使用し、他のユーザーのディレクトリツリーに直接書き込むことができるようにしたいと思います。
一般的に言えば、特に各ユーザーの開発環境に異なる構成がある場合は、これをまったく実行しないことをお勧めします。特にそうかもしれないから他の顧客。ただし、これを行うには、両方のユーザーを同じグループに入れ、ファイルがグループ書き込み権限で作成されていることを確認します。
準備する:
# Add shared working group
groupadd bothusers
usermod -aG bothusers usera
usermod -aG bothusers userb
# Increase write permissions to both users' directory trees
find ~usera/* ~userb/* -exec chmod g=u {} +
# Set group membership
find ~usera/* ~userb/* -exec chgrp bothusers {} +
適切なディレクトリツリーのみが一致するように、両方のコマンド*
でワイルドカードを減らすことができます。find
各セッションの開始時にそれを呼び出します(おそらく~/.bashrc
構成設定スクリプトから)。
# Create files with group write permissions
umask 0002
find
cron
毎時間またはログインするときは、これら2つのコマンドをユーザーごとに変換して実行すると便利です。
ユーザーのデフォルトグループは変更されませんbothusers
。現在のセッション内でこれを行うことができますが、newgrp bothusers
新しいサブシェルが開始されることに注意してください。