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 혼란
- su = 대체 사용자
- sudo = 다른 사용자로 명령 실행
질문에 명시된 대로 사용자를 사용 su
하거나 "사용자 교체" 할 수 없는 이유는 sudoers 파일이 명령에 영향을 미치지 않기 때문입니다 .su -
su
매개변수가 없거나 대시만 있는 명령의 su
기본값은 다음과 같습니다.뿌리, 루트 비밀번호를 묻는 메시지가 표시됩니다. 이는 예상되는 동작입니다. 이름에서 알 수 있듯이Sudoers즉, sudoers 파일은 sudo
명령에만 권한을 부여합니다.
루트 쉘, 비밀번호 분실
루트 비밀번호를 잊어버린 것 같습니다. 다음 명령을 사용하여 루트 셸을 가져올 수 있습니다.
$ sudo -i
다시 제어할 수 있게 하기:[root@local ~]#
답변3
두 단계:
$ sudo -i
# su - postgres
~처럼뿌리su
, 비밀번호 없이 사용할 수 있습니다. 당신은 또한 이것을 결합할 수 있습니다
$ sudo su - postgres