Unix & Linux

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

1
ssh-agentにsudoのような非アクティブ/アイドルタイムアウト機能がない技術的な理由はありますか?
ssh-agent -t[1]で既存の機能についていくつかの簡単な議論があり、2001年までさかのぼってdebian-devel [2]に非アクティブタイムアウト機能を希望する投稿がありました。SEのページェントに関する同様の議論がここ[3]にあります。 地球の他の部分がどのようにSSHキーを保護しているのか疑問に思います。これが私にとってこのような問題点であると思われる明らかなものを欠いているのでしょうか。具体的には、ansibleなどのスクリプト化されたssh対話について考えています。今日、あなたの選択は次のようです: エージェントでのキーの有効期間を心配なほど長い期間に設定します。1hまたはスクリプトの最大実行時間は偶然かもしれません(多くの人がsudo re-authタイムアウトがそれだけ長くなることを許可しているのではないかと思います!)- seahorse/ / gnome-keyring-daemonこれもほとんどサポートしていません[4] 実行時間の長いスクリプトをベビーシットし、5/10/15分ごとにパスフレーズを再入力し続けます。パスフレーズの入力を1日20回簡単に見ることができます おそらくシェルのTMOUTシェル変数と組み合わせて、この欠けている機能を模倣する独自の自家製ソリューションをハックしてください(その提案についてはfreenode #openssh IRCの人々に感謝します) キーの有効期間を設定しないでください。つまり、エージェントはキーを永久にロードするか、強制終了または再起動するまでキーをロードし続けます sshエージェントの短いタイムアウト、強力なパスフレーズ、認証するロールのタイプごとに異なるキーファイルを使用している場合、これは非常にイライラする1日につながります。 私はgpgkey2sshとスマートカードで実験しましたが、これはこの特定の問題を実際に解決しません:ssh-agent機能が引き続き必要で、秘密鍵が公開されないようにするためだけに5分ごとに再認証する必要はありませんコンピュータがアイドル状態のときにメモリに。 私はそれを間違っていますか? [1] SSHエージェントのデフォルトのタイムアウトの構成 [2] https://lists.debian.org/debian-devel/2001/09/msg00851.html [3] /server/518312/putty-pageant-forget-keys-after-period-of-inactivity [4] https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/129231

2
bashが「>>()」を処理する方法
出力のリダイレクトとプロセスの置換を実験しているときに、次のコマンドとその結果の出力を偶然見つけました。 me @ elem:〜$ echo foo>>(cat); エコーバー バー me @ elem:〜$ foo (はい、最後の空の改行は意図的なものです。) つまり、echoのバーをbashし、通常のプロンプトを表示し、echoのfoo、echoは改行、カーソルをそこに残します。もう一度Enterキーを押すと、プロンプトが新しい行に出力され、カーソルはそのあとに表示されます(空のコマンドラインでEnterキーを押すと期待どおり)。 私はそれがファイル記述子にfooを書き込み、猫がそれを読み取り、2番目のエコーエコーのバーであるエコーのfooを読み取り、その後コマンドプロンプトに戻ることを期待していました。しかし、明らかにそうではありません。 誰かが何が起こっているのか説明してもらえますか?

2
使用しているデバイスツリーblob(dtbファイル)を確認するにはどうすればよいですか?
私は、ベースボードにプラグインされ、Yocto Linuxを実行している組み込みの「Computer on Module」であるTS-4900を使用しています。U-Bootを使用して開始し、おそらくベースボードのモデルに基づいて、開始する正しいdtbファイルを選択します。正しいファイルが見つからない場合は、モジュールの「汎用」ファイルにフォールバックします。 しかし、それはどのように/どこで正しいものを決定しますか?使用した.dtbを確認したり、使用する.dtbを設定するにはどうすればよいですか? 以下はU-Bootの起動メッセージです。 U-Boot 2014.10-g3ac6ec3 (Jan 29 2015 - 17:20:15) CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz Reset cause: POR Board: TS-4900 Revision: C Watchdog enabled I2C: ready DRAM: 1 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 SF: Detected N25Q64 with page size 256 Bytes, erase size 4 …

2
ファイル名の改行を削除する
wgetがログを追加するファイル名を生成するPHPコードがあります。2000以上のファイルを生成しましたが、問題は、ファイルPHP_EOL名の一部として間違って入力したためにファイルを操作できないということです。そのコードはLF/line feed/%0A、その名前に追加さ れます。 そのようなファイル名の例(ブラウザからアクセスしたとき、/ var / www / htmlに置いたとき)拡張子名の前にhttp://xxxx/wget_01_a%0a.txt注意してください%0a 私はめちゃくちゃで、すべてのファイルを検索する名前変更バッチがあればいいのですが、見つかったline feed場合は改行なしで名前を変更するので、http://xxxx/wget_01_a.txt 私がこれをどのように処理するかはよくわかりません。なぜならls、パテを使ってその不要な文字に限定されないすべての特殊文字がになるときのように思えるので?、ターゲットにしたいのはその改行だけです。

2
ホストが生きているかどうかを確認するシェルコマンド/スクリプト?
シェルコマンド(主にbash)のみを使用して、特定のホストが起動しているかどうかを確認する方法をさらに見つけようとしています。理想的には、ホスト名とIPアドレスの両方で機能することができます。現在、私が知っている唯一のネイティブな方法はping です。ここで説明するように、おそらくスクリプトに統合されています。他のアイデアは?

5
非インタラクティブスクリプトのsudo
3つの関数を実行するスクリプトがありますA && B && C。 機能はB一方で、スーパーユーザーとして実行する必要がありますAし、Cしないでください。 私はいくつかの解決策を持っていますが、どちらも満足していません: スクリプト全体をsudo: sudo 'A && B && C' それは実行に悪いアイデアのように思えるAし、Cそれが必要ない場合は、スーパーユーザーとして スクリプトをインタラクティブにします。 A && sudo B && C パスワードを入力する必要があるかもしれませんが、各関数には時間がかかる可能性があるため、スクリプトを非対話形式にして、スクリプトが私を待機しないようにしたいと思います。まあ、それがそもそもスクリプトであるため、実行を監視する必要はありません。 愚かな解決策: sudo : && A && sudo -n B && C 最初に何sudoもしないことを最初に実行するのはばかげているように思われます。また、Aがを超えることはないので、指を交差させなければなりません$sudo_timeout。 仮説的な解決策(存在することを教えてください): sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C' それは最初に私のパスワードを要求し、必要なときだけその資格情報を使用します。 このすべてについてあなたの意見は何ですか?私はそれがかなり一般的な問題だと思うので、その問題の解決策がないことに非常に驚きます(どうですかmake all && sudo …

2
異なる論理セクターサイズで作成されたGPTパーティションテーブルを認識する
GPTを使用してパーティション分割した3TBドライブがあります。 $ sudo sgdisk -p /dev/sdg Disk /dev/sdg: 5860533168 sectors, 2.7 TiB Logical sector size: 512 bytes Disk identifier (GUID): 2BC92531-AFE3-407F-AC81-ACB0CDF41295 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 5860533134 Partitions will be aligned on 2048-sector boundaries Total free space is 2932 …
9 kernel  partition  disk  gpt 

2
オプションの周りに中括弧を使用する場合の規則/標準
Arch LinuxのSYNOPSISセクションのtarのmanページは以下で始まります: tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...] この状況では、manページのさらに下にあるので、中括弧内のオプションの1つを指定する必要があることを完全に理解しています。相互に排他的なオプションのリストの周りに{}を使用することに関して、何らかの標準または規則がありますか? 私が見つけることができるのは、1998年のユーザーのグループチュートリアルだけmanです。 一部のオプションには選択肢の制限されたリストがあります。選択肢のリストはコンマで区切られ、中括弧で囲まれます。 {choice1、choice2} {はい、いいえ} すべての規則(Open Groupのこの規則など)またはマニュアルページは、角かっこ([)または垂直線(|)のみを説明しているようです。

3
pbrunコマンドとsudoコマンドの違いは何ですか?
pbrunコマンドとsudoコマンドの違いは何ですか? 私はpbrun sudo suを実行している人々を見てきました-これはどういう意味ですか?私はsu-を知っています、それはrootユーザーに切り替えようとします。 sudoコマンドと一緒に使用すると、pbrunはsudoにどのような特別な機能を与えますか

2
サウンド出力デバイスをBluetoothヘッドセットに自動的に切り替え、接続時にA2DPプロファイルに強制する
ここではMint 17 + MATEを使用しています。私のBluetoothヘッドセット(Plantronics Backbeat Go2)はシステムに問題なく接続されていますが、この作業を行うために手動で実行する必要があるいくつかの手順があります。 再起動するたびに、端末でpactl load-module module-bluetooth-discoverを実行して、デバイスを接続する必要があります。これをシェルスクリプトに入れて起動時に実行してみましたが、サイコロはありません:( 私のヘッドセットは問題なく自動的に接続しますが、デフォルトでは常にA2DPではなくテレフォニーデュプレックスまたはオフに設定されています。私はA2DPを強制するためにいくつかの異なる戦略を試して失敗しました:( BTヘッドセットをデフォルトの出力デバイスにします。ここでもいくつかの戦略を試してみました...残念ながら、ヘッドセットを接続するたびにpacmdからのインデックスが変更されるようです。そのため、PA confファイルset-default-sinkでデフォルトを強制することはできません。リストされた名前を使用しても機能しないようです-ヘッドセットが存在しない場合、スピーカーに切り替わり、ヘッドセットが接続されている場合、元に戻りません:( これらの問題を解決するためのアドバイスをありがとう!

1
「setcap」は最後の機能を上書きします。複数の機能を設定するにはどうすればよいですか?
node.jsにポート80をリッスンし、コンピューターをシャットダウンする機能を与えたいのですが。最初にこれらの2つのコマンドを順番に試しました。 setcap cap_net_bind_service=+ep /usr/bin/nodejs setcap cap_sys_boot=+ep /usr/bin/nodejs 次に、私のアプリはポート80にバインドできませんでした。私はgetcapで確認しました: # getcap /usr/bin/nodejs /usr/bin/nodejs = cap_sys_boot+ep cap_net_bind_serviceに対してもう一度setcapを実行すると: # getcap /usr/bin/nodejs /usr/bin/nodejs = cap_net_bind_service+ep manページhttp://linux.die.net/man/8/setcapに、複数の機能の設定について何も見当たらないので、必死でいくつか試します。 # setcap cap_net_bind_service=+ep /usr/bin/nodejs cap_sys_boot=+ep /usr/bin/nodejs # getcap /usr/bin/nodejs /usr/bin/nodejs = cap_sys_boot+ep # setcap cap_net_bind_service=+ep cap_sys_boot=+ep /usr/bin/nodejs Failed to set capabilities on file `cap_sys_boot=+ep' (No such file or …

4
非常に長い行での検索と置換のSed代替
レコードの最後に改行を入れなかったプログラムによって生成されたファイルがあります。レコード間に改行を入れたいのですが、簡単なsedスクリプトでそれを行うことができます。 sed -e 's/}{/}\n{/g' 問題は、入力ファイルのサイズが数ギガバイトであるため、sedへの入力行の長さが数GBであることです。sedはメモリに行を保持しようとしますが、この場合は機能しません。私は--unbufferedオプションを試しましたが、それはそれが遅くなるようで、正しく終了することを許可しませんでした。
9 sed 

1
UUIDを使用してディスク全体(/ dev / sda)を参照する
私のシステム(Debianの)上で、私は見ることができますUUID私のディスク・パーティションのすべての識別子を(すなわち/dev/sda1、dev/sda2..) ls /dev/disk/by-uuid/ ただし、それ自体のUUID識別子は表示されません/dev/sda。でディスク全体を参照することは可能UUIDですか? 特定のディスクを参照したいので、これが必要です/dev/sda。 編集 @don_crisstiによって提案されたソリューションは素晴らしいです。ただし、UUIDは、同じモデル/製造元のすべてのハードディスクで同じであり、シリアル番号で一意ではないようにしてください。 を使用するudevadmと、ディスクの属性を確認できます。 udevadm info -n /dev/sda -a ATTRS{model}=="Samsung SSD 840 " ATTRS{vendor}=="0x8086" ATTRS{class}=="0x010700" ATTRS{device}=="0x1d6b" .... UUIDこれらの属性からを生成して、同じモデル/メーカーのディスクが同じになるようにするにはどうすればよいUUIDですか?
9 udev  disk  fdisk  uuid 

1
RetinaディスプレイのGrub(高解像度)
現在、MacBook ProでUbuntuをgrubとともに使用しています。私のmacbookは2560x1600解像度のRetinaディスプレイを持っています。GRUB起動画面のフォントは非常に小さいため、ほとんど読み取ることができません。 この設定でグラブを目に優しい方法で表示するにはどうすればよいですか?gfxモードを渡すだけでGRUB_GFXMODE=640x480は効果がありませんか? 解決策をありがとう。
9 grub2 

3
このコマンドが機能しないのはなぜですか。「ps aux | grep xscreensaver」
グーグルでこれに関するヒットを見つけなかったので、私はあなたに尋ねています: 私はこのコマンドをsshセッションで実行しようとしました。ローカルはDebian Wheezy KDE、リモートはFedora 21 Gnomeです。 ps aux | grep xscreensaver そしてこれは出力です: bash: grep: command not found... 私はこれを今まで見たことがありません、原因は何ですか? システムを更新する数時間前に私は削除するようにマークされたパッケージを確認しませんでした。システムには2人のユーザーしかいないので、私だけがソフトウェアをインストールまたは削除します。 編集#1 コピーされたコマンドと出力は次のとおりです。スペースが2回目にないことに注意してください。 [root@Hostname ~]# ps aux | grep xscreensaver bash: : command not found... [root@Hostname ~]# ps aux | grep xscreensaver bash: grep: command not found...

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