"su"는 비밀번호를 알 수 없지만 "비밀번호 없음"의 "휠" 상태에 있는 경우입니다.

"su"는 비밀번호를 알 수 없지만 "비밀번호 없음"의 "휠" 상태에 있는 경우입니다.

FreeBsd 11을 사용하고 있습니다. 그룹에 속한 사용자 "user123"이 있습니다바퀴그리고바퀴이미 %wheel ALL=(ALL) NOPASSWD: ALL에 있습니다 /usr/local/etc/sudoers.

루트 비밀번호를 모르겠습니다. 그러나 sudo 없이도 "sudo"를 실행할 수 있습니다.

Postgresql을 설치하고 "Service Start"를 통해 실행했습니다.

이제 postgresql 사용자로 로그인하여 데이터베이스 등을 생성하고 싶습니다.

$ su postgres
Password:


# or

$ su - postgres
Password:

그런데 비밀번호를 모르겠어요.

이것은 사용자의 비밀번호입니까 root, 아니면 사용자의 비밀번호입니까 postgres? 나는 그들 중 누구도 모른다. 이에 대한 표준 해결 방법이 있습니까?

답변1

postgres비밀번호 없이 로그인하고 액세스하려면 다음을 수행하십시오.sudo

sudo -iu postgres

-i로그인 쉘을 시작하십시오 .

답변2

경고: 이 질문은 귀하가 개인 서버를 사용하고 있음을 나타냅니다. 그렇지 않고 기본 관리자가 아닌 경우 기본 관리자가 지시하지 않는 한 루트 사용자의 쉘을 가정하지 마십시오.


sudoers: "wheelset" 설정

%wheel ALL=(ALL) NOPASSWD: ALL

그래서 당신의사용자 123사용자는 "휠 그룹"에 속해 있으며Sudoers이 파일은 명령에 대한 비밀번호가 필요하지 않은 사용자 로서 도메인 전반에 걸쳐 휠 그룹의 구성원에게 ALL무제한 액세스 권한을 부여합니다.(ALL)ALL

우리는 귀하가 유효한 로그인을 갖고 있다는 것을 알고 있으므로 귀하의 옵션은 제한되지 않습니다. 비밀번호를 알아요포스트그레스심지어뿌리,필요하지 않습니다. 간단히 다음을 수행할 수 있습니다.

$ sudo -iu postgres


su, sudo, sudoers 혼란

  1. su = 대체 사용자
  2. sudo = 다른 사용자로 명령 실행

질문에 명시된 대로 사용자를 사용 su하거나 "사용자 교체" 할 수 없는 이유는 sudoers 파일이 명령에 영향을 미치지 않기 때문입니다 .su -su

매개변수가 없거나 대시만 있는 명령의 su기본값은 다음과 같습니다.뿌리, 루트 비밀번호를 묻는 메시지가 표시됩니다. 이는 예상되는 동작입니다. 이름에서 알 수 있듯이Sudoers즉, sudoers 파일은 sudo명령에만 권한을 부여합니다.


루트 쉘, 비밀번호 분실

루트 비밀번호를 잊어버린 것 같습니다. 다음 명령을 사용하여 루트 셸을 가져올 수 있습니다.

$ sudo -i

다시 제어할 수 있게 하기:[root@local ~]#

답변3

두 단계:

$ sudo -i
# su - postgres

~처럼뿌리su, 비밀번호 없이 사용할 수 있습니다. 당신은 또한 이것을 결합할 수 있습니다

$ sudo su - postgres

관련 정보