จะยกเลิกการหมดเวลา sudo ที่เหลืออยู่ในปัจจุบันได้อย่างไร?


37

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

sudo -k ฆ่ามันสำหรับเซสชันเทอร์มินัลปัจจุบัน แต่หากกระบวนการกำลังทำงานอยู่ในเซสชันนั้นและไม่สามารถเรียกใช้ได้sudo -kจะมีวิธียกเลิกจากเซสชันเทอร์มินัลอื่นหรือไม่

และมีวิธีการยกเลิกsudoเวลาที่ใช้ในปัจจุบันทั้งหมด(สำหรับเซสชันเทอร์มินัลทั้งหมดและ gksudo ที่ใช้แอพทั้งหมดหรือไม่?

แม้ว่าลองคิดดูว่า GUI ที่ใช้งานอาจจำเป็นต้องปิดตัวลง แต่ฉันเพิ่งตรวจสอบว่าAlt+ F2ทำให้ gksu ใช้งานได้สำหรับการเรียกใช้ครั้งต่อไป

คำตอบ:


37

ไม่แน่ใจว่าคุณตั้งใจจะฆ่า sudo timeout หรือไม่ดังนั้นจึงไม่หมดเวลาหรือหมดเวลาทันที แต่ถ้าคุณต้องการลบการประทับเวลาที่เหลือคุณสามารถใช้ sudo -k

มิฉะนั้นหากคุณพยายามยกเลิกการหมดเวลาดังนั้น sudo จะไม่หมดเวลาฉันไม่คิดว่าเป็นไปได้ที่จะทำในเซสชันปัจจุบัน วิธีเดียวที่ฉันรู้คือจะเปลี่ยนtimestamp_timeoutในsudoersไฟล์และเริ่มเซสชันใหม่


โอ๊ะ .. ฉันเป็นบิตช้ากับรายละเอียด: ฉันเพิ่งเพิ่มมากขึ้นอีกนิดกับคำถามของฉัน .. เกี่ยวกับ "-k" ... และใช่ฉันกำลังหมายถึงหนึ่งออกสถานการณ์แม้ว่ามันจะนำมาในขณะนี้ แก้ปัญหา "ระบบปิด" ทั้งระบบ ... ขอบคุณ (+1) สำหรับ asnwer ซึ่งเป็นที่สมบูรณ์แบบสำหรับ oringinal (ขาดรายละเอียด) คำถามของฉัน ..
Peter.O

1
ฉันไม่เข้าใจว่า-Kจะแตกต่างกันอย่างไรในทางปฏิบัติ-k(เมื่อ -k ถูกใช้โดยมัน) .. แต่-kมีการใช้สองครั้ง: 1.โดยตัวมันเอง (ทำให้การประทับเวลาเป็นโมฆะ) ... 2.เมื่อใช้กับคำสั่งมัน แจ้งให้ใส่รหัสผ่านไม่ว่าการหมดเวลา sudo ก่อนหน้านี้จะหมดอายุหรือไม่และด้วยวิธีการ: sudo -k ทำงานใน Alt + F2 เพื่อฆ่าการประทับเวลาของการโทร sudo / gksu ก่อนหน้า
Peter.O

ใช่ฉันไม่มีความคิดเมื่อฉันจะใช้อีกคนหนึ่ง
wajiw

นอกเหนือจากปัญหา "การฆ่าการประทับเวลาที่มีอยู่ทั้งหมด" .... โดยไม่ต้องเปลี่ยนการตั้งค่าsudoersพื้นฐานวิธีเดียวที่ฉันสามารถเรียกใช้การ "รับประกัน" sudoเพียงครั้งเดียวเท่านั้นคือsudo -k; sudo -k appname.... เพราะถึงแม้ว่าsudo -k appnameบังคับให้ผู้ใช้ ป้อนรหัสผ่านมันจะไม่เปลี่ยนแปลงเวลาประทับที่มีอยู่ก่อน ... (ฉันพูดถึงมันเหมือน "griss to the mill") ... และบางทีวิธีที่ง่ายที่สุดในการ "ฆ่า" timestamps ที่มีอยู่ทั้งหมดคือการหลีกเลี่ยงปัญหา ทั้งหมดและกด Ctrl + Alt + L เพื่อล็อคหน้าจอ :)
Peter.O

