【Ruby3.x】File::lchmod()メソッドの使い方
lchmodメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
lchmodメソッドは、指定されたファイルやディレクトリのパーミッション(アクセス権)を変更するメソッドです。特に、シンボリックリンクのパーミッションを変更する際に用いられます。通常のFile.chmodメソッドがシンボリックリンクが指し示す実体のパーミッションを変更するのに対し、lchmodメソッドはシンボリックリンク自体のパーミッションを変更するという重要な違いがあります。
このメソッドは、第一引数に変更したいパーミッションモードを数値(例えば、0755や0644といった八進数)で指定し、第二引数以降にパーミッションを変更したいファイルやディレクトリのパスを文字列で一つ以上指定します。モードは、ファイルの所有者、グループ、その他のユーザーに対する読み取り、書き込み、実行の各権限をビットパターンで表現したものです。
lchmodメソッドの実行が成功すると、パーミッションを変更したファイルやディレクトリの数を返します。しかし、システムによってはシンボリックリンク自体のパーミッション変更をサポートしていない場合があります。そのようなシステムでlchmodメソッドを呼び出すと、NotImplementedError例外が発生する可能性があるため、利用環境に注意が必要です。これにより、シンボリックリンクが指す先ではなく、シンボリックリンクファイルそのものへのアクセス権を細かく制御できるようになります。
構文(syntax)
1File.lchmod(0o644, "path/to/symlink_or_file")
引数(parameters)
mode, *filenames
- mode: ファイルのパーミッションを指定する整数。
File.chmodと同様の形式。 - filenames: パーミッションを変更する対象のファイル名を可変長引数で指定する。
戻り値(return)
Integer
File.lchmod は、ファイルのパーミッションを変更した結果、変更が正常に行われた場合は 0 を返します。エラーが発生した場合は例外を発生させます。