Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

2
エコーを使用して機密データをchpasswdに渡すことは安全ですか?
私は大量にしようとしています使用して、いくつかのユーザーアカウントのパスワードを設定しますchpasswd。パスワードはランダムに生成され、出力されるstdout必要があります(書き留めるか、パスワードストアに保存する必要があります)chpasswd。 素朴に、私はこれをこのようにします { echo student1:$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '') echo student2:$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '') } | tee >(chpasswd) ただしecho、引数は通常他のユーザーに表示されるため、コマンドライン引数として新しいパスワードを渡すことを心配していますps -aux(ただし、にはecho行が表示されていませんps)。 返されたパスワードに値を追加してからそれを渡す別の方法はありますchpasswdか?

2
バックスラッシュドットはコマンドとして何を意味しますか?
私がインストールしたソフトウェアは、プロファイルに次のような行を挿入しました: [ -s "$SOME_FILE" ] && \. "$SOME_FILE" dot .はの同義語であることがわかっているsourceので、これはファイルをソースしているだけではないかと思いますが、これまで見たことはありません\.。それは他に何かをしますか? DVに関する編集:「バックスラッシュドット」を検索./すると、実行可能ファイルを呼び出すタイミングに関する質問man sourceが表示され、マンページが\.表示されなくなります。私は他に何を試すべきかわからないので、質問です。 編集2:関連する質問を見る バックスラッシュでシェルコマンドを開始する理由 コマンドの先頭のバックスラッシュ バックスラッシュがエイリアスの展開を妨げる理由 エイリアスによってシャドウされているコマンドを実行する
17 bash 

1
$(command $ arg)を引用する正しい方法は何ですか?
長年私を悩ませてきたこの難問を解決する時が来ました... 私は時々これに会ってきました、そして、これが行く方法であると思いました: $(comm "$(arg)") そして、私の見解は経験に強く支えられていると思いました。しかし、私はもうよくわかりません。Shellcheckでも決心することはできません。両方です: "$(dirname $0)"/stop.bash ^-- SC2086: Double quote to prevent globbing and word splitting. そして: $(dirname "$0")/stop.bash ^-- SC2046: Quote this to prevent word splitting. 背後にあるロジックは何ですか? (これはShellcheckバージョン0.4.4、btwです。)

2
Linuxカーネルが「Retpoline」に対応しているかどうかを確認する方法は?
「Spectre」セキュリティ脆弱性については、リスクを軽減するソリューションとして「Retpoline」が導入されました。ただし、次のような記事を読みました。 を使用せずCONFIG_RETPOLINEにカーネルをビルドすると、サント記号はエクスポートされないため、retpolineを使用してモジュールをビルドしてからロードすることはできません。 ただし、retpolineを使用してカーネルをビルドすると、retpolineでビルドされていないモジュールを正常にロードできます。(ソース) カーネルが「Retpoline」が有効になっているかどうかを確認する簡単で一般的な/一般的な/統一された方法はありますか?これは、インストーラーがインストールするカーネルモジュールの適切なビルドを使用できるようにするためです。

2
なぜmvはcpよりもずっと速いのですか?間違ったmvコマンドから回復するにはどうすればよいですか?
FileZillaで誤ってフォルダーを別のフォルダーにドラッグアンドドロップします。 ~/big_folder ~/some_other_folder 移動したフォルダは非常に大きなものです。数十万のファイル(node_modules、小さな画像ファイル、多くのフォルダー)が含まれています とても奇妙なのは、マウスを離すと移動が完了するということです。フォルダ「big_folder」は「some_other_folder」に移動されます。 ~/some_other_folder/big_folder (全く存在しないbig_folderで~/移動した後に) それから私は間違いに気づき、元に戻りますが、FileZillaと端末の両方で失敗します。 次に、cp -rファイルをコピーし直す必要があります。なぜなら、これらのファイルにアクセスするサーバー側コードがあるからです~/big_folder そして、待つことは永遠に続きます... 私は何をすべきか? ところで、ここにFileZillaからの出力があります(元に戻せなかったことです): Status: Renaming '/root/big_folder' to '/root/some_other_folder/big_folder' Status: /root/big_folder -> /root/some_other_folder/big_folder Status: Renaming '/root/some_other_folder/big_folder' to '/root/big_folder' Command: mv "big_folder" "/root/big_folder" Error: mv /root/some_other_folder/big_folder /root/big_folder: received failure with description 'Failure'
17 cp  mv 

1
VirtualBoxマシンを完全に分離する
VirtualBoxを使用して、ホストコンピューターにアクセスできないソフトウェアをインストールします(逆も同様です)。ただし、ゼロデイエクスプロイトを実行して何ができるかを確認するなど、より「危険な」ことを試みる可能性も想定しています。 ホストから仮想マシンをどの程度分離できますか?ゲストとホストの間にファイアウォールを設定する必要がありますか(できますか?)。ゲストアドオンはセキュリティリスクですか?共有ディレクトリはどうですか? 現在、ゲストマシンはGNU / Linux Debianテストを実行しています。

1
中断時にタスクはどのように「フリーズを拒否」できますか?
昨日、ラップトップを閉じたときに、すぐにスタンバイモードになりませんでした。ログによると、それは行おうとしていましたが、タスクはフリーズを拒否しました: Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0): これは、システムが実際に停止するまで数時間続きました。syslog中のようなメッセージに満ちていたこの質問ので、systemd何度も何度も試みていました。 これはどのように起こりますか?スケジューラーがそのアプリケーションのスケジューリングを停止できないのはなぜですか?そして、それは効果的に凍結されていますか?複数のSTOPコマンドがあり、そのうちの1つは適切に要求し、もう1つは強制的にフリーズすることを読みました。なぜsystemdこれを使用しなかったのか、なぜこれが機能しなかったのですか?
17 debian  kill  suspend 

