タグ

linuxに関するymm1xのブックマーク (132)

  • 特殊なパーミッションについて | TECH PROjin

    SUIDは、ファイルに適用するパーミッションです。 適用したファイルは、誰でもそのファイルの所有者の権限で実行できます。 Linuxでは、ユーザにUIDと呼ばれる番号が振られていますが、一時的に別のユーザのUIDをセットできる機能のことをSUID(Set User ID)と言います。 「ファイルの所有者の権限で実行できる」とは、「一時的にファイル所有者のUIDをセットする」ということです。 SUIDがどのように使用されているのかを見てましょう。 Linuxでパスワードが保存されている「/etc/shadow」というファイルがあります。 まずはこのファイルのパーミッションを確認します。 [root@localhost ~]# ls -l /etc/shadow ----------. 1 root root 1495 6月 18 19:26 /etc/shadow ※/etc/shadowの

    ymm1x
    ymm1x 2023/03/04
  • 今さら聞きづらい「ファイルパーミッション」について

    こんにちはこんにちは! エンジニア川端です。 ご自身のサイトをお持ちの方なら、一度は目にしたことのある「ファイルパーミッション」という言葉。 普通の HTML ファイルは 644 にするとか、 CGI は 755 にするとか、 ○○というレンタルサーバの△△プランだと CGI は 700 でないと動かないとか、 「決まり事」として丸覚えしている方も多いのではないかと思います。 では、パーミッション 2775 ってどういうことでしょう? 1777 は? 入門サイトではあまり触れられていない気がしますので、今日は「ファイルパーミッションの 4 桁め」についてお話しします。 ファイルパーミッションは 3 つのクラスと 3 種類の基パーミッションの組み合わせ ファイルパーミッションでは、そのファイルに対する権限を、オーナー、グループ、全員という 3 つのクラスについて、それぞれ読み・書き・実行の

    今さら聞きづらい「ファイルパーミッション」について
    ymm1x
    ymm1x 2023/03/04
  • サーバ作業を安全に行うための工夫

    こんにちは。 2021年7月にハートビーツに入社後、エンジニアリンググループに所属している北岡です。 以前は同じMSP企業で10年以上勤務しておりましたが、自身のスキル向上などを目的としてハートビーツへ入社しました。 私の転職の経緯やハートビーツへ入社して感じたことなどは今後お話するとして、今回はお客様のLinuxサーバ上で作業する際、私がオペレーション中に意識していることやミスを防ぐために行っていることについて紹介します。 コピー、ペーストのショートカットキーを変更する コピー「Ctrl + c」とペースト「Ctrl + v」はキーが隣り合っており、タイピングミスによってコピーしようとしたつもりがペーストしてしまったということが起こりえます。 メモ帳などで起きた場合は特に問題にはなりませんが、サーバ上で起きると不要なコマンド実行に繋がります。小さなことではありますが防止策をとるべきです。

    サーバ作業を安全に行うための工夫
  • 「/etc/issue」ファイルと「/etc/motd」ファイル - Linux技術者認定 LinuC | LPI-Japan

    今回は、「/etc/issue」ファイルと「/etc/motd」ファイルについて見ていきましょう。 「/etc/issue」ファイルは、ユーザがログインする前に、ログインプロンプトの前に表示される内容を記述するファイルです。たとえば、Debian GNU/Linux 8の「/etc/issue」ファイルには、以下のように記述されています。 -- Debian GNU/Linux 8 \n \l -- (注:\マークはバックスラッシュ) これによって、CUIログインを行う際に次のような表示がなされます。 -- Debian GNU/Linux 8 station001.example.com tty1 station001 login: -- ファイルに記述されている「\n」や「\l」はシーケンス文字と呼ばれています。たとえば「\n」と書いた場合、「\n」と表示されるわけではなく、ホスト名が

    「/etc/issue」ファイルと「/etc/motd」ファイル - Linux技術者認定 LinuC | LPI-Japan
    ymm1x
    ymm1x 2022/07/24
  • /procディレクトリ - Linux技術者認定 LinuC | LPI-Japan

    今回は、/procディレクトリについて。 /procディレクトリは、システムの状態などがファイルとして保管されている特殊なディレクトリで、このディレクトリにあるファイルは、メモリ上に作られる仮想的なファイルです。/procディレクトリ配下にあるファイルは、さまざまなプロセスを動作させる際にたびたび参照されます。ですから、Linuxの動作を決める上でとても大切なディレクトリと言えます。 ここのファイルを参照すると、さまざまな情報を得ることができます。たとえば、コマンドラインから「cat /proc/cpuinfo」と入力してみて下さい。 CPUの情報を得ることができます。他にも、メモリの情報、ドライバの情報、その他ハードウェア面・ソフトウェア面についてさまざまな情報を得ることができます。 そして、/procにあるファイルを編集すれば、システムの状態を調整することもできます。たとえば、ipta

    /procディレクトリ - Linux技術者認定 LinuC | LPI-Japan
    ymm1x
    ymm1x 2022/07/24
  • 「/bin」「/usr/bin」「/usr/local/bin」ディレクトリの使い分け - Linux技術者認定 LinuC | LPI-Japan

    今回は、「/bin」「/usr/bin」「/usr/local/bin」ディレクトリの使い分けについて。 これらのディレクトリには、コマンドやスクリプト、プログラムなどのバイナリファイルが置かれます。ところで、これらのディレクトリはどのように使い分けされているのでしょうか? まず、「/bin」ディレクトリには、シングルユーザモードでも利用できるコマンドを置きます。逆の言い方をすると、「/usr/bin」や「/usr/local/bin」に置かれているコマンドなどはシングルユーザモードで利用できないということになります。シングルユーザモードは、基的にOSが壊れて正常に起動できないなど非常時に利用するものですので、「/bin」にはごく基的かつ非常時に利用するコマンドが置かれることになります。 「/usr/bin」には、「シングルユーザモードで利用しない」かつ「RPMやdebなどのパッケージ

    「/bin」「/usr/bin」「/usr/local/bin」ディレクトリの使い分け - Linux技術者認定 LinuC | LPI-Japan
    ymm1x
    ymm1x 2022/07/24
  • 「/var/run」ディレクトリ - Linux技術者認定 LinuC | LPI-Japan

    今回は、「/var/run」ディレクトリについて。 「/var/run」ディレクトリは、システムを起動した後の情報が格納されるディレクトリです。このディレクトリには、主に実行中のプロセスに関する情報が格納された「pidファイル」が存在します。/var/runディレクトリは一般ユーザでも参照できますので、lsコマンドで参照してみてください。 -- $ ls /var/run autofs.pid crond.pid messagebus.pid -- 「.pid」で終わっているファイルがpidファイルです。このファイルには、該当するプロセスのプロセスIDなどの情報が記述されています。たとえば、/var/run/crond.pidファイルには、crondのプロセスIDが記述されています。 このファイルは、スクリプトやほかのプロセスで利用されます。プロセスIDが記述されているので、このファイルは

    「/var/run」ディレクトリ - Linux技術者認定 LinuC | LPI-Japan
    ymm1x
    ymm1x 2022/07/24
  • /procディレクトリのファイル - Linux技術者認定 LinuC | LPI-Japan

    今回は、「/procディレクトリのファイル」について。 /procディレクトリは、普通のファイルシステムと違い、ハードディスクやSSDなどのストレージ上ではなく、メモリの中に作られるファイルシステムです。mountコマンドで確認してみると、/procディレクトリが他と異なる場所にある、他と異なるproc形式のファイルシステムであることがわかると思います。まずはこのことをしっかりと押さえてください。 $ mount /dev/sda2 on / type ext4 (rw) proc on /proc type proc (rw) (略)また、/procにあるファイルは普通のファイルではなく、「仮想ファイル」という特殊な形式となっています。lsコマンドで確認してみると、/procにあるファイルはサイズが0になっている上、タイムスタンプもほとんどのファイルで現在時刻になっています。 「/pro

    /procディレクトリのファイル - Linux技術者認定 LinuC | LPI-Japan
    ymm1x
    ymm1x 2022/07/24
  • イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog

    最近はとても便利なプラットフォームがいっぱいあって、 詳細な中身を意識しなくても簡単に使えるという素晴らしい時代ですが、 深くまで突っ込んで考えないといけない場面が たまーーーーーーーに でてきます その時になって初めて、 誰かが用意してくれた快適な環境を使っていただけで自分では何も解決できない という現実を叩きつけられるわけです 大げさに言いましたすみません ちょっと前に仕事でサーバーのパフォーマンス調査をする機会があり、 その中で "プロセス" と "スレッド" って一体何が違うの!? って疑問にぶち当たりました わかるような、わからないような 何となくわかったつもりになっている事でもそろそろちゃんと理解して、 今日からイケてるエンジニアになりましょう この記事では 1. マルチタスクOSとプロセス 2. メモリの役割 3. 物理アドレスと仮想アドレス空間 4. プロセスがメモリに保持

    イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog
  • scriptコマンドで作業ログを記録 | DevelopersIO

    実行例 それでは早速試してみます。 [ec2-user@ip-172-31-26-205 ~]$ script 20150117.log スクリプトを開始しました、ファイルは 20150117.log です [ec2-user@ip-172-31-26-205 ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 7.8G 1.1G 6.7G 14% / devtmpfs 491M 56K 491M 1% /dev tmpfs 499M 0 499M 0% /dev/shm

    scriptコマンドで作業ログを記録 | DevelopersIO
    ymm1x
    ymm1x 2022/05/04
  • 由来で覚えるlinux用語集 - Qiita

    随時更新予定。。。 ls = list | list segments(コメント欄参照) ln = link mv = move cd = change directory cp = copy rm = remove mkdir = make directory rmdir = remove directory chown = change owner chmod = change mode cat = catenate || concatenate tac = catの逆コマンド(ファイルを逆から出力) grep = "g/RE/p" || globally search a regular expression and print ping = 潜水艦などで使われるアクティブソナーの発する音波 sh = shell bash = Bourne again shell su = subs

    由来で覚えるlinux用語集 - Qiita
    ymm1x
    ymm1x 2021/07/09
  • Linuxのしくみを学ぶ - プロセス管理とスケジューリング

    プロセスとマルチタスクの実現 Linuxは、多数のプロセスを同時に動作させる事が出来るマルチタスク環境を実現しています。 psコマンドやtopコマンドを実行しプロセスのリストを取得すると多数のプロセスが実行中である事がわかります。 また、これらのプロセス全てが同時に平行して動作しているように見えます。 これはどのようにして実現されているのでしょうか。 一般的に、1つのプロセッサは同時に複数のプログラムを実行する事が出来ません1。 そこで、マルチタスクをサポートするOSでは複数のプロセスを非常に短い時間ずつ切り替えながら実行する事で、体感上は複数のプロセスが同時に実行されているように見せています(図1)。 このような仕組みを実現する為にどんな機能がカーネルへ実装されているのか順に見ていきましょう。 プロセスの切り替え CPU上で処理中のデータを失う事なく現在のプロセスから別のプロセスに切り替

  • いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita

    さくらインターネット Advent Calendar最終日は、硬派にLinuxのメモリに関する基礎知識についてみてみたいと思います。 最近はサーバーを意識せずプログラミングできるようになり、メモリの空き容量について意識することも少なくなりましたが、いざ低レイヤーに触れなければいけないシチュエーションになった際に、OSを目の前に呆然とする人が多いようです。 基的にLinux のパフォーマンスについて、メモリをたくさんつめばいいとか、スワップさせないほうが良い とか、このあたりは良く知られたことだと思います。 ただ、なんとなく ps コマンドや free コマンド などの結果を見るだけでなく、もう少しメモリのことについて掘り下げてみてみたいと思います。 メモリとキャッシュ Linux におけるメモリの状態を大きく分けると「使用中のメモリ」「キャッシュ」「空きメモリ」「スワップ」の 4 つに分

    いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita
    ymm1x
    ymm1x 2021/06/11
  • Kazuho Oku on Twitter: "そういえばだけど、linuxでコマンドのベンチマーク取るときに使うコマンドは time(1) ではなく multitime(1) がオススメ。指定回数試行してくれて、平均以外に標準偏差や中央値も教えてくれるよ!… https://t.co/ZBQJM1vq8M"

    そういえばだけど、linuxでコマンドのベンチマーク取るときに使うコマンドは time(1) ではなく multitime(1) がオススメ。指定回数試行してくれて、平均以外に標準偏差や中央値も教えてくれるよ!… https://t.co/ZBQJM1vq8M

    Kazuho Oku on Twitter: "そういえばだけど、linuxでコマンドのベンチマーク取るときに使うコマンドは time(1) ではなく multitime(1) がオススメ。指定回数試行してくれて、平均以外に標準偏差や中央値も教えてくれるよ!… https://t.co/ZBQJM1vq8M"
  • find の -xdev オプション - 理系学生日記

    comp.unix.shell の一つの質問に対する回答として -xdev っていう find コマンドのオプションが使われていましたが,ぼくはこれが何だか知りません. 知らないことは調べないといけないので,man を引いて調べてみるなどしました. -xdev Don't descend directories on other filesystems. なるほど,他のファイルシステムにあるファイル/ディレクトリは find の検索対象としないということか! HP だけど,以下のサイトが参考になりました. ファイル・システム単位で検索したい場合,-xdev オプションをつけます。 例えば, # find / -name abc -print として検索した場合,/ ディレクトリ以下のすべてのディレクトリを検索するため,他のファイル・システム /usr, /var,その他 NFS マウントさ

    find の -xdev オプション - 理系学生日記
  • xargs が Linux と Mac 両方できちんと動くためには -i ではなく -I オプションを使う - blog.ayakumo.net

    LinuxMac で xargs の挙動が違うのは以前から認識していたが、詳細までは調べていなかった。今回、プライベートの git レポジトリをコミットして Mac で xargs を実行した際に illegail option -- i と怒られてしまったので、これを機会に xargs が LinuxMac 両方できちんと動作するように修正した。 Linux では動く、Mac では動かない # da = dot apply alias da="ls -A ~/git/$repo/t/dot/ | xargs -i cp {} $HOME && pushd $HOME && source $HOME/.bash_profile && popd" Mac 版の xargs (BSD) では -i オプションがサポートされていないのが問題だった。 $ da xargs: illeg

    xargs が Linux と Mac 両方できちんと動くためには -i ではなく -I オプションを使う - blog.ayakumo.net
  • Why are "{}" and "%" commonly used as replstr in xargs?

  • ptraceで他プロセスの出力を読み取るRustライブラリを作ってみた - Qiita

    はじめに システムコールのptraceを使うと他プロセスの呼ぶシステムコールを覗き見ることが出来ます。 これを使って実行中の他プロセスの標準出力や標準エラー出力を読み取るライブラリを作ってみました。 使い方 std::io::Readを実装しているので 通常のファイルIOやネットワークIOと同じように扱えます。 extern crate nix; extern crate proc_reader; use nix::unistd::Pid; use proc_reader::ProcReader; use std::process::Command; use std::io::Read; use std::time::Duration; use std::thread; fn main() { // 読み取り先のプロセスを生成 let mut child = Command::new("s

    ptraceで他プロセスの出力を読み取るRustライブラリを作ってみた - Qiita
  • サーバー作成直後に設定しておくべき初期セキュリティ設定

    マニュアルは、さくらのVPSLinux ディストリビューションを利用する方を対象とし、管理者として注意したいセキュリティ設定をご紹介します。 具体的には、一般ユーザー及び sudo を用いた操作、 ファイアウォール及びパケットフィルター機能、SSH サーバー設定などです。 Note さくらのVPSで提供されている標準OS AlmaLinux 9 もしくは標準OS Rocky Linux 9 を前提に記載します。 他のディストリビューションやサービスを利用する場合は、必要に応じて読み替えてください。 警告 ページでは、多くのサーバー構築で共通するセキュリティ設定のみを扱います。 利用されるソフトウェアや用途によって、適切なセキュリティ設定を選択したり、追加で実施する必要があります。 加えてVPSは、管理者権限をお渡ししているサービスの為、記載内容についてはお客様にてご確認のうえご利用

    サーバー作成直後に設定しておくべき初期セキュリティ設定
  • よく知らないアプリケーションの性能と戦わないといけないときの防衛術(前編) - Qiita

    よく知らないアプリケーションの性能と戦う、という状況 SNSにキャンペーン載せたらバズってサイトがずっと503なんです、なんとかなりませんか? バッチがいつもの時間に終わらないんですけど、急ぎ見てください! みたいな連絡を、そろそろ帰るかと思った21時とか明け方5時とかに電話が鳴って受けることって、そこそこあると思うんです。 私が設計したわけでもなく開発したわけでもなく、レビュー参加とかで辛うじて全体は分かるけど、いまからソース見る時間もないし、開発した方は性能面の対処が覚束ない。突然性能面で火を噴いてなぜか自分が召喚されて2~3時間でどうにかしたい、という闇な状況にどういうふうに対応していたっけ自分、というのを経験則100%で書いてみようと思います。 この前編は道具の紹介(OS編)、中編は道具の紹介(Java)、後編は道具の紹介(PostgreSQL)です。 中編 → https://q

    よく知らないアプリケーションの性能と戦わないといけないときの防衛術(前編) - Qiita