{Blog}フェアーウェイのエンジニアブログです。matsu先日、他の人が権限を変更するところを見る機会があったのですが、お恥ずかしながらそこで初めて数字以外で権限を設定する方法を知りました。そこで、chmodについてまとめてみたいと思います。chmodファイルやフォルダの権限を変更するコマンドです。どのファイル・フォルダをどのように変更するかという指定が必要になります。権限変更の指定の前に、権限について説明します。権限は対象となるユーザと許可するアクションの2つで成り立ってます。対象となるユーザは、所有者、所有者グループ、その他の3種類となっています。許可するアクションも読み込み、書き込み、実行の3種類に分かれています。chmodでは、これを0~7の数字を使い、3桁で表現します。1桁目は、所有者の2桁目は、所有者グループの3桁目は、その他の、許可されているアクションを記しています。0~7でどうやって許可されているアクションを示しているのでしょう。肝となるのは、対象となるユーザは排他的であるのに対し、許可するアクションは重複するということです。対象ユーザは、所有者であれば、所有者グループではなく、またその他であることはありません。読み込み、実行が許可されているが、書き込みが許可されていないということもありえます。実は、0~7の数字はそのままで考えるのではなく、2進法にして考えます。許可・不許可を0と1で、各項目(読み込み、書き込み、実行)を桁に置き換えているのです。1上記のような場合、2進法で101に置き換えられ、さらに10進法に変えて、5と表現されます。全て許可する場合は、111になるので、7になるということです。これが、ユーザの種類毎に繰り返され、3桁の数字となります。777の場合、全てのユーザに全ての権限があるということです。700の場合、所有者のみ全てのアクセスが可能だということになります。[ファイル・フォルダ名]とすれば対象のファイル・フォルダに全てのユーザの全てのアクセスを許可することになります。数字で権限を指定する以外にも、対象のユーザを指定して権限を変更できます。その場合、対象ユーザや権限の種類などをちゃんと指定する必要があります。使用中のファイルの権限を変える必要がある場合は、文字での指定が安全で良いのかなと思います。コメントをキャンセルメールアドレスが公開されることはありません。