ojixiiさんの助け合いフォーラム投稿一覧

助け合いフォーラムの投稿
2023/11/12 返信
xz、unxzコマンドの使い方について

すみません、どの問題の事を仰ってるのかよくわからなかったのですが、
xz -cd と unxz -c は同じように動作するのか? という意図のご質問でしたら、その通りだと思います。。
おかしな回答してたらすみません。

2023/11/05 返信
mrproperの動作について

mrproperについてはご認識の通りかと思いますが、引っかかってるのはたぶん解説のここのところですかね。

この問題では「現在のカーネル設定を引き継」いで使うとのことなので、現在のカーネルをビルドしたときの設定を .config として現在のディレクトリにコピーしておき、make oldconfig を実行します。

mrproperで初期化してから、必要な設定(現在のカーネルの.config)を持ってきてoldconfigなどを実行していけば、現在の設定を引き継いだカーネルをビルドできるということなのかなと思います。

2023/10/15 返信
crontabのオプションの表についての質問

man 見ても特に説明はありませんでしたので、お考えの通り
edit の -e、list の -l、remove の -r だよ、という補足と捉えてよいかと思います。

2023/10/10 返信
「/etc/shadow」ファイルのパーミッションについて

200 でも問題はないかもしれませんが、
「書き込みだけ許可」というパーミッションは一般のファイルではまず設定しないはずです。
(この問題が4択であれば選ぶかもしれませんが、だいぶ悩ましいです)

ちなみに /proc/sysrq-trigger というファイル(カーネルパニックを起こさせるファイル)は
確か書き込みのみだったはずですが、これも特殊な例だと思います。

2023/09/21 返信
NTPクライアント及びクライアントの定義について

NTPサーバへアクセスして現在時刻を取得するソフトウェア(コマンド)ですので、「コマンドでありクライアントである」の理解でいいのではないかなと思います。

参考までに、NTPクライアントの定義は以下のようになってるようです。
https://e-words.jp/w/NTP%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88.html

2023/09/17 コメント
OpenVPN 設定ファイル
すみません、以下に関して > systemdの起動ファイルが/etc/openvpn 直下に置かれている *.conf を読み込んで動作するという動きをしてます。 公式の情報もくっつけておきます。 https://openvpn.net/community-resources/configuring-openvpn-to-run-automatically-on-system-startup/ > Linux > If you install OpenVPN via an RPM or DEB package on Linux, the installer will set up an initscript. When executed, the initscript will scan for .conf configuration files in /etc/openvpn, and if found, will start up a separate OpenVPN daemon for each file.
2023/09/17 返信
フォアグラウンドでプロセス(ジョブ)実行中にkillやkillallコマンドは打てないのではないか

Q1 について、厳密に詳しくはないのですが
ジョブはプロセスの集合(シェルから見た実行単位)の認識だったので概ね同じ意味で受け取っていいのではと思います。
ターミナル上で「sleep 10」とか実行しても、フォアグラウンドのジョブ1つともいえるしプロセス1つともいえますよね。

Q2 はジョブを実行しているターミナルとは異なるターミナルからであれば、kill/killall コマンドを実行することができると思います。

2023/09/17 返信
OpenVPN 設定ファイル

server.confやclient.confはデフォルトで存在するファイルではなくて、
基本的には同梱されているサンプルを/etc/openvpnディレクトリ配下にコピーして利用する運用ですね。
systemdの起動ファイルが/etc/openvpn 直下に置かれている *.conf を読み込んで動作するという動きをしてます。

少し古くて恐縮ですが、openvpn-2.4.8-1.el7.x86_64 の /usr/lib/systemd/system/openvpn@.service から抜粋します。

