20211130のLinuxに関する記事は16件です。

LinuC2を受けようと思ったのできっかけや勉強方法を書く

概要 本記事はMDC Advent Calendar 2021の1日目の記事です。 LinuC2の個人的勉強方法やきっかけを書きます MDC Advent Calendar一発目なので、難しいことは抜きに書こうと思いました そもそもLinuCって? https://linuc.org/ Linuxシステムの構築・運用に関する認定資格 インフラエンジニアが持っていて非常に役に立つ資格の一つ(※個人的な感想です) 1~3と試験が分かれている 昔の名前はLPIC きっかけ 過去に取得していたLPIC1の資格認定の有意性(あなたはLinuxの知識がありシステム設計に活かせますという認定、5年間が期限)がそろそろ切れるため 有意性が切れることは、過去に資格を持っていたけど現在のシステムではスキル活用できません、を意味します 技術は常に新しくなるので、LinuCを継続して取得することでLinuxに関するスキルを継続して身につけようということです どうして受けようと思ったか 昨今LinuC1,2はVersion 10.0と内容を改定し、クラウド時代に活躍する全てのIT技術者が身につけておきたい内容を網羅すべく生まれ変わったとあり、興味がでてきた Linuxは基本的なコマンドを利用するレベルであり、いまやAWSでサーバ構築やサービス起動がポチポチできる時代なのでLinuxの細かい知識はいらないのではと感じていましたが、クラウドサービスを使いこなす上で、クラウドサービスが裏でどの作業を自動で行ってくれているのか理解するため、クラウドサービスのありがたみをより深く享受するために、受けようと決意しました LinuC2の学習範囲(2021/12時点) LinuC2は201試験、202試験と分かれており、両方の試験に合格する必要があります 詳細は公式の学習範囲を参照 太字は個人的にとても勉強になったところです。ボリュームマウントなどはインフラエンジニアの基礎知識ですね 試験区分 テーマ 一言で言うと 201試験 主題2.01:システムの起動とLinuxカーネル GRUB 主題2.02:ファイルシステムとストレージ管理 マウント、ファイルシステム、ボリューム作成 主題2.03:ネットワーク構成 インタフェース設定、ルーティング 主題2.04:システムの保守と運用管理 make、バックアップ、リソース確認コマンド、運用ツール、Ansible 主題2.05:仮想化サーバー 仮想マシン、KVM 主題2.06:コンテナ Docker 202試験 主題2.07:ネットワーククライアントの管理 DHCPサーバー、認証方法、LDAP構築 主題2.08:ドメインネームサーバー BINDの構築 主題2.09:HTTPサーバーとプロキシサーバー Apache、Nginxの構築、HTTPS化 主題2.10:電子メールサービス Postfix設定 主題2.11:ファイル共有サービス Samba,NFS設定 主題2.12:システムのセキュリティ パケットフィルタリング、OpenSSH、VPN 主題2.13:システムアーキテクチャ 可用性、リソース予測、xaaS、クラウドの典型アーキテクチャ 学習方法 教材 Linux教科書 LinuCレベル2 Version 10.0対応 いわゆるあずき本です。公式参考書にもなっています LinuCは非常に勉強内容がボリューミーなので、章立てて体系的に学ぶためにも教科書は必須だと思います Ping-t 色々な資格の問題集サイト。問題数が多く実際の試験のイメージにも近いので非常に良いです。スマホ版もあるので電車内でもできます 対象:CCNA/CCNP、LinuC、LPIC、HTML5、OSS-DB、オラクルマスター、ITパスポート、ITILファンデーション 無料だとLiunC101,CCNAなどいくつかしか見れないため、プレミアム会員登録しました 1ヶ月2400円と割高なので、3ヶ月か6ヶ月がおすすめです。私は6ヶ月にしました 以下は問題集の問題選択画面です。章ごとにランダムに解くことができます 学習方法 あずき本を章ごとに読み、重要な単語やコマンドはメモを取る(書いて覚えるタイプなので紙に書き写してました) Ping-tで対応する章の問題を解く 20問解き、間違えたものは正解するまで解く 20問正解したら次の20問を解く、という流れでその章の問題を全問潰します 全問潰したらもう1周問題を解きます 次の章に移り以下繰り返し 全章終わったら、Ping-tの問題集で全範囲から100問ほどランダムに抽出し解きます。この時点で80%正解なら試験を受けます 合格したの? 201試験は合格、202試験はまだ未受験です… 受講のきっかけにあったLPIC1の有意性はとっくに切れているので(?)、自分とPing-tのプレミアム期間との戦いです 感想 勉強していて、LinuCはアプリ・インフラ問わず受けるべき資格だと改めて感じました Ping-tが本当にオススメです。ぜひ周りに広めたい。AWS認定ソリューションアーキテクトアソシエイトの問題も作成中らしいので今後に期待 Ping-tのプレミアム期間が余ればHTML5にも挑戦したいです 記事を読まれた皆さんも是非エントリーをお願いします! 私が202試験を受けるように誰かお尻を叩いてください 明日の記事は、@omix222 さんの資格試験と自己成長についてです!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PATHを通すとは?

