【Node.js24.x】Object::fchmodSync()メソッドの使い方
fchmodSyncメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
fchmodSyncメソッドは、指定されたファイル記述子によって参照されるファイルのアクセスパーミッションを同期的に変更するメソッドです。このメソッドはNode.jsのfsモジュールに属しており、プログラムからファイルのセキュリティ設定やアクセス制御を管理するために利用されます。
fchmodSync(fd, mode)という形式で呼び出され、第一引数fdには、fs.openSync()などの関数によって取得された、既に開かれているファイルのファイル記述子(整数値)を指定します。これはファイルパスではなく、特定の開かれたファイルを識別するためのユニークな番号です。第二引数modeには、新しいパーミッションを数値で指定します。一般的には、八進数リテラル(例: 0o755)を使用して、ファイルの所有者、グループ、その他のユーザーに対する読み取り(r)、書き込み(w)、実行(x)の権限を表現します。例えば、0o755は、所有者には読み取り、書き込み、実行の全権限を、グループおよびその他のユーザーには読み取りと実行の権限を与えることを意味します。
名前に「Sync」が含まれている通り、このメソッドは同期的に動作します。つまり、ファイルのパーミッション変更処理が完了するまで、Node.jsのイベントループをブロックし、他のJavaScriptコードの実行を待機させます。このため、大規模なアプリケーションや高負荷のサーバーでは、イベントループをブロックしない非同期版のfchmod()の使用が推奨されますが、シンプルなスクリプトや初期設定処理など、同期的な動作が許容される場面で利用されます。
このメソッドは成功した場合でも戻り値はありません(undefinedを返します)。しかし、パーミッションの変更中にエラーが発生した場合は、例外をスローするため、try...catchブロックを使用して適切にエラーを処理することが重要です。ファイルのアクセス権限を正確に設定することで、システムのセキュリティを強化し、意図しないファイルアクセスを防ぐことができます。
構文(syntax)
1const fs = require('node:fs'); 2 3const fileDescriptor = fs.openSync('temporary_file_for_chmod.txt', 'w'); 4 5fs.fchmodSync(fileDescriptor, 0o600); 6 7fs.closeSync(fileDescriptor);
引数(parameters)
fd, mode
- fd: number: ファイルディスクリプタ。
fs.openSync()などで取得した数値。 - mode: string | number: ファイルのパーミッションを指定するモード。数値または文字列で指定可能。
戻り値(return)
戻り値なし
戻り値はありません