ユーザーのumask設定

ユーザーのumask設定

umask出力を0022の代わりに22にするにはどうすればよいですか?

サーバー1:

user@vxs-app01> umask
22

サーバー2

user@vxs-app02> umask
0022

答え1

私:
    1セントがありますが、0.01ドルで交換したいです。

両替所の計算員:
    うーん… 、同じです。

22と0022は(同じ塩基を持っていると仮定すると)同じ数であることを知っていますか?そうでなければ私は言います。

22と0022は同じ数字です(同じ塩基を持っていると仮定する場合)。

これはあなたの質問に対する答えですか?そうでなければ、

  1. あなたは見せます

    user@vxs-app01$ umask
    22
    

    理解しましたか?このようなことが起こるシステムについて教えてください。

    さて、明らかにあなたはどのシステムを扱っているのか私たちに話したくありません。私の答えは、次の段落で私が議論したものの1つ(または組み合わせ)を見ることができるということです。

    • サーバー 1 は、別名が指定されているか、umaskシェル関数でオーバーライドされている可能性があります。type umask確認するには入力してください。
    • 両方のシステムは、異なるシェルまたは異なるバージョンのシェルを有することができる。
      • zshumaskは前にゼロが1つだけ表示されるようです。だからそれを説明し022ますが、それは単なる説明以上です22
      • cshそして、tcsh前にゼロなしでumaskを表示するようです。しかし、これはcsh、、および他のPOSIXフレンドリーなシェルとはまったく異なりますtcsh。サーバー1が稼働しているかどうかを確認できます。bashkshzshcshtcsh
      • サーバー1は、ローカルに変更されたシェルを実行している可能性があります。
  2. 22仮想の例として Server1 の出力を表示する場合、 を入力するとこれが得られますprintf '%o\n' "$(umask)"。これは生出力umask(前に0があります)を取得し、デフォルト形式の8進数(いいえ先行0)。その後、別名またはシェル関数に入れることができます。

  3. シェルが入力したとおりに正確にumask値を記憶するようにするには、次のようにします。

    $ umask 0022
    $ umask
    0022
    
    $ umask 22
    $ umask
    22
    
    $ umask 022
    $ umask
    022
    

    それはもっと難しいでしょう。より簡単な方法は、それを仕上げるシェル関数を書くことですumask。それが欲しいなら、

    • どうすればいいのか調べて、
    • 失敗した場合は、何をしたいのかを明確に説明するために質問を編集してください。


    より難しいがより安定した方法は、ソースコードを入手してbash修正することです。

関連情報