PATHを通すとは 本来、コマンドはフルパスで実行しなくては実行できないが、 PATHを通すことで、PATHの部分を省略してコマンドを実行することができます。 なぜPATHを通すのか 普段何気なく使っているコマンド(ex.ls, cat)の実態はプログラムです。 多くは/binや/sbin配下に設定されています。 ではなぜlsコマンドのみで実行されるのか。 それはPATHが通っているからです。 PATH変数を参照してみましょう。 % echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin 上記の結果は、左から優先して実行されます。 % which ls /bin/ls lsコマンドの実態は、/bin配下にありPATHを辿っていけばたどり着くため、lsのみで実行可能というわけです。 ここでもしPATHが通っていなかった場合はwhichコマンドでエラーとなります。 PATHの通し方 .zshrcに $ export PATH=$PATH:通したいPATH を追記します。 ここではexportコマンドを使い、PATH変数にPATHを追加しています。 $PATHは、今までのPATHを表しています。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux入門 2-1 シェルスクリプトの基礎(/bin/bash)

はじめに Linux初学者である自分向け用の記事です。Udemyの動画講座を参考にしました。 僕の勉強法は動画を見る→実際に動かしてみる→問題演習という流れです。 前回まで:Linux入門 1-3 2. シェルスクリプト(問題、テスト、演習、発展問題) サポートしているシェルを一覧表示 ファイル作成(viコマンドで拡張子は.sh) 実行(※とても重要!!設定を忘れない!) $ chmod 755 ファイル名 #パーミッション変更 シェルスクリプトの実行 $ ./test.sh 2-1. 変数の使い方 ex1)変数の基本 ファイルの中身 実行 ex2)コマンドの実行1 ファイルの中身 実行 ex3)コマンドの実行2 ファイルの中身 実行 ex4)システム変数 ファイルの中身 実行 2-2. 引数の使い方 引数・・・実行する際にシェルに渡す値 ./test.sh a b #a,bが引数 ex1)base4_1.sh ファイルの中身 実行 ex2)base4_2.sh(ほかのbashファイルを実行する場合) ファイルの中身 実行 2-3. 配列の使い方 配列の作成 fruits=('banana' 'apple' 'grape') 配列の表示方法 # 配列の中身をすべて表示 echo "${fruits[@]}" # インデックス0の要素を表示 echo "${fruits[0]}" # インデックスを表示 echo "${!fruits[@]}" # 配列の要素の数を表示 echo "${#fruits[@]}" # 配列のインデックス3にlemonを追加 fruits[3]='lemon' # 配列のインデックス2を削除 unset fruits[2] ex1) ファイルの中身 実行 2-4. 標準入出力、ファイル入出力 標準入出力 標準入力: ターミナルからの値の読み取り 標準出力: ターミナルでの値の表示 read var # 標準入力 echo var1 = $var # 入力結果表示 read var1 var2 var3 # 入力結果から3個変数を設定 echo var1 = $var1, var2 = $var2, var3 = $var3 read –p ‘var1 : ’ var1 # 文字付きの標準入力 read –sp ‘password : ‘ password # シークレットモードでの標準入力 read –a names # 配列(Array)入力 ex1)標準入力 ファイルの中身 実行 ex2)3個変数を設定 ファイルの中身 実行 ex3)文字付きの標準入力 ファイルの中身 実行 ex4)シークレットモードでの標準入力 ファイルの中身 実行 ex5)配列(Array)入力 ファイルの中身 実行 ファイル入出力 >: 上書き echo ‘hello’ > test.txt # 現在いるディレクトリのhello.txtファイルを作成(上書き)してhelloを書き込む >>: 追記 # 現在いるディレクトリのtest.txtファイルを作成(追記)してhelloを書き込む ex1) ファイルの中身 実行 2-5. 制御文(if, case, switch) if文の書き方(3通り) ① if test 条件文; ② if [ 条件文 ]; ③ if [[ 条件文 ]]; ex1) ファイルの中身 実行 ex2) ファイルの中身 実行 ex3)比較 #文字列で等しいか等しくないか = != # 数値比較 -eq(=), -ne(!=), -lt(<), - le(≦), –gt(>), –ge(≧) ファイルの中身 実行 ex4)条件文1 and 条件文2の場合、条件文1,条件文2を両方満たす場合に実行 書き方は、以下の4通り if [ 条件文1 ] && [ 条件文2 ]; if [ 条件文1 –a 条件文2 ]; if [[ 条件文1 && 条件文2 ]]; if test 条件文1 && test 条件文2; ファイルの中身 実行 ex5)条件文1 or 条件文2の場合、条件文1,条件文2のどちらかを満たす場合に実行 書き方は、以下の4通り if [ 条件文1 ] || [ 条件文2 ]; if [ 条件文1 –o 条件文2 ]; if [[ 条件文1 || 条件文2 ]]; if test 条件文1 || test 条件文2; ファイルの中身 実行 ex6)否定を表す条件文(3つ) if ! test 条件文、 if [ ! 条件文 ]、if [[ ! 条件文 ]] ファイルの中身 実行 ex7)コマンド処理の条件文 cmd1 && cmd2 #cmd1が正しく実行されたらcmd2を実行 cmd1 || cmd2 #cmd1がエラーならcmd2を実行 cmd1 && cmd2 || cmd3 #cmd1が正しく実行されたらcmd2が実行されて、cmd1がエラーならcmd3を実行 実行 ex8)ファイルの存在チェック if [ -e ファイル名 ]; #ファイルもしくはディレクトリの存在確認 then else fi if [ -f ファイル名 ] #ファイルが存在しディレクトリでなくファイル if [ -d ファイル名 ] #ディレクトリが存在するか if [ -s ファイル名 ] #ディレクトリ or 中身のあるファイルか if [ -wファイル名 ] #書き込み権限あるか if [ -xファイル名 ] #実行権限あるか if [ fileA –nt fileB] #fileAがfileBより新しいか if [ fileA –ot fileB] #fileAがfileBより古いか ファイルの中身 実行 小テスト 小テスト1) 次のうちShellScriptで正常終了を表すものはどれでしょうか? exit 0 ShellScriptでは戻り値0が正常を意味します。また、シェルの終了にはexitを実行します。 小テスト2) コマンドlsの結果を変数varに格納するにはどのように記載すればよいでしょうか? var=`ls` 変数にコマンド実行結果を格納するにはバッククォート(`)もしくは$(command)とします。 小テスト3) ShellScriptで配列arrayの長さを表す書き方はどれでしょうか? ${#array[@]} これが配列の長さを表します 小テスト4) 全引数を表す変数はどれでしょうか? $@ これは全引数を表す変数です 小テスト5) 標準入力でvarに値を設定するにはどのように記載すればいいでしょうか? read var readコマンドを用いるとvarに標準入力で値を設定できます 小テスト6) if文の書き方として正しいものを選んで下さい if [ condition ]; then fi []を使用した正しいif文の書き方です。ifの後とcondition前後に空白を入れてください 小テスト7) ファイルの存在を確認するif文を選択してください if [ -f file.txt ] ディレクトリでなくファイルの存在チェックは-fを用います  演習問題 ex1) • 引数を2つ取ります • 1つ目の引数が性別(man, woman)、2つ目の引数が年齢(age) • 第1引数がmanの場合、Manと表示、womanの場合Womanと表示 • 第2引数が20未満の場合Child、20以上60未満の場合Adult、60以上 の場合はElderlyと表示してください。 • 標準出力はコロン(:)でつないで表示してください。例えば Man:Adult, Woman:Childと表示します。 • 以下の場合はexit 1で終了してください。 • 引数が2つでない場合 • 1つ目の引数がman woman以外の場合 • 2つ目の引数が0以上でない場合 ./ex1.sh man 20 => Man:Adult ./ex1.sh woman 70 => Woman:Elderly ./ex1.sh man 15 => Man:Child ex1 Answer) 実行結果 ex2) • まず、現在いるディレクトリのファイル一覧を表示します • 2回、値を標準入力で受け付けて、変数に設定します • 1つ目の入力がファイル名とし、2つ目の入力は任意の値としま す。 • ファイルが存在する場合は、そのファイルに2つ目の値を追記 します。 • ファイルが存在しない場合は、「ファイルが存在しません」と 表示してください。 ex2 Answer) 実行結果 To Be Continued... Linux入門 2-2 へ
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【合格体験記】LPIC2(Level2) ver4.5

