問題タブ [etcpasswd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - /etc/group ファイル内の正しいグループ名と ID を変更する
2 つのパラメーターを bash スクリプトに渡しています。最初のパラメーターは group で、2 番目のパラメーターは groupID です。グループが存在するかどうかを確認する bash スクリプトを書きたいと思い/etc/group
ます。存在しない場合、スクリプトは group と gid を に追加する必要があり/etc/group
ます。存在する場合は、gid を 2 番目のパラメーターと一致させる必要があります。gid が 2 番目のパラメーターと一致しない場合は、gid を 2 番目のパラメーターで上書きする必要があります。
つまり、スクリプトに渡すグループ名と gid は、/etc/group ファイルにある必要があります。
私は次のようにコマンドを実行しています:
/etc/group
次のエントリがあるとします。
コマンドを実行した後、参照/etc/group
すると値が必要です
addgroup.sh
これまでに次のことを書きました。
c - 動的に割り当てられた 2 次元の文字列配列で単一文字列の長さを取得する
UNIXシステムでユーザーが属するすべてのグループを見つけようとしています.ImplementationはCで行う必要があります。これが私のコードです:
しかし、「root:」の出力後にセグメンテーション違反が発生します。問題は、/etc/group ファイルの 4 番目のフィールドにあるメンバーのリストにアクセスすることにあると確信しています (詳細については、man 5 group を参照してください)。
したがって、基本的に私の問題は、各グループが何人のメンバーを持っているかを調べることです。そのため、私のカウンター (プログラム内の i、最後の for ループ) には適切な上限があります。
c - ファースト ネームをミドル ネームで区切り、ラスト ネームを strtok_r で区切ります
そのため、以前の C プログラミングの探求に関連する問題がいくつかあります。今回はor/etc/passwd
を使ってファイルと名前を分ける方法について。取り決めは、ユーザー名を 2 つの部分に分けたいということです。最初の名前とミドル ネーム (1 つを取得したと仮定) で、2 番目の名前で姓です。しかし、名前を正しく区切る方法が見つかりません。最初の部分ではファースト ネームで動作するようにしましたが、ラスト ネームにミドル ネームが付けられます。strtok_r
strtok
行は次の/etc/passwd
ようになります。
私が得るものの例:
印刷方法の例:
これまでの私のコードは次のとおりです。