Tôi có 2 người dùng trong máy chủ debian của mình, gooduser
và root
.
Chỉ huy my_cmd
nhắc nhập mật khẩu (nó kết nối với máy chủ ssh).
Khi tôi thực thi my_cmd
như gooduser
, mọi thứ hoạt động như mong đợi:
gooduser@debian:/mydir$ my_cmd
someone@192.168.2.122's password:
Permission denied, please try again.
someone@192.168.2.122's password:
Permission denied, please try again.
someone@192.168.2.122's password:
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
gooduser@debian:/mydir$
Ở trên, tôi đã bỏ qua lời nhắc mật khẩu bằng cách nhấn enter ba lần. Tại sao, tôi sẽ nói với bạn sớm.
Khi tôi đăng nhập như root
tuy nhiên, tôi cố gắng thực hiện my_cmd
là người dùng gooduser
(Tôi phải, để mọi tệp được tạo sẽ được sở hữu bởi myuser
). Tuy nhiên, nó không nhắc tôi nhập mật khẩu, dù chỉ một lần và nó hoạt động như thể tôi đã nhấn enter 3 lần, ngoại trừ tôi không (các tin nhắn "Quyền bị từ chối" giống như trên):
root@debian:/mydir# su - gooduser -c "cd $PWD; my_cmd"
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
root@debian:/mydir#
Lý do tại sao điều này xảy ra? Tại sao su
bỏ qua lời nhắc mật khẩu? Hay chính xác hơn, tại sao nó dường như nhấn enter thay mặt tôi? Quan trọng hơn, làm thế nào tôi có thể giải quyết điều này?
(Tôi biết tôi có thể định cấu hình các khóa ssh để đăng nhập không cần mật khẩu và có thể đó là những gì tôi sẽ làm, nhưng tôi muốn biết vấn đề sâu hơn ở đây là gì).