本記事の概要 LPIC-2(Level2)version4.5 を受験し取得したので勉強方法を備忘録として投稿します。 LPICを受けようと思っている方や、現在勉強している方がこの記事を参考の一つにしていただけたら幸いです。 使用した教材 参考書 ・Linux教科書 LPICレベル2 Version 4.5対応) ・Linux教科書 LPICレベル2 スピードマスター問題集 Version4.5対応 WEBサイト ・Ping-t 勉強の流れ(201試験編) ・Ping-tのWEB問題集を分野毎に解いていき、間違えた問題は解答を読んでノートにまとめる。 201の分野は運用に関わる問題・コマンドが多く、業務中に扱うコマンドがいくつかあったので 覚えるのがめちゃくちゃ大変ということではありませんでした。(後述の202が地獄...) ↓ ・全体範囲を終えたら、全問ヒットになるまで繰り返す 大体2週間ほど時間をかけてPing-tを続けました。 ↓ ・スピードマスター問題集を解く。 LPIC-1の時もですが、スピードマスター問題集はping-t後の知識の総括としてとても便利だと思います。 また、巻末の問題集も試験本番のレベルと合っていて試験対策としては必須だ思います。 ↓ ・Ping-tのWEB問題集で模擬試験モードをやりまくる LPIC-1のときと同じでとにかく解く。 (今回はコマ門は実施しませんでした。) 試験結果(201試験) 受験日:2021年5月30日 スコア:540 合格ライン:500 結果:pass テストセクションの情報 正解率 Capacity Planning 87% Linux Kernel 55% System Startup 88% Filesystem and Devices 66% Advanced Storage Device Administration 87% Networking Configuration 72% System Maintenance 50% かなりギリギリで合格... 個人的にはもっと得点出来ているかなと思っていたのですが、 まだまだ精進が足らんと思い知らされる結果に 勉強の流れ(102試験編) 201の結果はあまり良くなかったが、とにかく気持ちを着替えて勉強開始。 流れは201の時と大体同じ。 ・Ping-tのWEB問題集を分野毎に解いていき、間違えた問題は解答を読んで自分なりにノートにまとめる。 たくさんの方が合格体験記で言っているように、とにかく覚える量が半端ない! まとめたノートのページ数もこれまでの試験対策の中で最長を記録しました。 途中、confファイルの設定値をこんなに暗記する意味はあるのか...と投げ出しそうになりました。 ↓ ・全体範囲を終えたら、全問ヒットになるまで繰り返す ↓ ・全問ヒットになるまでやり込んだら模擬試験モードをたくさんやる 私の場合は、模擬試験モードで間違えた問題が30~40問くらいになるまでは模擬試験、 間違えた問題が溜まってきたら自由演習で復習。という流れでやってました。 ↓ ・スピードマスター問題集を解く。 やはりスピマスは正義。本番の際に似たような問題が4~5問出題されたので、 進研ゼミで見たことある状態で解けました。 試験結果(202試験) 受験日:2021年11月28日 スコア:570 合格ライン:500 結果:pass テストセクションの情報 正解率 Domain Name Server 75% Web Services 81% File Sharing 75% Network Client Management 81% E-Mail Services 50% System Security 78% 202試験もギリギリ合格という結果に。 勉強しているときから自覚はありましたが、メールの分野がまだまだですね。 受験日が前回の201から約半年後という点に気づいた方はいらっしゃるでしょうか。 私生活が忙しくなってしまった事情もありますが、とにかく覚える量が多すぎてモチベーション維持が難しい! これから受験を考えている方は覚悟を持って挑んでください。 受験してみての感想 LPICは覚えゲーなので202が一番むずかしいという情報は仕入れていましたが、ある意味期待通りでしたね。 個人的に暗記が苦手なので、得意な人はもう少し楽に取得できるのかなと思います。 各サーバの役割を体系的に学習出来たのは良かったです。今後仕事に活かせるといいな... この記事を開いていただき、また、 ここまで読んでいただきありがとうございました。 今年中に304取得目指してがんばります。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gtk3アプリ RiderとMySqlとDapper

前提条件 MySqlのインストール MySql WorkBenchのインストール DapeprをNuGetからインストール DapperExtensionをNuGetからインストール MySQL WorkBenchでDBを作成する RiderにMySqlに接続するツールがあり、スキーマ、テーブル、カラムが作成できます。 DBの作成の仕方がわからなかったため、MySql WorkBenchからDbだけを作成します WorkBenchでDbだけ作成します。 DBへ接続 DBを作成したらRiderから接続します。 DataBaseにスキーマ名を記入します。 Rider上のテーブルの作成 DBち(スキーマ)を作成するとテーブルを作成できるようになります。 Rider上でのDBの操作 カラムを追加したり、外部キーを追加したりできます。 NuGetからMySql.Dataをダウンロード NugetからMySqlクライアントMySql.Dataをインストールします スキーマからモデルを生成する ここからソースをダウンロードし、Riderのフォルダの中に格納しすぐモデルファイルを作成できるようにします。 MySql用にカスタマイズしていきます。 右クリックから実行しモデルファイルを生成します。 テストソース using System; using System.Linq; using MySql.Data.MySqlClient; using Dapper; using DapperExtensions; namespace mySql { class Program { public class test { public Int64 id { get; set; } = 0; public string code { get; set; } = null; public string name { get; set; } = null; } static void Main(string[] args) { MySqlConnectionStringBuilder b = new MySqlConnectionStringBuilder(); b.Server = "localhost"; b.Port = 3306; b.Database = ""; b.UserID = ""; b.Password = ""; MySqlConnection con = new MySqlConnection(b.ConnectionString); //MySQL形式でSQLを書き出す DapperExtensions.DapperExtensions.SqlDialect = new DapperExtensions.Sql.MySqlDialect(); //Dapperの_の入ったカラム名を有効にする。 Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true; con.Open(); string sql = "select * from test;"; var result = con.Query<test>(sql); foreach(var p in result) { Console.WriteLine("ID:" + p.id + " 名:" + p.name); } test test1 = new test(); test1.name = "test2"; test1.code = "java"; con.Insert<test>(test1); string sql3 = "select * from test Where code = 'java';"; var test_result2 = con.QueryAsync<test>(sql3); Console.WriteLine(test_result2.Result); foreach (test test_t in test_result2.Result) { con.Delete<test>(test_t); } var result5= con.QueryAsync<test>(sql); Console.WriteLine(" count " + result5.Result.Count()); con.Close(); } } } 課題 DapperExtensionのInsertAsyncなどAsync系が実行できなかった。 続く
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Linux】【zcat】圧縮ファイルの中身を解凍せずに確認する方法

awsのs3環境で作業をしていると、gzファイルなどの圧縮ファイルを扱うことが多いです。 大体はファイルの移動で終わりますが、データが正しいか中身を確認したい時もあります。 ファイルを別ディレクトリにコピーし、解凍後にcatコマンドやviコマンドで確認することもできますが、正直そんな事をしていたら非効率ですので、そんな時に以下コマンドが役に立ちます。 zcat 使い方は簡単で、cpコマンドのオプションとして語尾に付けるだけです。 aws s3 cp s3://xxxx/xxxx/test.tsv.gz - | zcat 下記のようにオプションを付け足すことで、レコード件数を確認出来たりもします。 aws s3 cp s3://xxxx/xxxx/test.tsv.gz - | zcat | wc -l awsではなく普通のLinux環境でしたら、下記のようにして確認可能です。 zcat test.tsv.gz 以上です。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【初心者】PostgreSQLのコマンド類すぐ忘れる

psqlコマンドをすぐ忘れる postgres12.3環境 OSのコマンド postgresクライアントで接続 # psql -U postgres -W Password: psql (12.8) Type "help" for help. postgres=# DB一覧 # psql -l クライアントのコマンド DB一覧 postgres=# \l DBに接続 postgres=# \c db名 データベース"db名"にユーザ"ユーザ名"として接続しました。 同じデータベースで接続ユーザを変える postgres=# \c - ユーザ名 別データベースに別ユーザで接続 postgres=# \c データベース名 ユーザ名 DB作成 postgres=# createdb --owner オーナー名 db名 スキーマ作成 postgres=# create schema スキーマ名 AUTHORIZATION オーナー名 スキーマ削除 postgres=# drop schema スキーマ名 CASCADE スキーマ一覧 postgres=# \dn カレントのスキーマを確認 postgres=# select current_schema(); カレントのスキーマの切替え postgres=# set search_path=スキーマ名; SET クライアントのカレントディレクトリを移動する postgres=# \cd パス (カレントのスキーマに)DDLを流し込む postgres=# \i sqlファイルのパス テーブル一覧 postgres=# \z
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

systemctlコマンド学習

systemctl ※Activeなものだけ表示するみたい。 すべて表示したい場合は systemctl -all
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RedhatOS設計 Kdump

インストールしたRHELは自動でkdump有効設定になっていました。 そのまま以下のコマンドを実行したら echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger デフォルト設定の/var/crashにdumpファイルが吐かれていました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RedhatOS設計 GRUB

設計要素はまだ記載しませんが GRUBは、BIOSかUEFIどちらを使用しているのか確認することから始めます。 調べ方 https://websetnet.net/ja/how-to-check-if-your-computer-uses-uefi-or-bios/#:~:text=Linux%E3%81%A7UEFI%E3%81%BE%E3%81%9F%E3%81%AFBIOS,%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82 いかにefiというディレクトリが存在すればUEFI。なければBIOS ls /sys/firmware/ grubの修正方法 ① vi /etc/default/grub ②BIOSの場合 grub2-mkconfig -o /boot/grub2/grub.cfg UEFIの場合 grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg ③ OSの再起動
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Debian 11 (Bullseye) で新たにレポジトリ入りしたユーティリティたち

久々の投稿。今回は、Debian 11(リリースからすでにそれなりに経過しましたが)で新たにStable版レポジトリに入ったユーティリティを2つほど紹介してみます。 micro (エディタ) まずはmicroというエディタの紹介です。名前を見てピンと来た方もいるかもしれませんが、おなじみnanoエディタを意識したネーミングとなっています。 インストールと実行 インストールはsudo apt install microで。 実行ファイルの名前もシンプルにmicro(/usr/bin/micro)となっているので、端末エミュレータからmicroで起動できます。 使い方 最低限、Ctrl+qでのエディタ終了、Ctrl+sでのファイル保存を覚えれば使えます。Alt+gでキーバインド一覧の表示、Ctrl+gでヘルプの表示も可能です。 コメント このエディタの特徴というか良さは、やはりそのシンプルさでしょう。パッケージの依存関係もlibc6だけという少なさです。ちなみに、Debian Buster(10)でもbackportレポジトリから導入できるようです。 bpytop (リソースモニタ) 次にbpytopというリソースモニタを紹介。こちらも明らかにおなじみのtopコマンドを意識しています。pythonで書かれたtopという感じです。 インストールと実行 インストールはsudo apt install bpytopで。pythonで書かれてるので、当然python3パッケージなどに依存しています。 実行は、端末エミュレータでbpytopです。 使い方 起動すると、やや懐かしいゲームのようなロード画面が現れたあと、豪華な(?)top画面のようなリソースモニタが表示されます。プログラム終了はCtrl-cまたはqです。 またEscでメニューが表示されますので、ここからヘルプを確認したり、オプションを操作したりすることも可能です。 まとめ 以上、本記事ではmicroというエディタと、bpytopというリソースモニタを紹介しました。新たなプログラムが続々と生まれ、それに触れることができるのはOSSやLinuxの大きな魅力だと考えています。今後も折を見て紹介記事を書ければと考えます。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RedhatOS設計 ipv6無効

grubの設定変更パターン と sysctl.confのパターン両方試してみました。 ip -aコマンドで変更前と変更後を確認。 結論 どっちも同じ部分が無効になるだけでした。 よって好きなほうに記載するでいいと思います。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RedhatOS設計 history

どこかの案件で、historyコマンドを実行したら、日時が表示されて、 Redhatもデフォルト設定変更されたんだって思っていたら自分で設定しないといけないんだね(笑)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RedhatOS設計 ログイン設計

上記サイトを確認して、パスワード失敗回数を設定。 auth required pam_env.so ###追加### auth required pam_tally2.so deny=3 ###追加### auth required pam_faildelay.so delay=2000000 auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so ###追加### account required pam_tally2.so ###追加### account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RedhatOS設計 ログイン設計①

/etc/pam.d/system-auth(コンソールログイン用) と /etc/pam.d/password-auth(SSH,FTP用) 上記サイトを確認して、パスワード失敗回数を設定。 auth required pam_env.so ###追加### auth required pam_tally2.so deny=3 ###追加### auth required pam_faildelay.so delay=2000000 auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so ###追加### account required pam_tally2.so ###追加### account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so 状況確認コマンド pam_tally2 -u ユーザ名 ロック解除手順 pam_tally2 -r -u ユーザ名 参考サイト https://hogem.hatenablog.com/entry/20121107/1352297631
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxコンソールでスクリーンセーバー

みなさま、お久しぶりの、技術の無駄遣いシリーズです。 なぜスクリーンセーバー?! うちの会社はセキュリティにも力を入れているのですが、社内のルールに、パスワードによって保護されたスクリーンセーバーを設定する、というのがあります。 ちょっと席を離れたときなどに、他の人に端末の画面を見られるリスクと、操作されるリスクを軽減することが目的だと思われます。 Windowsの場合、スクリーンセーバーの設定に「再開時にログオン画面に戻る」というのがあるので、これを設定しておけば実現できます。 しかし、うちのチームで管理しているパソコンの中にLinuxを入れたデスクトップマシンがあり、しかも、それはGUIを持っていないものでした。 なんとか、社内のセキュリティ要件を満たすべく、いろいろと調べてみました。 やるべきことは? まず、要件を整理しましょう。やりたいことは、 一定時間が経過したら、スクリーンセーバーを表示してほしい スクリーンセーバー表示後に端末を操作した場合、パスワード入力をさせてほしい この2点です。 スクリーンセーバーの目的は、CRT画面の焼き付きを防止することではなく、画面を見られないようにすることですので、現在の画面が見えるようなタイプのスクリーンセーバーはNGです。 スクリーンセーバーを探す 実は、探さなくてもLinuxのコンソールには既にスクリーンセーバーが用意されています。 単位は分です。 setterm -blank 10 で10分後に画面が真っ黒になるようなスクリーンセーバーが発動します。 しかし、これ、復帰したときに元の画面が丸見えなんですよね。 これでは、要件を満たしません。 ちょっとググってみると、なんかすごいのがありました。 ソースがいろいろありますが、pipes.shだけ持ってくれば動くようです。 適当に実行権限を付けて/usr/binあたりに置いておきます。 しかし、これは、スクリーンセーバーが動くだけのプログラムで、時間が経過したら起動するようなものではありません。 これについては、後で考えます。 一定時間経過後にログアウトさせる bashにはTMOUTという環境変数があります。 単位は秒です。 ここで設定した時間が過ぎると、ログアウトされます。 /etc/profileあたりに書いておきましょう。 ついでに、readonlyで変更できないようにしておきます。 /etc/profile TMOUT=600 readonly TMOUT export TMOUT ログアウト時にスクリーンセーバーを動かす さて、スクリーンセーバーの起動ですが、ログアウト時に実行させると、パスワード付きスクリーンセーバーになって都合がよさそうです。 ログアウト時にはEXITというシグナルが発呼されます。 これをトラップすることにしましょう。 /etc/profile trap /usr/bin/pipes.sh EXIT タイムアウトを5秒に設定したら、こんな感じになりました。 いい感じです。 コンソール以外では動かないようにする sshでつないだときとかターミナル側でもパイプが暴れまくってうざいので、コンソールでだけ動くようにしておきます。 最終形はこんな感じです。 etc/profile if /usr/bin/tty | grep /dev/tty > /dev/null; then TMOUT=600 readonly TMOUT export TMOUT trap /usr/bin/pipes.sh EXIT fi さいごに セキュリティを担保したいだけなら無理にスクリーンセーバーっぽいのを動かさなくても、ログアウト時に画面をクリアするだけでいいような気もしてきました。 なんか、無駄なことをしたような気がします。 それより、コマンド実行中はタイムアウトされないので、vi開きっぱなしとかはしないようにしないといけませんねぇ。 *本記事は @qualitia_cdevの中の一人、@hirachanさんに書いていただきました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む