Durmak mümkün mü? .udo_as_admin_successful yaratılıyor mu?

28

sudo ile bir komutu her çalıştırdığımda, ev dizinimde .sudo_as_admin_successful adlı bir dosya oluşturulur. Anlayabildiğim kadarıyla, bu, başlangıçta bash basımlarının basıldığı bu mesajı devre dışı bırakmak için var:

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

İlgili bölümü /etc/bash.bashrc 'de yorumlayarak bu mesajı durdurmak mümkündür, ancak sudo hala ev dizinimde rahatsız edici bir dosya oluşturuyor.

Bu web sayfası , oluşturduğunuz dosyanın admin grubundan kaldırılarak durdurulabileceğini ama ben böyle bir grupta değilim - id , josh , adm , cdrom , sudo , dip , plugdev , lpadmin ve sambashare olduğumu gösterir. ve admin , /etc/group içinde değil.

Oluşturulan bu dosyayı durdurmanın bir yolu var mı?

Bunun bir kopyası olmadığını düşünüyorum. sorusu , bash tarafından basılan bildirimin, sudo tarafından oluşturulan dosyanın durdurulmasının mümkün olmasından ziyade, yapılıp yapılamayacağını soruyordu.

    
sordu Josh 18.08.2016 21:50

1 cevap

31

plugins/sudoers/sudoers.c kaynak kod dosyasının aşağıdaki bölümüne dayanarak, sudo 'yi yeniden derlemeden, USE_ADMIN_FLAG pre-processor makrosunun undefining edilmeden mümkün görünmüyor.

Ayrıca, hem admin hem de sudo grubunun üyeliğini kontrol ettiğini de unutmayın. Değişim geçmişini kontrol etmedim, ancak sudo ayrıcalıklı kullanıcılar için varsayılan grup haline geldiğinde, ikinci denetimin eklendiğinden şüpheleniyorum - belki de dosya adı uyumluluk için admin değerini ifade etmektedir.

   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 */
    
verilen cevap steeldriver 18.08.2016 22:37

Etiketlerdeki diğer soruları oku