はじめに:
Unixシステムにおいてテキスト処理は非常に重要なスキルの一つです。本記事では、Dell Technologies社のCommunityサイトに投稿されたコマンドを使ってディレクトリに紐づくNTFSアクセス権の調査を行う方法について解説します。またテキスト処理についての基礎知識や、おすすめのコマンドやツールについても紹介します。
前提条件:
この記事で紹介するコマンドを実行するにはStorageシステムOS(OneFS)が必要です。こちらのサイトからシミュレーターを入手できます。基本的なUnix系コマンドや正規表現についての理解があることを前提としています。もし、FreeBSDをベースとするOneFSのシミュレーターを入手できない場合はNTFSアクセス権の調査を行なうことはできませんがawkコマンドシンタックスはテキスト処理の参考になるかと思いますので是非お役立て下さい。
コマンド:
ls -edl /ifs/hogehoge/* | awk '{print substr($0,match($0,/(S-[^[:space:]]|/ifs.)/),RLENGTH)}' | awk 'BEGIN {prev_line=""} {if ($0 ~ /^/ifs// && prev_line ~ /^/ifs//) {prev_line=$0;next} if ($0 ~ /^S-/) {if (prev_line ~ /^/ifs//) print prev_line} if (NR>1 && $0 !~ /^/ifs//) {print $0} prev_line=$0} END {if (prev_line !~ /^/ifs//) print prev_line}'
処理結果:
上記コマンドを実行すると指定したディレクトリ配下の全ディレクトリに紐づくNTFSアクセス権を持つActive DirectoryアカウントのSIDが抽出されます。組織を退職したエントリーはActive Directoryから削除された際にクレデンシャル情報を得ることができない為SID形式の表示となります。今回はそれを一覧表示します。
コマンドの説明:
上記のコマンドは、以下のように構成されています。
ls -edl /ifs/hogehoge/* 指定したディレクトリの情報を表示します。ここでは、/ifs/hogehogeディレクトリ配下の全ディレクトリに紐づくNTFSアクセス権情報を表示しています。”-edl”はOneFS独自のオプションです。
awk ‘{print substr($0,match($0,/(S-[^[:space:]]|/ifs.)/),RLENGTH)}’ 正規表現を使用して、/ifsから始まる文字列とS-から始まる文字列を抽出します。以下のようなサンプル文字列を得ることができます。(イメージです)
/ifs/hogehoge/A
S-1-123456
S-1-234567
/ifs/hogehoge/B
/ifs/hogehoge/C
/ifs/hogehoge/D
S-1-345678
/ifs/hogehoge/E
awk ‘BEGIN {prev_line=””} {if ($0 ~ /^/ifs// && prev_line ~ /^/ifs//) {prev_line=$0;next} if ($0 ~ /^S-/) {if (prev_line ~ /^/ifs//) print prev_line} if (NR>1 && $0 !~ /^/ifs//) {print $0} prev_line=$0} END {if (prev_line !~ /^/ifs//) print prev_line}’ 抽出された文字列を整形し、/ifsから始まる文字列とS-から始まる文字列を連結させます。そして、/ifsから始まる文字列とS-から始まる文字列が交互に現れるように整形し、SIDの紐付きが無いディレクトリは除外した形でActive DirectoryアカウントのSIDを表示します。(イメージです)
/ifs/hogehoge/A
S-1-123456
S-1-234567
/ifs/hogehoge/D
S-1-345678
まとめ:
Unixシステムにおいて、テキスト処理は非常に重要なスキルの一つであり、これまで紹介したコマンドやツールを使いこなすことで、より高速で効率的なテキスト処理が可能になります。以下は、テキスト処理におすすめのコマンドやツールです。
- Ripgrep:正規表現を使用して、膨大な量のテキストを高速に検索することができるツールです。
- Fzf:コマンドラインで使用することができる、インタラクティブなフィルタリングツールです。
- jq:JSONファイルを処理するためのコマンドラインツールです。
- Bat:ファイルの中身を表示するためのコマンドラインツールです。
また、自然言語処理に必要なテキスト処理におすすめのツールとして、以下があります。
- NLTK:Pythonの自然言語処理ライブラリです。
- MeCab:形態素解析エンジンです。
- SpaCy:Pythonの自然言語処理ライブラリです。
これらのツールを使いこなすことで、より高度なテキスト処理のスキルを身につけることができます。また、テキスト処理は多くの分野で必要とされるスキルの一つであり、開発者やシステム管理者、データサイエンティストなど、様々な分野で活躍することができます。
本記事では、Dell Technologies社のCommunityサイトに投稿されたコマンドを使って、ディレクトリに紐づくNTFSアクセス権の調査を行う方法を紹介しました。テキスト処理に必要な基礎知識やおすすめのコマンド、ツールについても解説しました。これらの情報を参考に、テキスト処理のスキルアップに取り組んでみてはいかがでしょうか。