ฮ่าฮ่าฮ่าถ้าคุณมีความสามารถฉันจะไปกับตัวเลือกนั้น
wajiw

8

เพียงหนึ่งในคะแนนของคุณ:

แต่ถ้ากระบวนการกำลังทำงานในเซสชั่นนั้นและดังนั้นจึงไม่สามารถเรียกใช้ sudo -k

นี่คือเฉพาะสำหรับบรรทัดคำสั่งถ้าคุณต้องการทำอะไรในขณะที่กระบวนการอื่นกำลังทำงานอยู่คุณสามารถกดCtrl+ Zเพื่อหยุดกระบวนการชั่วคราว จากนั้นคุณสามารถเข้าถึงเทอร์มินัลปัจจุบันอีกครั้งทำทุกอย่างที่คุณต้องการ เมื่อเสร็จแล้วคุณสามารถพิมพ์jobsเพื่อรับรายการกระบวนการโดยมีตัวเลขอยู่ด้านข้าง พิมพ์fg 1(ตัวอย่าง - และfgหากมีเพียงงานเดียว) เพื่อเริ่มกระบวนการใหม่ให้เพิ่มไปยังส่วนหน้า ในทำนองเดียวกันbgการทำสิ่งเดียวกัน แต่ปล่อยให้กระบวนการทำงานในพื้นหลัง

ตัวอย่างเซสชัน

$ sudo apt-get install hello
<CTRL+Z>
[1]+  Stopped    sudo apt-get install hello
$ sudo -k
$ jobs
[1]+  Stopped    sudo apt-get install hello
$ fg 1
Loading database...
....

1
สเตฟาโน: ขอบคุณ ... มันดีมาก ... ลีนุกซ์พูดกับฉันว่า "ใช่แน่นอนฉันทำได้" :) ... และลองคิดดูฉันรู้ดีว่า Ctrl + Z แต่ครึ่งหนึ่งยังไม่พอ!) ... ตอนนี้ฉันได้พบกับสถานการณ์ "ของจริง" ที่ไม่ใช่แค่ข้อความบนหน้าจอฉันแน่ใจว่าฉันจะไม่มีวันลืม ... ต้องไป .. ฉันมี Cntrl + Z-ing ทำ ...
Peter.O

2

ฉันพบวิธีแก้ปัญหา เนื่องจากการค้นหาของฉันไม่ได้แสดงอะไรเหมือนกันและนี่เป็นคำถามที่พบบ่อย: sudo เก็บบางแห่งไว้ในระบบไฟล์ (เช่นใน / var / run / sudo), หนึ่งไดเรกทอรีต่อชื่อผู้ใช้, ไฟล์หลายไฟล์ที่ทำงานเป็นประทับเวลา หนึ่งไฟล์สำหรับแต่ละเทอร์มินัล ลบไฟล์เหล่านั้นและระบบของคุณจะปลอดภัยอีกครั้ง เพียงจำไว้ว่าไฟล์เหล่านั้นจะสามารถมองเห็นได้เฉพาะกับรูท (มิฉะนั้นผู้บุกรุกอาจอ่านการประทับเวลาและตั้งเวลานาฬิกากลับไปยังจุดที่พวกเขายังคงถูกต้อง - การอนุญาตรูทให้ทุกคนมีอันตราย) ดังนั้นใน / etc / pm / sleep / และสำหรับสกรีนเซฟเวอร์ที่ฉันใช้:

rm -f /var/db/sudo/*/*

เป็นรากของหลักสูตร ...

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