4
デフォルトでbash履歴置換がまだ有効になっているのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 去年閉鎖されました。 なぜbashがデフォルトで履歴置換をまだ有効にしているのか知っていますか?私.bashrcはset +H長年にわたってこの機能を取り入れてきましたが、他の人たちはまだこの機能に噛まれています。 ほぼすべての人がコピーアンドペースト機能を備えた端末を使用しており、readlineライブラリでコンパイルされたbash と履歴の置換が対話型シェルでのみデフォルトで有効になっていることを考えると、この機能を使用する理由は本当にありますか?すべてのシェルでデフォルトで無効になっている場合でも、既存のスクリプトは破損しません。 履歴置換が壊れている理由がわからない場合は、これを試してください。 $ set +H # disable feature history substitution $ echo "WTF???!?!!?" WTF???!?!!? $ set -H # enable feature history substitution $ echo "WTF???!?!!?" echo WTF???echo WTF???!?!!? WTF???echo WTF???!?!!? (それはすべてのスクリプトのために、デフォルトでは無効と機能を実行する前に結果を確認するために存在していた場合、明らかな特徴は、大きな問題がありますshopt -s histverify。) こちらもご覧ください: 感嘆符「!」がbashを混乱させることがあるのはなぜですか? Bashの履歴にこのコマンドが記録されないのはなぜですか? 強打をエコーする方法! Bash:同じ行内の二重引用符の後の単一引用符内の履歴展開


2
Vimでテキストファイルを編集してもtail -fが更新されない
tail -f a.txtというファイルの更新を監視するために使用していますa.txt。 ls -a >> a.txt2番目の仮想コンソールのようなものを使用してファイルを更新すると、最初のコンソールで変更がリアルタイムで表示されます。 2番目の仮想コンソールでVimを使用してファイルを更新すると、最初の仮想コンソールには変更が表示されません。 私は必ずしもそれがそのウィンドウで更新をトリガーすると期待するわけではありません-しかし、なぜこれがtail -fコマンドを実行している端末を正確に更新しないのですか?
17 files  vim  tail 

3
予期しないトークン「fi」の近くの構文エラー
必ずしも答えが欲しいわけではありませんが、誰かが私にいくつかの文献や例を教えてくれれば。私はそれを把握したいと思います。 スクリプトを実行すると、エラーが表示されます。 予期しないトークンの近くの構文エラー fi 私はif自分のif声明にコメントをつけ、追加することで私の声明に私の問題があることを推測しecho "$NAME"ました/etc/。 変更を加えると、#from ifを削除してto にfi追加する#と wc -c "$NAME"、上記の構文エラーが表示されます。;その間に追加しました]。またthen、解像度なしで次の行に移動しました。 #!/bin/bash for NAME in /etc/* do if [ -r "$NAME" -af "$NAME" ] then wc -c "$NAME" fi done
17 bash 

1
ls -l vs ls -lL
これは重複しているように見えますが、以前に尋ねられた質問は私の質問に答えません そのため、シェルで/homeディレクトリに移動し、そこを呼び出すディレクトリを作成しますplay 次に、このディレクトリに移動して/home/play、2つのファイルを作成します。1つ目はテキストファイル、2つ目は端末へのシンボリックリンクですtty 今使用するls -lと、次の出力が得られます どこに置くかのようにls -lL私はこれを得る この違いはどういう意味ですか?疑問符は何を表していますか?

1
`<Cb> m`またはtmuxペインを右クリックすると何ができますか?
私は通常のtmuxユーザーであり、通常はset -g mouse onand viバインディングで使用します。時間が経つにつれて、ドキュメントを簡単に見つけることができない動作に気付きました。基本的に、tmux複数の分割ペインを使用するセッションでは、ペインを右クリックするかヒット&lt;C-b&gt;mすることで、ペインセパレータのbg / fg色を反転することでそのペインを「選択」し、太い境界線の印象を与えます。 ここで実際に何が起こっているのですか?この機能をどのように使用できますか?
17 tmux 

1
どのLinuxディストリビューションで/ etc / os-releaseの存在に依存できますか?
Linuxディストリビューションの名前とバージョンを決定する方法を見つけようとしています。これは、ほとんどの(理想的にはすべての)最新のディストリビューションで動作します。私が/etc/os-release試したディストリビューション(CentOS、Debian)に必要な情報が含まれていることに気付きましたが、その存在に依存することはどれほど安全ですか?などのコマンドにuname -aは実際には同じ情報が含まれておらずlsb_release、たとえば最小のCentOSには存在しないようです。 どのディストリビューションに付属しているの/etc/os-releaseかを正確に調べる簡単な方法はありますか?また、されて/etc/os-release含むことが保証NAME、VERSIONおよびPRETTY_NAMEフィールド?

4
スクリプトがルートでない場合にスクリプトの実行を停止する方法(「ルートとして実行されていません!終了しています...」をエコーし​​ます)
ここに私のソースがあります: #!/bin/bash echo "Running script to free general cached memory!" echo ""; echo "Script must be run as root!"; echo ""; echo "Clearing swap!"; swapoff -a &amp;&amp; swapon -a; echo ""; echo "Clear inodes and page file!"; echo 1 &gt; /proc/sys/vm/drop_caches; echo ""; キャッシュなどをクリアし、ターミナルでrootとして実行する必要があることをエコーし​​ます。基本的に、rootとして実行されていないことを検出した場合、スクリプトの実行を停止するだけです。 例: "Running script to free general …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.