AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 813942
Accepted
ash
ash
Asked: 2016-08-19 11:50:01 +0800 CST2016-08-19 11:50:01 +0800 CST 2016-08-19 11:50:01 +0800 CST

是否可以停止创建 .sudo_as_admin_successful?

  • 772

每次我使用 执行命令时,都会在我的主目录中创建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仍会在我的主目录中创建一个烦人的文件。

该网页建议您可以通过将自己从admin组中删除来停止创建文件,但我不在任何此类组中,admin也不在/etc/group.

有没有办法阻止这个文件被创建?


我相信这不是这个问题的重复,因为那是在询问是否可以使 bash 打印的通知消失,而不是是否可以停止由sudo.

bash
  • 2 2 个回答
  • 48350 Views

2 个回答

  • Voted
  1. Best Answer
    steeldriver
    2016-08-19T12:37:23+08:002016-08-19T12:37:23+08:00

    根据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 */
    
    • 57
  2. YorSubs
    2021-04-27T22:02:36+08:002021-04-27T22:02:36+08:00

    看起来这个问题正在处理中: https ://github.com/sudo-project/sudo/issues/56

    • 8

相关问题

  • 同时复制到两个位置

  • 如何在 shell 脚本中创建选择菜单?

  • 从 bash 迁移到 zsh [关闭]

  • bashrc 还是 bash_profile?

  • 备份 bash 脚本未压缩其 tarball

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve