Unix & Linux

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

1
「/etc/init.d」と「/ lib / systemd / system」内のサービスについて混乱しています
私はLinuxの世界ではまったく新しいので、間違ったことを言ってすみません。 Debian 8.5マシンでMongo DBを実行しようとしています。パッケージ(percona.comから事前にビルドされた)をインストールしたとき、次のファイルに気付きました。 /etc/init.d/mongod (1) /lib/systemd/system/mongod.service (2) /etc/init.d/mongodについて 私はこれがupdate-rc.dブート/他の特定のシステム状態で(を介して登録されている限り)呼び出されることを理解しています(これについて技術的になりたくない、私は多くの情報を吸収していますが、これはそれほど重要ではないようです)。 これは私にはまったく問題ありません。スクリプトは多くの初期化を行い、最終的にmongoデーモンを起動します。起動、停止、再起動などの「トリガー」があるようで、私が理解している限り、これらをトリガーできsudo service mongod <action>ます。 /lib/systemd/system/mongod.serviceについて このファイルは同じことを行うように見えます(つまり、mongoを実行します)が、構成が少なく、ExecStartパラメーターの1行だけです。 [Unit] Description=MongoDB (High-performance, schema-free document-oriented database) After=time-sync.target network.target [Service] Type=forking User=mongod Group=mongod PermissionsStartOnly=true EnvironmentFile=/etc/default/mongod ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}" PIDFile=/var/run/mongod.pid [Install] WantedBy=multi-user.target 私の知る限り、これはでトリガーできますsudo systemctl start mongod。 これが起動時に呼び出されるかどうかはわかりません。 なぜこれらの「サービス」ファイルが2つ必要なのか、また1つ(おそらく/ lib / …

1
ファイルのすべての拡張属性のダンプを取得するにはどうすればよいですか?
Getfattrは、選択したファイルの拡張属性のリストをダンプします。 しかし、getfattr --dump filename 唯一のダンプするuser.*名前空間ではなくsecurity.*、system.*、およびtrusted.*名前空間を。通常、手動でファイルに属性を付加しない限り、ユーザー名前空間の属性はありません。 はい、を使用してSELinux情報を取得できることを知っていgetfattr -n security.selinux filenameます。この場合、拡張属性の特定の識別を知っています。 私はこれをrootユーザーとして試しました。私は、完全な機能を持つrootユーザーがこの情報にアクセスできると想定しています。ただし、user。*名前空間ダンプのみを取得します。 問題は、すべての名前空間のすべてのキーの名前を知らずに、ファイルのすべての拡張属性名前空間の完全なダンプを簡単に取得する方法です。
15 linux  files  xattr 


5
許可されていないコマンドの実行時にsudoがパスワードを要求しないようにする
sudoを介してパスワードなしで特定のコマンドを実行するグ​​ループのアクセス許可を付与しました。ユーザーの1人がタイプミスをしたり、間違ったコマンドを実行すると、システムはパスワードの入力を求め、エラーが発生します。これはユーザーを混乱させるため、パスワードの入力を求める代わりにエラーを表示したいだけです。これは可能ですか? これが私のsudoersファイルの例です: %mygroup ALL=(ALL) NOPASSWD:/usr/local/bin/myscript.sh * 間違ったスクリプトを実行する例: # sudo /usr/local/bin/otherscript.sh [sudo] password for user: Sorry, user user is not allowed to execute '/usr/local/bin/otherscript.sh' as root on <hostname>. 望ましい出力: Sorry, user user is not allowed to execute '/usr/local/bin/otherscript.sh' as root on <hostname>. Please check the command and try again. パスワードプロンプトがないことに注意してください。 私のgoogle-fuは失敗し、ユーザーがコマンドの実行を許可されているときにパスワードを要求しないという結果のみを返します。
15 sudo 

1
rsyncがネットワーク上の単一ファイルのデルタ転送を使用しないのはなぜですか?
私はこの質問とこの質問を見てきましたが、彼らは私が見ている症状に対処していないようです。 携帯電話ネットワークで転送しようとしている大きなログファイル(約600 MB)があります。それはそれだけに追加されたログファイルがあるので、それが唯一のINSERTとSQLiteのデータベースに実際にあるが、(それがないので、実行されて、非常にそのような単純な、しかし最後の4Kページの例外を除いて(または多分データ接続が計測されるため、変更(および送信する必要のあるチェックサム)のみが実際に送信されることが重要です。 それでも、従量制の接続(無料のwifiホットスポットなど)でテストを実行しても、データ転送の速度が向上したり、データ転送が減少したりすることはありません。遅いWiFi接続では、1MB / s以下のオーダーで表示され、転送には20分近くかかると報告されています。高速のWiFi接続では、一定の高速化が見られますが、高速化の報告はなく、転送の2回目の試行(2つのファイルが同一であるため、より高速になります)に違いが現れます。 私が使用している(機密情報を削除するためにサニタイズされた)コマンドは次のとおりです: rsync 'ssh -p 9999' --progress LogFile michael@my.host.zzz:/home/michael/logs/LogFile 最後に得られる出力は次のようになります。 LogFile 640,856,064 100% 21.25MB/s 0:00:28 (xfr$1, to-chk=0/1) どんな種類の高速化にも言及していません。 問題は次のいずれかであると思われます。 コマンドラインオプションがありません。ただし、マニュアルページを読み直すと、デルタ転送がデフォルトで有効になっていることが示唆されているようです。無効にするオプションしか表示されません。 サーバーがsshのみを許可するファイアウォールの内側にあるため、rsync over ssh(非標準ポートでも)を使用しています。ただし、rsyncデーモンが実行されていない場合、デルタ転送が機能しないことを明示的に示すものは見ていません。「:」の代わりに「::」表記を使用しようとしましたが、マニュアルページでは「モジュール」が何であるかが明確ではなく、無効なモジュールを指定したためにコマンドが拒否されました。 私は以下を除外しました: ローカルネットワークで実行されないデルタ転送。インターネット経由で転送を実行しようとしているため除外 チェックサム計算によるオーバーヘッド。高速と低速の両方のWifi接続でこの動作を確認しましたが、転送速度は計算限界ではないようです。
15 rsync 

5
Kali Linuxの逆スクロール方向
Kaliのインストールに問題があります。今日更新したので、マウスのスクロールが逆になります。 .Xmodmapメソッドを試してみましたが、「ナチュラルスクロール」オプションもチェックしましたが、成功しませんでした。 誰か助けてくれますか?
15 kali-linux 

2
プログラムはSTDOUT / STDERR以外の場所にどのように出力しますか?それを避ける方法は?
どうやら、使用可能なすべての出力先がわからないようです。stdout(&1)とstderr(&2)について知っています。ただし、両方の記述子をリダイレクトした後でも、コンソールに出力が表示されることがあります! 私が考えることができる最も簡単な例はGNU Parallelです。使用するたびに、引用通知が表示されます。行っても&2>1 > file、通知が表示されます。 そして同じことが当てはまりemergeます。emergeを実行していくつかの問題が発生した場合、一部の情報はにも出力されstdoutませんstdin。 私は主にを使用してこれらの問題を解決しますscriptが、この問題の原因は何だと思います。

1
サービスを開始できませんでした
systemdサービスを作成しました: [Unit] Description=My service [Service] Type=forking ExecStart=/bin/sh $HOME/theFolder/run.sh Restart=on-failure [Install] WantedBy=multi-user.target Alias=mine.service / etc / systemd / systemフォルダーに配置し、mine.serviceという名前を付けました。 私がsudo service mine startそれを実行すると、私に与えられます: mine.service.Unit mine.serviceが見つかりませんでした ---更新----- 最初に実行するsudo systemctl daemon-reloadと、メッセージは表示されませんが、サービスは開始されません。
15 systemd  services 

1
bash-builtinがCPUを100%焼くのを待つ
少なくともGNU bashバージョン4.3.42 x86_64 && GNU bashバージョン4.3.11 x86_64で発生します シグナルによって割り込み可能にするために(SIGUSR1として)sleep & wait $!単純な代わりに使用します。ただし、次のコマンドを実行すると、bashビルトインが奇妙な動作をするようです。sleepsleepwait ターミナル1: cat <( trap 'echo SIGUSR1' SIGUSR1; echo $BASHPID; while :;do sleep 1 & wait $!; echo test; done )& ターミナル2: kill -10 /the pid of the subshell, printed by the previous command/ ターミナル1: ^C (ctrl + C) 次に、CPUを100%燃焼させるサブシェルを取得します。 …


2
NGINXを異なるポート番号のリバースプロキシとして構成する方法
I have NGINX configured like this as a reverse proxy for http requests: server { listen 80; server_name 203.0.113.2; proxy_set_header X-Real-IP $remote_addr; # pass on real client IP location / { proxy_pass http://203.0.113.1:3000; } } また、ssh(ポート22)要求をプロキシしたいです。このような別のサーバーブロックを同じ構成ファイルに追加できますか。 server { listen 22; server_name 203.0.113.2; proxy_set_header X-Real-IP $remote_addr; # pass on real client …
15 nginx 

1
execとteeをログファイルに:これらのbashコマンドを説明します
これは私のbashスクリプトファイルの一番上にあります。 export LOGFILE=$LOGDIRECTORY/${SCRIPT_NAME}.log exec > >(tee $LOGFILE) exec 2>&1 それは何をするためのものか?ここで実行している2つのexecプロセスは何ですか?このように保つと、スクリプトの実行のすべての出力がパイプされ$LOGFILEますが、execステートメントの観点から理解したかったのです。
15 bash 

1
なぜ `find。-type f`は `find .`よりも時間がかかりますか?
findディレクトリの内容を再帰的にたどるには、とにかく、指定されたパスがファイルまたはディレクトリに対応するかどうかを確認する必要があるようです。 ここにいくつかの動機と、find . -type f実際にが遅いことを自分に納得させるためにローカルで行ったことがありますfind .。GNU findのソースコードをまだ掘り下げていません。 そのため、$HOME/Workspaceディレクトリ内のいくつかのファイルをバックアップし、プロジェクトの依存関係またはバージョン管理ファイルのいずれかであるファイルを除外しています。 だから私はすぐに実行される次のコマンドを実行しました % find Workspace/ | grep -v '/vendor\|/node_modules/\|Workspace/sources/\|/venv/\|/.git/' > ws-files-and-dirs.txt findパイプ処理は不適切grepな形式かもしれませんが、否定正規表現フィルターを使用する最も直接的な方法のように思えました。 次のコマンドでは、findの出力にファイルのみが含まれ、著しく時間がかかりました。 % find Workspace/ -type f | grep -v '/vendor\|/node_modules/\|Workspace/sources/\|/venv/\|/.git/' > ws-files-only.txt これらの2つのコマンドのパフォーマンスをテストするためのコードをいくつか作成しました(とdashを使用してtcsh、シェルが存在するはずのない影響を除外するためだけに)。tcsh彼らは本質的に同じだから結果が省略されています。 私が得た結果は、約10%のパフォーマンスペナルティを示しました。 -type f これは、さまざまなコマンドの1000回の反復の実行にかかった時間を示すプログラムの出力です。 % perl tester.pl /bin/sh -c find Workspace/ >/dev/null 82.986582 /bin/sh -c find Workspace/ | …
15 find  performance  gnu 

1
debianのmkinitcpio.confと同等のものは何ですか?
構築に使用したフックinitrd.imgが私のdebianで正しいことを確認したいの/etc/mkinitcpio.confですが、Archlinuxのようなファイルを見つけることができません。debianでこのファイルに相当するものは何ですか?そのファイルを編集しましたか?
15 initramfs  initrd 

2
Ubuntu 9.04での脆弱性のデモ
ITセキュリティのクラスでは、学生に特権の昇格を示したいと思います。そのために、私はexploit/linux/localMetasploit Frameworkのリストを調べ、exploit/linux/local/sock_sendpage2009年8月から(とりわけ)発見しました。 2009年4月から32ビットUbuntu Server 9.04(http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso)でVMをセットアップしuname -rました2.6.28-11-generic。エクスプロイトの説明によると 2001年5月以降のすべてのLinux 2.4 / 2.6バージョンが影響を受けると考えられています。2.4.4から2.4.37.4まで。2.6.0から2.6.30.4まで したがって、私がセットアップしたUbuntuサーバーはデモンストレーションに適しているはずです。しかし、私はそれを機能させることができませんでした。 サーバーに(通常の)ユーザーを追加すると、SSHアクセスが機能します。Metasploit Framework内から、を使用してSSHセッションを作成できますauxiliary/scanner/ssh/ssh_login。ただし、エクスプロイトを実行すると、 [*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes) [*] Exploit completed, but no session was created. DEBUG_EXPLOITtrue に設定しても、それ以上の情報は得られません。/tmpMetasploit SSHセッション内からも書き込み可能です。 $ sessions -c "touch /tmp/test.txt" [*] Running 'touch /tmp/test.txt' on shell session 1 ([redacted]) $ sessions -c "ls …

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