文字と数字を含むChmod

文字と数字を含むChmod

最近、同僚が私にchmod数字の代わりに文字を使用するように頼んだ。明らかな可読性の利点に加えて、数字の代わりに文字を使用する特別な理由はありますか?

答え1

8進表現と比較して、シンボル表現chmodはより細かく、他のモードビットは変更されずに特定のモードビットを変更できます。

象徴的な表現は3つの部分で構成されています。

chmod [references][operator][modes] file

referencesugoaどのユーザーのアクセス権が変更されるかを指定する文字の組み合わせfile:ファイルを所有するユーザー(u)、ファイルグループに属する他のユーザー(g)、ファイルグループに属していない他のユーザー(o)、またはすべてのユーザー(a)。このコンポーネントを省略すると、デフォルトreferencesはすべてのユーザーに設定されますが、許可された権限のみが変更されますumask

指定されたファイルモードビットが+ operator各ファイルの既存のファイルモードビットに追加され、明示的に指定されていない場合は、ディレクトリに設定されているビットを除いてそのビットが追加され、指定されていないビットが削除されます-=setuidsetgid

mode読み取り()、書き込み()、実行(またはディレクトリ検索)()rwxXstに対応する文字の組み合わせで構成、ファイルがディレクトリであるか、すでに一部のユーザーの実行権限を持っている場合にのみ実行/検索()、または(によって異なります) on(指定された参照)()と制限消去フラグまたは固定ビット()。または、文字の1つで構成することができます。この場合、所有者()、ファイルグループのメンバー()、または上記のカテゴリ()のユーザーに現在付与されている権限に対応します。rwxXsetuidsetgidstmodeugomodeugo

はい

特権セットが次のと仮定しますfile0764/-rwxrw-r--

ファイルグループに属していない他のユーザーの権限を削除します。

  • 8進数:chmod 760 file

    8進表記を使用する場合は、変更されていない既存の権限を繰り返す必要があります。

  • 象徴的:chmod o-rwx file

    記号表記法では、既存のファイル権限は重要ではありません。

置くsetuid:

  • 8進数:chmod 4764 file

  • 象徴的:chmod u+s file

置くsetgid:

  • 8進数:chmod 2764 file
  • 象徴的なchmod g+s file

答え2

他のビットを変更せずに個々のビットをオンまたはオフにするには、この文字を使用します。

次のディレクトリがあるとしましょう。

drwxrwsr-x   6 f261-01a  g261-01a  4096 Sep 12 17:51 /home/teams/261/f261-01a

他の人の読み取りアクセスをオフにして数字を使用したい場合は、おそらくかなり早くそうしますchmod 751。ディレクトリだけでsetgidビットをオフにするだけです。こんな。

ただし、使用すると、chmod o-r希望の読み取りビットのみがオフになり、ディレクトリのsetgidビットは設定されたままになります。

これは、ファイルまたはディレクトリでsetuid、setgid、または固定ビットを有効にしたい場合にも便利です。特にこれをほとんどしないと、4番目のオクテットにどのビットがあるのか​​覚えにくいでしょう。

したがって、それはあなたが何をしているかに依存します。権限を設定し、何から始めるべきか気にしないときは、まだ数字を使用することをお勧めします。しかし、個々のビットを切り替えるには、アルファベット表記がはるかに簡単です。

関連情報