비대화형 사용자로 어떻게 로그인합니까? (예: mysql)

비대화형 사용자로 어떻게 로그인합니까? (예: mysql)

mysql_upgrade루트로 실행하면 다음을 반환 하는 명령을 실행해야 합니다.

Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/lib/mysql/mysql.sock' 
mysqlcheck: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
FATAL ERROR: Upgrade failed

그래서 사용자로 로그인해야 한다고 결정했습니다 mysql. 어떻게 해야 합니까?

mysql사용자의 비밀번호를 설정 passwd하고 로그인을 시도했습니다.

$ ssh -l mysql 12.34.56.78
[email protected]'s password: 
Permission denied, please try again.

나는 루트로 로그인하고 mysql에 대한 쉘을 설정했습니다 chsh -s /bin/bash mysql. /etc/ssh/sshd_config항목에 AllowUsersuser 가 포함되어 mysql있고 후자 그룹 DenyGroups에만 user 가 포함되어 있지 않은지 확인했습니다 .deniedsshmysql

# getent group deniedssh
deniedssh:x:500:

비대화형 사용자로 로그인하려면 어떻게 해야 합니까 mysql?

답변1

귀하의 추론에 결함이 있으므로 mysql 사용자로 셸에 로그인할 필요가 없습니다. 당신이 보고 있는 인증 실패는 mysqld에서 발생한 것입니다. mysql과 통신하는 데 사용할 사용자 이름과 비밀번호를 알려주어야 합니다 mysql_upgrade. 여기에는 유닉스 인증이 전혀 포함되지 않습니다.

답변2

이는 일반적인 사용 사례 sudo이며 시스템 관리자가 부여한 사용자로 명령(또는 구성에 따라 쉘)을 실행할 수 있습니다( root대부분의 초보자가 생각하는 것과는 다릅니다).

구성 에 따라 sudo이 작업을 수행할 수도 있습니다.

$ sudo -s -u mysql

귀하의 "일반" 사용자 계정으로. 다음 명령을 실행하여 어떤 사용자가 될 수 있는지 확인할 수 있습니다.

$ sudo -l

이는 다음과 같을 수 있습니다(내 로컬 설치 및 "일반" 사용자).

$ sudo -l
Matching Defaults entries for aw on swiftsure:
    env_keep+=HOME, env_keep+=XDG_SESSION_COOKIE, env_keep+="XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER", insults, tty_tickets, editor=/usr/bin/vim, !lecture

Runas and Command-specific defaults for aw:
    Defaults>root targetpw, env_file=/etc/sudo/root.env

User aw may run the following commands on swiftsure:
    (ALL) ALL
    (ALL) NOPASSWD: /usr/bin/htop, /usr/sbin/iotop, /usr/sbin/powertop
    (ALL) NOPASSWD: /usr/bin/wpa_cli
$

마지막 몇 줄이 중요한 줄입니다. 이 예에서는 각 명령( )을 각 사용자( )로 실행할 aw수 있으며 , 각 명령( )을 암호( )를 제공하지 않고도 각 사용자( )로 실행할 수 있음을 사용자에게 알려줍니다 .ALL(ALL)htopiotoppowertopwpa_cli(ALL)NOPASSWD

사용자에게 항목이 있는 경우 (ALL) ALL위 명령을 실행하여 사용자가 될 수 있습니다 mysql. 그렇지 않은 경우 /etc/sudoers파일( visudo)을 편집하고 다음을 포함하는 행을 추가 해야 할 수도 있습니다.

username      (ALL)=ALL

이것이 당신을 만들 것입니다모든user ( username비밀번호 입력 후) 또는 이와 유사한 것

username      (mysql)=ALL

이것은 단지 당신을 사용자로 만듭니다 mysql.

관련 정보