저는 약 7명과 공유되는 서버를 사용하고 있습니다. 우리 각자는 자신만의 사용자 계정을 가지고 있지만 필요한 대부분의 항목에 액세스할 수 없으므로 기본적으로 인증 외에는 쓸모가 없습니다.
대신 sudo를 사용하여 다른 사용자("dev"라고 함)가 됩니다. 개발 계정은 팀의 모든 사람과 다른 팀의 몇몇 사람들이 공유합니다. 이것이 실제로 작동할 수 있는 충분한 권한을 가지고 액세스할 수 있는 유일한 계정이라는 점을 고려하면 이를 공유해야 한다는 것은 매우 실망스러운 일입니다.
개발자 홈 디렉터리 아래에 내 디렉터리가 있습니다. 내가 원하는 것은 내 하위 디렉터리를 홈 디렉터리로 사용하여 새 셸 세션을 열고 개발자의 홈 디렉터리가 아닌 내 하위 디렉터리에서 도트 파일을 가져올 수 있는 것입니다. 이런 식으로 나만의 설정(.bashrc, .vimrc 등)을 가질 수 있고 버튼을 누르면 다른 사람의 .bash_history를 파헤칠 수 없으며 다른 사람도 내 것을 파헤칠 수 없습니다.
나는 HOME 디렉터리를 변경하고 필요에 따라 도트 파일을 가져옴으로써 이것을 가짜로 만들 수 있다는 것을 알고 있지만 다음과 같이 공유 계정으로 sudo할 때 이것을 자동화하는 방법을 원합니다. (
sudo -ui dev HOME=/users/dev/me bash
이것은 현재로서는 작동하지 않습니다.) 이를 수행할 수 있는 방법이 있습니까?
"올바른" 해결책은 처음부터 공유 계정을 사용하지 않고 각 사용자의 계정에 적절한 권한을 부여하는 것입니다. 그러나 서버는 별도의 회사에서 소유하고 운영하며 해당 시스템 관리자는 우리 그룹을 상대로 작업해 왔습니다. 실제로 우리는 더 많은 액세스 권한과 도구를 사용할 수 있었지만, 우리가 원하지 않는 일을 하고 있다는 사실을 알게 되었을 때 그 권한을 빼앗겼습니다(계약 위반이나 특이한 사항은 없습니다. 시스템 관리자는 인색할 뿐입니다).
답변1
내가 원하는 만큼 자동적이지는 않지만, 이것이 내가 생각해낸 것입니다:
sudo -iu dev bash # change to dev and start the session in bash instead of sh (the default for the dev user)
. me/rehome.sh # source the script below to change HOME
재설치.sh:
export HOME=/home/dev/me # reset the HOME var.
export HISTFILE=$HOME/.bash_history # change the bash history file to my own
history -c; history -r # Clear the session's history (loaded from the shared account), and then load my own
. $HOME/.bashrc # source my .bashrc settings
cd $HOME
이를 통해 내가 실행하는 vim 및 기타 프로그램에서 개발자의 도트 파일 대신 내 디렉터리에 있는 도트 파일을 사용할 수 있으며 나에게 나만의 쉘 기록이 제공되므로 팀 내 다른 모든 사람의 기록을 스크롤할 필요가 없습니다. 나도 봐야 해.