當前位置: 首頁>>技術教程>>正文


bash – 是否可以停止創建 .sudo_as_admin_successful ?

,

問題描述

每次我使用 sudo 執行命令時,都會在我的主目錄中創建一個名為 .sudo_as_admin_successful 的文件。據我所知,這存在的唯一目的是禁用 bash 在啟動時打印的消息:

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

可以通過注釋掉 /etc/bash.bashrc 中的相關部分來停止該消息,但是 sudo 仍然會在我的主目錄中創建一個煩人的文件。

This webpage 建議您可以通過將自己從 admin 組中刪除來停止創建文件,但我不在任何此類組中,並且 admin 不在 /etc/group 中。

有沒有辦法阻止這個文件被創建?


我相信這不是 this question 的副本,因為那是在詢問是否可以使 bash 打印的通知消失,而不是是否可以停止由 sudo 創建的文件。

最佳答案

根據 plugins/sudoers/sudoers.c 源代碼文件的以下部分,如果不重新編譯 sudo ,取消定義 USE_ADMIN_FLAG 預處理器宏,這似乎是不可能的。

另外,請注意,它正在檢查 adminsudo 的組成員身份。我沒有檢查更改日誌,但我懷疑後一個檢查是在 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 */

次佳答案

看起來這個問題正在處理中:https://github.com/sudo-project/sudo/issues/56

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12599.html,未經允許,請勿轉載。