ฉันได้ถามคำถามนี้ในStack Overflowแล้ว แต่ฉันถูกขอให้โพสต์ไว้ที่นี่ ดังนั้นการทำเช่นเดียวกัน
ฉันรันคำสั่งนี้โดยใช้โปรแกรม java ของฉัน -
sudo -u <username> -S pwd
ฉันได้ผลลัพธ์นี้ -
command=sudo -u <username> -S pwd
exitCode=1
sudo: sorry, you must have a tty to run sudo
ฉันพยายามแก้ไข / etc / sudoers แต่มีอยู่แล้ว
<username> ALL=(ALL) NOPASSWD: ALL
จากนั้นฉันได้เรียนรู้ว่าสิ่งนี้สามารถทำได้โดยการแสดงความคิดเห็นรหัสต่อไปนี้ใน / etc / sudoers
# Defaults requiretty
นอกจากนี้ตามค่าเริ่มต้นเมื่อพยายามเรียกใช้คำสั่งในฐานะผู้ใช้รายอื่นที่ใช้sudo
เราจะต้องให้รหัสผ่านของเราเอง แต่สิ่งนี้สามารถเปลี่ยนแปลงได้โดยทำการเปลี่ยนแปลงต่อไปนี้ใน / etc / sudoers-
Defaults targetpw
คำถามของฉันคือมันเป็นไปได้ที่จะรันคำสั่งข้างต้นของฉันใน java โดยไม่ต้องทำการเปลี่ยนแปลงใด ๆ เช่นโดยมีการตั้งค่าเริ่มต้น ?