ถ้าฉันเรียกคำสั่งที่มีข้อโต้แย้งเช่นนั้น:
bob@bob-pc:~$ command -arg1 -arg2
... ผู้ใช้รายอื่นสามารถดูอาร์กิวเมนต์ที่ส่งไปยังคำสั่งได้หรือไม่
ถ้าฉันเรียกคำสั่งที่มีข้อโต้แย้งเช่นนั้น:
bob@bob-pc:~$ command -arg1 -arg2
... ผู้ใช้รายอื่นสามารถดูอาร์กิวเมนต์ที่ส่งไปยังคำสั่งได้หรือไม่
คำตอบ:
โดยทั่วไปแล้วพวกเขาสามารถเห็นมัน นี่คือจากw
หน้าคน:
รายการต่อไปนี้จะแสดงสำหรับผู้ใช้แต่ละราย: ชื่อล็อกอิน, ชื่อ tty, โฮสต์ระยะไกล, เวลาเข้าสู่ระบบ, เวลาเข้าสู่ระบบ, เวลาว่าง, JCPU, PCPU และบรรทัดคำสั่งของกระบวนการปัจจุบันของพวกเขา
บรรทัดคำสั่งที่สมบูรณ์ของกระบวนการที่กำลังทำงานอยู่จะปรากฏขึ้น นั่นเป็นเหตุผลที่คุณไม่ต้องการให้สิ่งต่าง ๆ เช่นรหัสผ่านผ่านอาร์กิวเมนต์บรรทัดคำสั่ง
XXXXXXXX
) ฉันชอบที่จะรู้ว่า มันอาจทำอะไรบางอย่างที่อ่อนแอเหมือนการฟาดฟันตัวเองและทะเลาะโต้เถียงกัน ฉันไม่แน่ใจ
โดยทั่วไปอาร์กิวเมนต์บรรทัดคำสั่งจะปรากฏแก่ทุกคน ตัวอย่างเช่นในฐานะผู้ใช้ที่ไม่ใช่รูทบน OpenBSD ฉันสามารถดูอาร์กิวเมนต์ของกระบวนการที่รันในฐานะรูท:
$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0
บน Linux คุณจะสังเกตเห็นว่า/proc/*/cmdline
ไฟล์ทั้งหมดสามารถอ่านได้ทั่วโลก
อาจมีการตั้งค่าที่เฉพาะเจาะจงซึ่งอาร์กิวเมนต์บรรทัดคำสั่งยังคงเป็นส่วนตัว ตัวอย่างเช่นSELinux และ Solaris สามารถซ่อนกระบวนการทั้งหมดจากผู้ใช้รายอื่นได้ แต่ถ้าคุณไม่ทราบว่าคุณอยู่ในการตั้งค่าเช่นนั้นให้ถือว่าอาร์กิวเมนต์บรรทัดคำสั่งเป็นแบบสาธารณะ
ในการตั้งค่ามาตรฐานอาร์กิวเมนต์จะสามารถมองเห็นได้ ในฐานะที่เป็นที่กล่าวถึงแล้วกระบวนการสามารถเขียนทับไว้ในหน่วยความจำ แต่ไม่ก่อนที่กระบวนการอื่น ๆ ได้มีโอกาสที่จะเห็นพวกเขา
อย่างไรก็ตามชุดโปรแกรมแก้ไขความปลอดภัย grsecurity จะมีชุดข้อมูลแก้ไขซึ่งจะทำให้เจ้าของกระบวนการ (และรูท) เท่านั้นที่สามารถเห็นอาร์กิวเมนต์ที่ส่งผ่านไปยังกระบวนการ