두 명의 사용자가 있습니다. 각 사용자에게는 프로젝트가 있습니다.
질문:
두 개의 프로젝트를 동시에 작업해야 하는데, 변경하려면 항상 다른 사용자로 로그인해야 합니다. 그렇지 않으면 권한이 없기 때문입니다.
두 사용자 모두에 대한 또 다른 별칭 세트가 필요하기 때문에 두 사용자 간에 프로젝트를 분할했습니다. 두 프로젝트 모두 서로 다른 PHP 버전으로 실행되고 있으며 별칭은 올바른 버전을 참조해야 합니다. 별칭은 프로젝트별 CLI 명령에 사용됩니다.
질문:
사용자 A에게 사용자 B에게 전체 액세스 권한을 부여하고 그 반대의 경우도 가능합니까?
답변1
사용자 A에게 사용자 B에게 전체 액세스 권한을 부여하고 그 반대의 경우도 가능합니까?
실제로 사용자 A와 사용자 B 모두인 경우(즉, 두 계정이 서로 완전히 신뢰할 수 있는 경우) 를 sudo
사용하여 두 계정 간에 전환할 수 있습니다. 별칭 및 기타 정의를 로그인/시작 스크립트 .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 모두 루트 권한을 갖지 않고 다른 계정으로 전환할 수 있는 권한만 갖도록 설정할 수 있습니다.
루트 셸(
sudo -s
)을 엽니다. 구성을 변경하기 전에 닫지 마십시오.알잖아이렇게 하면sudo
계속 루트 액세스 권한이 제공됩니다.visudo
(또는EDITOR=nano visudo
마음에 들지 않는 경우 )을 사용vi
하고 파일 하단 근처에 한 줄을 추가하십시오.usera ALL=(userb) NOPASSWD: ALL userb ALL=(usera) NOPASSWD: ALL
당신이 거기에 도착하고 돌아올
sudo
수 있는지 테스트하십시오 .usera
userb
1단계를 구현한 것과 동일한 방식으로 여전히 루트 액세스 권한을 얻을 수 있는지 테스트합니다.
댓글에서 눈치채셨네요당신은비슷한 작업을 수행하되 두 사용자 계정 중 하나를 사용하고 다른 사용자의 디렉터리 트리에 직접 쓸 수 있기를 원합니다.
일반적으로 말하면, 특히 각 사용자의 개발 환경에 대해 서로 다른 구성이 있는 경우에는 이 작업을 전혀 수행하지 않는 것이 좋습니다. 특히 그럴 수도 있을 것 같으니까다른 고객. 그러나 이 작업을 수행하려면 두 사용자를 모두 동일한 그룹에 넣고 파일이 그룹 쓰기 권한으로 생성되었는지 확인하면 됩니다.
준비하다:
# 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
매 시간마다 또는 로그인할 때 이 두 명령을 사용자별로 변형하여 실행하는 것이 유용 할 수 있습니다 .
사용자의 기본 그룹은 변경되지 않습니다 bothusers
. 현재 세션 내에서 이 작업을 수행 할 수 있지만 newgrp bothusers
새 하위 쉘이 시작된다는 점에 유의하세요.