文字と数字によるchmod

文字と数字によるchmod

最近、同僚からchmod数字ではなく文字を使用するように言われました。 読みやすさという明らかな利点以外に、数字ではなく文字を使用する特別な理由があるのでしょうか?

答え1

シンボリックchmod表記は 8 進表記に比べて粒度が細かく、他のモード ビットはそのままにして、特定のモード ビットを変更することができます。

記号表記は 3 つの要素で構成されます。

chmod [references][operator][modes] file

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

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

は、mode文字 の組み合わせで構成されます。文字rwxXstは、読み取り ( r) w、書き込み ( )、実行 (またはディレクトリの検索) ( x)、ファイルがディレクトリであるか、すでに一部のユーザーに実行権限がある場合のみ実行/検索 ( X)、setuidまたはsetgid(指定された参照に応じて) ( s)、および制限付き削除フラグまたはスティッキー ビット ( t) に対応します。あるいは、 はmode文字 のいずれか 1 つで構成される場合がありugo、その場合、 は、mode所有者 ( u)、ファイルのグループのメンバー ( g)、または前述のいずれのカテゴリにも属さないユーザーの権限 ( o) に現在付与されている権限に対応します。

の権限セット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

other の読み取り権限をオフにして、数値を使用したい場合は、 をすぐに実行できますchmod 751。ただし、ディレクトリの setgid ビットをオフにしてしまいました。おっと。

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

また、ファイルまたはディレクトリの setuid、setgid、または sticky ビットをオンにする場合にも便利です。特に、これをめったに行わない場合、4 番目のオクテットのどのビットがどのビットであるかを覚えておくのが困難な場合に便利です。

したがって、何をしているかによって異なります。権限を設定するだけで、そもそも何があるかは気にしない場合は、やはり数字を使用することを好みます。ただし、個々のビットを切り替える場合は、文字表記の方がはるかに簡単です。

関連情報