솔라리스에서 쉘스트립트로 사용자의 로그인 셀을 변경시킬려고 합니다.

dcmru의 이미지

솔라리스에서 쉘스크립트를 사용하여 여러사용자의 로그인쉘을 변경시킬려고 합니다.

먼저 솔라리스에서 사용자의 로그인쉘을 변경시킬 수 있는 명령어는

passwd -e user_name

usermod -s shell_full_path user_name

가 있는 것 같습니다.

솔라리스에서는 기본적으로 chsh 명령어는 없더군요.

그런데 쉘에서 명령어 한 줄로 사용자의 로그인쉘을 변경할려면 usermod 명령어로 해야될 것 같습니다.

왜냐하면 passwd -e 는 명령어 한 줄에서 사용자의 로그인 쉘을 지정을 못하는군요.

다음과 같기 때문입니다.

# passwd -e user_name
Old shell: /bin/sh
New shell: /bin/csh

이런식으로 New shell을 물어봅니다.

그러나 usermod 명령어는 변경할려는 사용자가 로그인되어 있으면 정보를 변경할 수 없더군요.

UX: usermod: ERROR: user_name is in use. Cannot change it.

이런식의 에러메시지를 냅니다.

결론은 사용자가 로그인이 되어 있어도 사용자의 로그인 쉘을 변경할 수 있는 다른방법이 있냐고 하는 것입니다.

/etc/passwd 파일을 직접적으로 수정해도 되겠지만,

잘못 변경하면 안되기 때문에 직접 수정하는 방법은 사용하지 않을려고 합니다.

다른 방법이 있나요?