เป็นไปได้ไหมที่จะหยุด. sudo_as_admin_successful


45

ทุกครั้งที่ฉันเรียกใช้งานคำสั่งsudoไฟล์ที่.sudo_as_admin_successfulถูกเรียกจะถูกสร้างขึ้นในโฮมไดเรกทอรีของฉัน เท่าที่ฉันสามารถบอกได้สิ่งนี้มีไว้เพื่อจุดประสงค์เดียวในการปิดใช้งานข้อความนี้ที่ทุบตีพิมพ์เมื่อเริ่มต้น:

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

เป็นไปได้ที่จะหยุดข้อความนั้นโดยการใส่ความคิดเห็นในส่วนที่เกี่ยวข้อง/etc/bash.bashrcแต่sudoยังคงสร้างไฟล์ที่น่ารำคาญในโฮมไดเร็กตอรี่ของฉัน

หน้าเว็บนี้แสดงให้เห็นว่าคุณสามารถหยุดไฟล์ที่ถูกสร้างขึ้นโดยการเอาตัวเองจากadminกลุ่ม แต่ฉันไม่ได้อยู่ในกลุ่มดังกล่าวใด ๆ - idแสดงให้เห็นว่าผมอยู่ในjosh, adm, cdrom, sudo, dip, plugdev, lpadminและsambashareและไม่ได้อยู่ในadmin/etc/group

มีวิธีหยุดไฟล์นี้หรือไม่?


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


1
มันน่ารำคาญอะไรกับมัน? มันแทบจะไม่ใช้พื้นที่ใด ๆ
edwinksl

12
@edwinksl มันเป็นความยุ่งเหยิงทางสายตาเมื่อฉันพยายามหาอย่างอื่น ฉันไม่ควรจะต้องตระหนักถึงการมีอยู่ของมันเพราะฉันจะไม่แก้ไขมัน
Josh

5
และนั่นคือเหตุผลที่มี ที่ด้านหน้า. ทำไมคุณรวมถึงไฟล์ที่ซ่อนอยู่ในมุมมองของคุณ?
Rinzwind

11
อย่างน้อยไฟล์นี้ควรใส่ตัวเองใน. config หรือ. local ไม่บ่อยนักที่เราต้องเรียกดูไฟล์ที่ซ่อนอยู่โดยเฉพาะในโฮมไดเร็กตอรี่ นั่นไม่ใช่เหตุผลที่. config /. local ถูกประดิษฐ์ขึ้นเนื่องจากการโอเวอร์โหลดไร้สาระของโฮมไดเร็กตอรี่ซึ่งไฟล์นี้อาจเป็นตัวอย่างที่ไม่มีค่ามากที่สุด?
NeilG

1
เพื่อไม่ให้เริ่มต้นสงคราม distro (ถูกถามใน askubuntu.com) แต่ฉันตรวจสอบซ้ำแล้วซ้ำอีก: นี่เป็นสิ่งที่ Ubuntu เพิ่มซึ่งไม่ปรากฏในการกระจาย Debian ที่อัปสตรีม เป็นไปได้ว่าจะมีการเพิ่ม "เป็นมิตรกับผู้ใช้" แต่ฉันชอบ OP พบว่ามีไฟล์สุ่มแบบนี้น่ารำคาญ
ต่อ Lundberg

คำตอบ:


38

ขึ้นอยู่กับส่วนต่อไปนี้ของplugins/sudoers/sudoers.cไฟล์ซอร์สโค้ดดูเหมือนว่ามันจะเป็นไปไม่ได้หากไม่มีการคอมไพล์sudoซ้ำและไม่ได้กำหนดUSE_ADMIN_FLAGมาโครตัวประมวลผลล่วงหน้า

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

   1229 #ifdef USE_ADMIN_FLAG
   1230 static int
   1231 create_admin_success_flag(void)
   1232 {
   1233     struct stat statbuf;
   1234     char flagfile[PATH_MAX];
   1235     int len, fd = -1;
   1236     debug_decl(create_admin_success_flag, SUDOERS_DEBUG_PLUGIN)
   1237
   1238     /* Check whether the user is in the admin group. */
   1239     if (!user_in_group(sudo_user.pw, "admin") &&
   1240         !user_in_group(sudo_user.pw, "sudo"))
   1241         debug_return_int(true);
   1242
   1243     /* Build path to flag file. */
   1244     len = snprintf(flagfile, sizeof(flagfile), "%s/.sudo_as_admin_successful",
   1245         user_dir);
   1246     if (len <= 0 || (size_t)len >= sizeof(flagfile))
   1247         debug_return_int(false);
   1248
   1249     /* Create admin flag file if it doesn't already exist. */
   1250     if (set_perms(PERM_USER)) {
   1251         if (stat(flagfile, &statbuf) != 0) {
   1252             fd = open(flagfile, O_CREAT|O_WRONLY|O_EXCL, 0644);
   1253             if (fd != -1)
   1254                 close(fd);
   1255         }
   1256         if (!restore_perms())
   1257             debug_return_int(-1);
   1258     }
   1259     debug_return_int(fd != -1);
   1260 }
   1261 #else /* !USE_ADMIN_FLAG */
   1262 static int
   1263 create_admin_success_flag(void)
   1264 {
   1265     /* STUB */
   1266     return true;
   1267 }
   1268 #endif /* USE_ADMIN_FLAG */

แน่นอนมันเป็นไปได้โดยไม่ต้องคอมไพล์ใหม่sudo! เพียงแค่ออกไปobjdump -dติดตามตรรกะที่เกี่ยวข้องในการตรวจสอบนั้นแล้วไปกับ editor hex เชื่อถือของคุณ (หรือแม้กระทั่งhexdumpและแก้ไขข้อความปกติจะทำในหยิก) สำหรับการผ่าตัดบางอย่าง มีอะไรผิดพลาด?
mtraceur
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.