[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/ --config %i.conf   ★★

一応こちらにも「/etc/openvpn/server.conf」として例が挙がっています。
https://atmarkit.itmedia.co.jp/ait/articles/1603/18/news009_3.html
https://www.server-memo.net/server-setting/openvpn/openvpn_2_4-tun.html#toc20

2023/09/04 返信
aghコマンドの引数

% はあってもなくてもいいみたいです。
https://atmarkit.itmedia.co.jp/ait/articles/1707/21/news001_2.html

プロンプトで「fg %1」または「fg 1」を実行すると、ジョブ番号[1]で実行中のジョブ(略)がフォアグラウンドになります

2023/08/06 返信
「シェル変数」と「シェルのオプション」の用語の関係

・①は②の一部であり、②に含まれる(①は②のサブセットである)

①と②は異なる機能だと思います。一部でもないです。

・①=②ではない

YESです。

・setは②の全てを表示し、その中に①が含まれる(setの表示は、①以外の部分が存在する)

setコマンド(オプションなし)は ①シェル変数 に加えて環境変数などを表示します。
オプション名を指定しない「set -o(または set +o)」コマンドは、②のすべて? というか設定状況を表示します。

①シェル変数は、シェルの中でのみ有効な変数です。変数名も値も任意です。
$ aaa=100
とすると、シェル変数 aaa には 100 という値が設定されていることになります。
シェル変数をどのように定義してどう使うかはユーザーが決めることです。

②シェルのオプションは、こちらの問題にあるとおり allexport とか emacs とか、名前も機能も決まってます。
有効/無効を切り替えることで、シェルを使う上で便利になったりシェルの動作を自分好みの操作感にできます。
機能を有効にするかどうかはユーザーが決められます。

2023/08/06 コメント
リバースプロキシの設定の流れが分からない
お返事遅くなってすみません。旅行を楽しんでました! まず、ご存じかもしれませんが念のため。。 HTTPリクエスト中のHostフィールド(Hostヘッダフィールド)はHTTP/1.1以降では必須のフィールドで、アクセスするサーバ名(とポート番号)の情報です。 https://e-words.jp/w/Host%E3%83%98%E3%83%83%E3%83%80.html (Hostフィールドが「ある」「ない」みたいな書き方されてたので、 そもそもHostフィールドは HTTPリクエスト中にあって、中身の情報が書き換わっちゃってるんですよ、 ということを言いたかったです。) > HTTPリクエストヘッダの動きとしては以下だと認識しています > クライアント→①→Nginx(リバースプロキシ)→②→プロキシ先 > > >・デフォルトでは、Hostフィールドには クライアントからのHostフィールドが含まれてない > ①の段階ではHostフィールドがあり、②ではHostフィールドが含まれていない ① の段階では、Hostフィールドはクライアントのリクエストそのままの Host: example.com みたいな感じですが、② の段階では Host: 192.168.1.10 のように Nginx が書き換えてしまうということです。 > (しかしクライアント←Nginxの向きでホスト名「192.168.1.10」が送られる) クライアント ← Nginx へ 192.168.1.10 が送られるわけではないです。 > >・クライアントからのHostフィールドをプロキシ先のサーバへ送りたいような場合 > ①の段階ではHostフィールドがある > Nginxの「proxy_set_header」と変数$hostを使って、「proxy_set_header Host $host;」と設定ファイルに記述されている > ②Hostフィールドが含まれている ①の段階では「クライアントのリクエストそのままのHostフィールド(上の例の場合 "Host: example.com")」です。 「proxy_set_header Host $host;」と設定すると、 変数$host には ①の「クライアントのリクエストそのままのHostフィールド」が格納されてますから、 ② のHostフィールドを ①のようにできる(上の例の場合 "Host: example.com") ということです。 こちらも参考になるかもしれません。 https://www.xmisao.com/2013/10/17/nginx-proxy-host-header.html
2023/08/01 返信
リバースプロキシの設定の流れが分からない

ご質問の意図を読み違えてたらすみません。
「元のリクエストヘッダに192.168.1.10を教える」というのがちょっとよくわからなかったのですが、
ここで言ってるのは、
・デフォルトでは、Hostフィールドには クライアントからのHostフィールドが含まれてない
(その代わりに プロキシサーバのホスト名(例の場合は 192.168.1.10)が送られる)
・クライアントからのHostフィールドをプロキシ先のサーバへ送りたいような場合には
「proxy_set_header」と変数$hostを使って、「proxy_set_header Host $host;」のようにする
ということなんじゃないかなあと思います。。

2023/07/18 返信
Upstartでの「/etc/inittab」の効果

あまり詳しくはわかりませんが、/etc/inittab は Upstart でも使用可能だけど非推奨 というスタンスのようです。
以下 RHEL6 のマニュアルですが参考に。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/migration_planning_guide/ch04s02s03

なので、Upstart が inittab の機能のどこまで使えるか使えないか というよりは、基本的には使わないもの。
ということから「/etc/inittab」を設定ファイルとして使用しないinitプログラムは「Upstart」~」と理解していいのではないかと思います。

2023/06/28 コメント
NFSv3とNFSv4のデーモンの違い
スピマス、「ディストリビューションによっては実装上残してる」とありますね。。 (ディストリビューションで仕様が異なるのが試験で一番困るんですけど;) 私が提示した2つのURLはどちらも Red Hat系なのでこちらでは残してるってことで、 MechaHageさんが提示してくださったURLはSoralisなのでそっちでは不要ということでしょうか。 実機どうかなあと思ってUbuntuをちょこっと触ってみました。が、結論としては必要そうかな~~といった雰囲気です。 ・/etc/nfs.conf で NFSv3 を無効にして(NFSv4専用にして) nfs-servers を起動 → rpc.mountd がいる ``` [nfsd] : # vers3=y vers3=n ← root@ubuntu22:~# systemctl restart nfs-server root@ubuntu22:~# rpcinfo -p program vers proto port service : 100003 4 tcp 2049 nfs ← root@ubuntu22:~# ps -ef | grep mountd root 2027 1 0 17:20 ? 00:00:00 /usr/sbin/rpc.mountd ``` ・rpc.mountd を kill してクライアントからマウント → マウントはできた killしてしまうのが正しいのかわからないのですが、rpc.mountdがいなくてもmountはできたので「要らない」とも言えそうですよね。 「NFSv4ではネットワーク上の操作には関与しない」という(Red Hatのですけど)記述にも合致してる感じです。 ただ、本当に要らないのであればサービス起動時にデーモンを起動しないのではないかと思いますし (マウントできただけなので運用上は不都合があるかもしれないです)、 下記URLのとおり「要らないけど要る」みたいな結論になってしまうんでしょうか... https://straypenguin.winfield-net.com/nfsv4.html#unnecessaries なんか中途半端に口出して結論がふわふわですみません;; ちなみに全然関係ないんですが、NFSv4専用にする方法とか/etc/nfs.confとか、 試験には出ないところですけど勉強させていただきました。ありがとうございます。
2023/06/26 返信
NFSv3とNFSv4のデーモンの違い

rpc.mountd は、自分の中のざっくりな理解では「NFSを使うにあたってバージョン問わずサーバ側で必要なもの」だったので
興味持って調べてみたのですが、「NFSv4では要らん」と書かれた資料が見つかりませんでした。。
もし文献等ありましたら教えていただきたいです。

一応、参考URLの先には以下のようにあったので、NFSv4 でも必要だと思っていました。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-nfs

rpc.mountd デーモンは、エクスポートを設定するために NFS サーバーで引き続き必要ですが、ネットワーク上の操作には関与しません。

あとはこちらにも NFS 2,3 および 4 で使用されるとありました。
https://docs.oracle.com/cd/E39368_01/admin/ol_about_nfs.html

リクエストされたNFS共有をNFSサーバーがエクスポートし、クライアントがその共有にアクセス可能であることを確認することにより、NFSv2およびNFSv3クライアントからのマウント・リクエストを処理します。
NFSv4の場合、このサービスはエクスポートを設定する場合のみ必要です。

NFSv4で役割は変わっているものの、いずれにせよ必要なように思えますが、いかがでしょうか。

2023/06/19 返信
アクセス制御について

LinuC ですが正にほぼ同じ箇所を学習していました。

1行ずつ読み取るとこうですかね。

olcAccess: to * → 全てのエントリに対して
by anonymous read → 認証前のユーザは参照できます
by * none → それ以外のユーザはアクセスできません

が、これ2行目の条件によって全ユーザ(未認証ユーザ含む)がマッチしますので、3行目が評価されることはありません。

もう少し丁寧に説明すると、

by anonymous read

の anonymous は認証される前のユーザ(匿名ユーザではないです)であり、認証可能なユーザを含む全ユーザを意味します。
参考に以下のようにあります。

「by anonymous auth」の記述があるのは、LDAPサーバにアクセスする際は必ず認証を行う必要があるためです。認証される前のユーザの為に、anonymousを指定します。この記述がないとそもそも認証ができなくなりますので、注意が必要です。

よって、2行目で「全てのエントリを全てのユーザが参照できる」ということになります。
さらに、3行目「by * none」は以下の理由により評価されません。

by以降に記述されている条件は順番に処理され、条件にマッチするとそれ以降の条件は処理されません。記述する順番には注意が必要です。

2行目の条件により「全ユーザ」がマッチしますので、3行目は評価されないんですね。
よって、「アクセス制御の設定をしていない条件と同じ定義」となります。

2023/06/06 返信
問いの意味がよくわかりません。

うーん、確かにあまり良問ではないのかもしれませんが、誤りが明確ですので消去法で解けるかと思います。
mail, weekly, include は、解説にある表から誤った説明がされていることがわかります。

mail :ログ切り替え失敗時に指定されたアドレスにメールする
 →回答時はよくわかってなかったけど、mailのみの記載でもサーバ管理人に送られると思って×

「ログ切り替え失敗時にメールするメールアドレス」が×
mail に設定するのは、「ログ切り替えによって削除されるログを送付するメールアドレス」です。

weekly:1週間ごとにログを削除する
 →一週間ごとと決まってるので×

「ログを削除する」が×
weeklyやdaily などは「切り替えのタイミング」を指定するものです。

include:ログ切り替え後に実行するスクリプト
 →スクリプトを記載する必要があるので〇
 (実際にはスクリプトの記載ではなく、ディレクトリ名の指定だったようですが。)

→ 「切り替え後に実行するスクリプト」が×
includeは「設定ファイルが置かれたディレクトリ」を指定するものです。

rotate の説明は正しいものですから○で、
compress についてはおっしゃる通り値を取らない設定項目ですから 設定項目の意味を問うものになっていますが(weekly も同様ですね)、
ほかに正しいものがないので ○ ... と考えてよいのではないかなと思いました。

2023/06/03 返信
未実行のログを自動実行できる?

未起動の ジョブ を自動実行できる ですね。
解説の「実行履歴を管理しており、未実行のジョブを検出できる」の部分が該当するかと思います。

実際にどのようになってるかについては、参考の中盤あたりにある0anacronの中身と
「1時間おきに実行する 0anacron では、「毎日実行するジョブの実行状況の確認」を行い、未実行の場合 anacron を実行します。」
の部分が該当するかなと思います。

2023/04/08 返信
gzipの-dオプションを使ってしまうと、ファイルを展開してしまうのでは?

カレントディレクトリに展開せずに ですね。
展開しないと内容を参照することはできませんが、標準出力に展開すればカレントディレクトリには展開されずに済みます。

こちら LinuC でのお話でしたが参考になるかと思います。
https://mondai.ping-t.com/g/posts/647

2023/03/26 返信
解答が誤っている

man 5 slapd.conf には以下のようにありますね。

allow
:(省略)
bind_anon_cred allows anonymous bind when credentials are not empty (e.g. when DN is empty).
bind_anon_dn allows unauthenticated (anonymous) bind when DN is not empty.

bind_anon_cred は、認証情報が空でないとき (たとえば DN が空のとき) に anonymous bind(匿名バインド)を許可する。
bind_anon_dn は、DN が空ではないときに非認証(anonymous)バインドを許可する。
(どっちの説明にも「anonymous」入っててややこしいですけど、
bind_anon_dn の方は「unauthenticated bind」とあるので「非認証バインド」としてよいと思います)

一応manの通りで間違ってなさそうだなあと思いつつ、勉強がてら実機で検証してみました。
結論からいうと
 bind_anon_cred → 匿名バインドが許可される
 bind_anon_dn → 非認証バインドが許可される
という動作でした。つまりmanおよび今の27550での説明が正しいということになります。

非認証バインド(=DNの指定のみ、パスワード指定なし)を allow bind_anon_cred の環境下で実行すると、以下のようになりました。

# ldapsearch -x -D 'uid=bbb,ou=aaa,dc=example,dc=com' -b 'dc=example,dc=com' '(objectClass=*)'
ldap_bind: Server is unwilling to perform (53)
        additional info: unauthenticated bind (DN with no password) disallowed

「unauthenticated bind (DN with no password) disallowed(非認証バインドは許可されてません)」
というエラーが出ることから、allow bind_anon_cred では非認証バインドは許可されてないということです。
一方、同じコマンドを allow bind_anon_dn で実行すると、検索が行われて結果が返りました。

てことで、教科書を持ってないし他のWebサイトの真偽もよくわかりませんが、実際の挙動に則った説明にはなっているようです。

2023/03/15 返信
firewalldゾーンの解説が誤っていませんか?

ポイントはdropの戻りですかね?
firewalldの設定ファイル(/usr/lib/firewalld/zones/drop.xml)のdescriptionの2文目を読む限り
仕様としては「戻りは許可」になっていそうです。

<?xml version="1.0" encoding="utf-8"?>
<zone target="DROP">
  <short>Drop</short>
  <description>Unsolicited incoming network packets are dropped. 
Incoming packets that are related to outgoing network connections are accepted. 
Outgoing network connections are allowed.</description>
</zone>

このあたりでも戻りは許可と言われてます。
https://atmarkit.itmedia.co.jp/ait/articles/1602/18/news019_2.html

確かに「戻りも不可」=実質的に通信不可 とうたっているサイトも散見されたので
一応簡単に試してみましたが、dropに指定したIPアドレスへのpingも返りましたし、
送信および戻りに関しては遮断されてる感じはしなかったです。

2023/03/15 返信
カーネルとカーネルモジュールのmake installが行っていることについて

あんまり有識でもないんですが、調べてて勉強になったので共有させてもらいますね。

GRUB でどのカーネルを使って起動するようにするのかは、
/etc/default/grubの中の"GRUB_DEFAULT"という項目で定義してます。
で、ちょっと見てみたんですが、この項目の既定値が統一されていないみたいなんですね。
(異なる要因が GRUB と GRUB2 なのか、ディストリビューションなのかまではわからないのですが)

手元の Ubuntu 19.04 では「GRUB_DEFAULT=0(menuentryの0番目)」、
CentOS 7.9では「GRUB_DEFAULT=saved(前回起動時と同じものを使う)」となってました。

新しいカーネルをインストールすると0番目のエントリに追加されるので、
GRUB_DEFAULT=0となっているシステムでは新しいカーネルで起動するようになる、
そうでないシステムでは手動で設定する必要がある、
ということなのかなあと思います。

2023/03/09 返信
コマンドの実行順について

「rm してから ln を実行する」で合っていると思います。
ちなみにシンボリックリンクがある状態で(rmを実行せず)ln 実行したら、ちゃんと怒られました。

# ls /etc/systemd/system/default.target
/etc/systemd/system/default.target
# ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
ln: failed to create symbolic link '/etc/systemd/system/default.target': File exists
2023/02/15 コメント
dpkgコマンドでのパッケージ名・パッケージファイル名の指定について
1行目を堂々と間違えました。ごめんなさい。 正しくは「パッケージファイル名を指定するのは -i または --install の時だけですね。」です。
2023/02/15 返信
dpkgコマンドでのパッケージ名・パッケージファイル名の指定について

パッケージ名を指定するのは -i または --install の時だけですね。
インストールする前に指定する場合は パッケージファイル名
インストールした後に指定する場合は パッケージ名
と覚えるといいと思います。

インストールのときは、インストールするためのパッケージファイルを
インターネット等から入手してインストールしますので、
"パッケージファイル"としての名前が必要です。
(パッケージ名だけだと「そんなファイルはない」と怒られます)

# dpkg -i sl
dpkg: error: cannot access archive 'sl': No such file or directory

-r や -L などの時は、既にインストールした後なのでパッケージの名称を指定します。
インストール後は「パッケージファイル名」で認識されていませんので、
そんなパッケージはインストールされてないぞと怒られます。

# dpkg -L sl_5.02-1_amd64.deb 
dpkg-query: package 'sl_5.02-1_amd64.deb' is not installed
戻る