.sudo_as_admin_successfulの作成を停止することはできますか?


46

でコマンドを実行するたびに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それでも私のホームディレクトリに迷惑なファイルが作成されます。

このWebページでは、あなたがから自分を削除することによって作成されたファイルを停止できることを示唆しているadminグループを、私はどのようなグループではないよ- id私はにいることを示しjoshadmcdromsudodipplugdevlpadminsambashare、とadminではありません/etc/group

このファイルの作成を停止する方法はありますか?


これは、この質問の複製ではないと考えていますsudo。なぜなら、によって作成されているファイルを停止できるのではなく、bashによって印刷された通知を消すことができるかどうかを尋ねていたからです。


1
何がそんなに迷惑ですか?スペースをほとんど必要としません。
edwinksl

12
@edwinksl何か他のものを見つけようとすると、視覚的に混乱します。変更することは決してないので、その存在を意識する必要はありません。
ジョシュ

5
そして、それがあります。前面に。ビューに隠しファイルを含めるのはなぜですか?
リンツウィンド

11
少なくともこのファイルは、.configまたは.localに自分自身を配置する必要があります。特にホームディレクトリ内の隠しファイルを参照する必要があることは珍しくありません。.config / .localが発明されたのは、ホームディレクトリのばかげたオーバーロードが原因であるのではないでしょうか。このファイルはおそらく最も無償の例です。
ニール

1
ディストリビューション戦争を開始しないように(これはaskubuntu.comで尋ねられます)、私は再確認しました:これは実際にはUbuntuが追加したもので、アップストリームのDebianディストリビューションには存在しません。「ユーザーフレンドリー」に追加される可能性がありますが、OPのように、このような迷惑なランダムファイルの存在を見つけます。
ルンドバーグあたり

回答:


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、そのチェックに関係するロジックを追跡し、信頼できる16進エディター(またはhexdump、通常のテキストエディターでもピンチで)で手術を行います。何がおかしいのでしょうか?
mtraceur
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.