passwd 명령어는 사용자의 비밀번호를 변경하는 명령어 이다 기본적으로 사용하는 방식은 다음과 같습니다.
passwd [사용자 이름]
[]안의 사용자 이름을 생략 가능하며 만약 "superman"이란 사용자가 passwd라고 입력하게되면 superman 자신의 비밀번호를 변경하겠다는 말이 됩니다. 하지만 superman 사용자가 passwd 명령어 뒤에 사용자 이름을 betman이라고 주게 되면 변경이 불가능 하다는 경고가 출력됩니다. 이는 최고 관리자인 root만 가능한 기능입니다.
[solaris10vm:/]$ passwd
passwd: Changing password for superman
New password:
passwd(SYSTEM): Password too short - must be at least 6 characters.
superman이라는 사용자가 비밀번호를 바꾼다는 메시지가 출력되어 있다. 위에서 말한바와 같이 사용자 이름을 생략해 자기 자신의 비밀번호를 바꾼다는 명령이 되었습니다. 문제는 새로 입력한 비밀번호가 6글자 이하여서 시스템이 너무 짧다고 비밀번호 변경을 취소 시켰습니다.
[solaris10vm:/]$ passwd betman
passwd(SYSTEM) : Permission denied
passwd(SYSTEM) : Can't change local passwd file
superman 사용자가 betman의 비밀번호를 바꾸기 위해 passwd명령을 사용했지만 다른 사용자 이기 때문에 비밀번호 변경이 거절 당했습니다. 이는 프롬프트를 볼고 알수도 있습니다. root사용자라면 프롬프트가 #으로 표시 됩니다.([solaris10vm:/]#) 하지만 root사용자가 아닌 일반 사용자는 $라 표시 됩니다.([solaris10vm:/]$) 때문에 일반 사용자가 다른 사용자의 비밀번호를 바꾸려 했다는게 위에 상황에서 보이게 됩니다.
[solaris10vm:/]$ passwd
passwd: Changing password for superman
New password:
Re-enter new passwrd:
passwd(SYSTEM) : passwd successfully changed for superman
여기서 위의 사용자는 root가 아니라 일반 사용자 인것을 알 수 있습니다.
[solaris10vm:/]# passwd betman
Net password:
Re-enter new password:
passwd(SYSTEM) : passwd successfully changed for betman
위 상황은 프롬프트가 #인걸 보아 root 사용자 이며 root 사용자가 betman의 비밀번호를 변경성공한 메시지 입니다.
비밀번호 변경에는 몇가지 제약사항이 따릅니다.
1. 6글자 이하는 안됨
2. 사용자 이름과 같아서는 안됨
3. 적어도 두개 이상의 영문자와 하나 이상의 특수 기호를 포함해야 한다.
4. 새로운 암호는 기존에 쓰던 암호와 적어도 세글자 이상 달라야 한다.
하지만 root계정은 위에 제약사항을 받지 않는다.
(10101101)173/UNIX2008. 12. 1. 03:52