예를 들어 Linux에서 내 사용자 이름을 변경하고 싶지만 sudo usermod -l new old
오류가 발생합니다.
usermod: user old is currently used by process 4139
SSH를 통해 로그인했기 때문에 이것은 분명합니다.
old 4139 0.0 0.2 17032 5140 ? S 18:31 0:00 sshd: old@pts/0
그렇게하더라도 su root
다른 사용자로 새 쉘을 시작하겠습니다. 보안상의 이유로 SSH를 통해 다른 사용자로 로그인할 수 없습니다. 이 문제를 어떻게 극복할 수 있습니까?
한 가지 옵션은 일시적으로 보안을 낮추거나(sshd 구성 변경) 임시 사용자를 생성하고, SSH 키를 설정하고, 이를 sudoers에 추가하고, 다른 사용자로 로그인하여 모든 것을 정리하는 것입니다. 이것은 매우 지루한 작업인 것 같습니다. 더 쉬운 방법이 있나요?
답변1
시도해 보고 작동하는지 확인하십시오 exec su root
. 그러면 셸이 대체되고 실행 중인 su
프로세스가 없을 수도 있습니다 old
.
그래도 작동하지 않으면 루트로 로그인하면 됩니다. 아니면 사용자 데이터베이스를 수동으로 편집하고 이로 인해 발생할 수 있는 혼란을 고려하십시오(솔직히 권한 있는 세션을 열어두는 동안 실제로 많은 영향을 미칠지는 의심스럽습니다.) 어떤 경우에도 usermod
홈 디렉토리는 변경되지 않으므로 이 작업은 개별적으로 수행해야 합니다.
루트로 직접 로그인하는 것과 루트로 sudo할 새 사용자를 생성하는 것 사이에는 "보안 감소" 차이가 없습니다.