奇妙なbashスクリプトの動作

エルサムコ

バイナリが同一で、同じ権限を持ち、ドライブ上で一意であり、に見つからない2つのbashスクリプトがありますsudoersそれでも、1つはルートのuidテストに合格し、もう1つは合格しません。./binフォルダー内の最初のものを呼び出すと、2番目のように動作します。

スクリプト(sync-samuel):

#!/usr/bin/env bash

echo "[$0]"
whoami

if [ "$(id -u)" != "0" ]; then
    echo "This script must be run as root"
    exit 1
fi

id -u
exit

出力:

samuel@xeon:~$ sync-samuel
[sudo] password for samuel: 
[/home/samuel/bin/sync-samuel]
root
0
samuel@xeon:~$ sync-samuel2
[/home/samuel/bin/sync-samuel2]
samuel
This script must be run as root
samuel@xeon:~$ cd bin
samuel@xeon:~/bin$ ./sync-samuel
[./sync-samuel]
samuel
This script must be run as root

権限:

-rwxr-xr-x 1 samuel samuel  435 Feb  1 22:36 sync-samuel
-rwxr-xr-x 1 samuel samuel  435 Feb  1 22:37 sync-samuel2

ファイル:

samuel@xeon:~/bin$ file sync-samuel
sync-samuel: a /usr/bin/env bash script, ASCII text executable
samuel@xeon:~/bin$ file sync-samuel2
sync-samuel2: a /usr/bin/env bash script, ASCII text executable

何がこの動作をトリガーするのか、またはこれら2つのファイルの拡張プロパティを表示する方法を知っている人はいますか?Lubuntu 14.04 LTS w / bash 4.3.11(1)-リリースを使用しています。

編集:G-Manは男です!最初のものもエイリアスです:

samuel@xeon:~/bin$ type sync-samuel2
sync-samuel2 is hashed (/home/samuel/bin/sync-samuel2)
samuel@xeon:~/bin$ type sync-samuel
sync-samuel is aliased to `sudo /home/samuel/bin/sync-samuel'
G-Manは「モニカを復活させる」と言います

出力は、なし実行し、スクリプト自体がを呼び出さない場合でもsync-samuelsudoプロンプト発行することを示していますこれは意味がありません。入力すると、質問に表示されているスクリプト以外のものを実行しているように見えますsudosudosync-samuelsync-samuel

それはsync-samuel実際にはのエイリアスsudo sync-samuelまたは類似のものである可能性があります。別の可能性はsync-samuel、別のディレクトリに別のコピーがあり、シェルが探しているコピーではなく、それを検出(および実行)していることです。これを診断するには、次のコマンドを発行します。

type sync-samuel sync-samuel2

typeは、シェルが各コマンドをどのように解釈するかを示す組み込みコマンドです。2つのファイルに対して大幅に異なる応答を受け取った場合(たとえば、sync-samuelエイリアスであり、そうsync-samuel2でない場合)、それらを同じように処理する方法を知っています(たとえば、のエイリアスsync-samuel2定義します)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Bash ログオン スクリプトの奇妙な動作

分類Dev

bashスクリプトでの「jobs」コマンドの奇妙な動作

分類Dev

奇妙な動作をするBashスクリプト変数

分類Dev

bashスクリプト、forループのファイル名のスペースの処理奇妙な動作

分類Dev

奇妙なJQueryスクリプトの動作

分類Dev

スクリプトがbashにパイプされる場合の奇妙なadbの動作

分類Dev

Bashのトリプルバックスラッシュ「echo-e」は奇妙な動作をしています

分類Dev

bashで奇妙な動作をするスプリット

分類Dev

jQuery水平スクロールスクリプトの奇妙な動作

分類Dev

Perlスクリプトの奇妙な動作(追加のスラッシュ)

分類Dev

Bashスクリプトの奇妙な動作-スクリプトは手動コマンドとして機能しません

分類Dev

Pythonモジュールのターミナルスクリプトとbashスクリプトの奇妙な動作の違い

分類Dev

シェルスクリプトでの奇妙な「エコー」動作

分類Dev

Pythonリストの奇妙な動作

分類Dev

ツールストリップボタンの奇妙な動作

分類Dev

LibGDXスクリーンショットの奇妙な動作

分類Dev

LibGDXスクリーンショットの奇妙な動作

分類Dev

Axios.getリクエストの奇妙な動作

分類Dev

iOS javascriptPOSTリクエストの奇妙な動作

分類Dev

Ansible動的インベントリスクリプト-奇妙な動作

分類Dev

リクエストに応じて聞くためのエクスプレスの奇妙な動作

分類Dev

奇妙な動作をするフォルダ内のスクリプトへのアクセス許可

分類Dev

バッチスクリプトでのネストされたラベルの奇妙な動作

分類Dev

リクエスト間のテスト中のcherrypy.sessionの奇妙な動作

分類Dev

Bash の単純なスクリプトが正常に動作しない

分類Dev

ループ中にマトリックスにアクセスするときの奇妙な動作

分類Dev

ブートストラップ 3 の行クラスの奇妙な動作

分類Dev

スクリプトブロックと正規表現の置き換えによる奇妙なPowerShellの動作

分類Dev

bash スクリプトでの二重引用符の予期しない動作

Related 関連記事

  1. 1

    Bash ログオン スクリプトの奇妙な動作

  2. 2

    bashスクリプトでの「jobs」コマンドの奇妙な動作

  3. 3

    奇妙な動作をするBashスクリプト変数

  4. 4

    bashスクリプト、forループのファイル名のスペースの処理奇妙な動作

  5. 5

    奇妙なJQueryスクリプトの動作

  6. 6

    スクリプトがbashにパイプされる場合の奇妙なadbの動作

  7. 7

    Bashのトリプルバックスラッシュ「echo-e」は奇妙な動作をしています

  8. 8

    bashで奇妙な動作をするスプリット

  9. 9

    jQuery水平スクロールスクリプトの奇妙な動作

  10. 10

    Perlスクリプトの奇妙な動作(追加のスラッシュ)

  11. 11

    Bashスクリプトの奇妙な動作-スクリプトは手動コマンドとして機能しません

  12. 12

    Pythonモジュールのターミナルスクリプトとbashスクリプトの奇妙な動作の違い

  13. 13

    シェルスクリプトでの奇妙な「エコー」動作

  14. 14

    Pythonリストの奇妙な動作

  15. 15

    ツールストリップボタンの奇妙な動作

  16. 16

    LibGDXスクリーンショットの奇妙な動作

  17. 17

    LibGDXスクリーンショットの奇妙な動作

  18. 18

    Axios.getリクエストの奇妙な動作

  19. 19

    iOS javascriptPOSTリクエストの奇妙な動作

  20. 20

    Ansible動的インベントリスクリプト-奇妙な動作

  21. 21

    リクエストに応じて聞くためのエクスプレスの奇妙な動作

  22. 22

    奇妙な動作をするフォルダ内のスクリプトへのアクセス許可

  23. 23

    バッチスクリプトでのネストされたラベルの奇妙な動作

  24. 24

    リクエスト間のテスト中のcherrypy.sessionの奇妙な動作

  25. 25

    Bash の単純なスクリプトが正常に動作しない

  26. 26

    ループ中にマトリックスにアクセスするときの奇妙な動作

  27. 27

    ブートストラップ 3 の行クラスの奇妙な動作

  28. 28

    スクリプトブロックと正規表現の置き換えによる奇妙なPowerShellの動作

  29. 29

    bash スクリプトでの二重引用符の予期しない動作

ホットタグ

アーカイブ