sudo su จะไม่เปลี่ยนผู้ใช้สำหรับ mysql


13

เมื่อคืนบนเซิร์ฟเวอร์ของฉันฉันได้:

sudo su - mysql 

เพื่อเปลี่ยนเป็นผู้ใช้ mysql ดังนั้นฉันสามารถเรียกใช้ไคลเอนต์ mysql ซึ่งได้รับการตั้งค่าดังนั้นมันจะตรวจสอบจากบัญชี mysql เท่านั้น ฉันประสบความสำเร็จในการรันไคลเอนต์ mysql และทำการเปลี่ยนแปลงฐานข้อมูล ไม่มีอะไรเปลี่ยนแปลงบนเซิร์ฟเวอร์ข้ามคืน

วันนี้ไม่มีอะไรที่ฉันพยายามจะทำให้ฉันเปลี่ยนเป็นผู้ใช้ mysql ดูเหมือนว่าจะประสบความสำเร็จได้รับข้อความเกี่ยวกับไม่มีไดเรกทอรีบ้าน แต่whoamiยังคงรายงานรหัสผู้ใช้ของฉันและพยายามที่จะเรียกใช้ mysql ยังคงล้มเหลว

wade@snoopy:~$ sudo su - mysql
[sudo] password for wade: 
No directory, logging in with HOME=/
wade@snoopy:~$ whoami
wade

wade@snoopy:~$ sudo su mysql
wade@snoopy:~$ whoami
wade

wwilliam@snoopy:~$ sudo -s
root@snoopy:/home/wade# 
root@snoopy:/home/wade# su mysql
root@snoopy:/home/wade# whoami
root

/ etc / passwd สำหรับ mysql:

mysql:x:110:119:MySQL Server,,,:/nonexistent:/bin/false

มีใครเคยเห็นพฤติกรรมเช่นนี้บ้างไหม?

คำตอบ:


19

su/etc/passwdเรียกเปลือกเข้าสู่ระบบของผู้อื่นตามที่กำหนดใน ในกรณีของคุณนั่นคือ/bin/falseเพื่อให้คุณไม่ได้รับเปลือกโต้ตอบใด ๆ

ใช้

sudo -u test /bin/bash

หรือ

sudo -u test /usr/bin/mysql

หรืออะไรทำนองนั้นแทน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.