カテゴリ: Linux

検索結果: 10件

article-thumbnail

特定のIPアドレスのみ全ポート・プロトコルを許可するFirewall設定

【概要】全ポート・プロトコル開放を特定のIPアドレスのみ許可するFirewall設定についてまとめます。この設定は既にSSHポートやHTTPポートを設定していても併用して設定することができます。【詳細】・構文firewall-cmd --permanent --add-rich-rule"rule family"ipv4" source address"許可するIPアドレス/cidr" accept"「許可するIPアドレス」部分にIPアドレスを入力して下さい。・設定反映firewall-cmd --reload・反映確認firewall-cmd --list-all --zonepublic出力結果例public (active) target: default ...省略... rich rules: rule family"ipv4" source address"許可するIPアドレス/cidr" accept「rich rules」部分に指定したIPアドレスの許可設定が出力されれば成功です。Cf. 設定削除コマンドfirewall-cmd --permanent --remove-rich-rule"rule family"ipv4" source address"許可するIPアドレス/cidr" accept"設定削除コマンド実行後は設定反映コマンドと反映確認を行って下さい。【tcpプロトコルの全ポート開放する場合】・構文firewall-cmd --permanent --zonepublic --add-rich-rule"rule family"ipv4" source address"許可するIPアドレス" port protocol"tcp" port"0-65535" accept"・設定反映firewall-cmd --reload・確認これで開放していないポートでも指定したIPアドレスからはアクセスが許可されます。例えば、HTTP(80番)ポートを開放していなくても、設定したIPアドレスからはブラウザにて表示する事ができます。以上のような例で接続確認をしてみてください。・参考ここでは0番から65535番までのポート・プロトコルを開放していますが、特定のポート番号のレンジの指定もできます。例えば1~1000番の場合は下記のようになります。firewall-cmd --permanent --zonepublic --add-rich-rule"rule family"ipv4" source address"許可するIPアドレス" port protocol"tcp" port"1-1000" accept"特定の番号のみの場合は下記のようにします。ここでは10022番を例とします。firewall-cmd --permanent --zonepublic --add-rich-rule"rule family"ipv4" source address"許可するIPアドレス" port protocol"tcp" port"10022" accept"

カテゴリ: Linux 2020-12-19 10:58:05
article-thumbnail

サーバー内で複数のファイルに対して文字列置換を行う

【概要】サーバー内に存在する複数のファイルに対して特定の文字列を検索し、かつ置換を行います。ファイル内に存在する文字列の検索やファイル名の検索をしたい場合は下記のドキュメントを参考にしてみて下さい。サーバー内にあるファイル名とファイル内容を検索する方法【詳細】・構文grep -l '置換対象文字列' ./* | xargs sed -i -e 's/置換対象文字列/置換後の文字列/g'・例文現在居るディレクトリのファイル全てに対して「yahoo.co.jp」の文字列を「google.com」に変更します。grep -l 'yahoo.co.jp' ./* | xargs sed -i -e 's/yahoo.co.jp/google.com/g'現在居るディレクトリ内に存在するディレクトリ内部の全てのファイルに対して置換を行います。grep -l 'yahoo.co.jp' ./*/* | xargs sed -i -e 's/yahoo.co.jp/google.com/g'Cf. 文字列検索上記例文の通りに置換を実行した場合、対象パスに存在するファイルは全て置き換えられたことになります。ここでは例文に沿って「yahoo.co.jp」を検索する例文を記載します。置換した文字列が出力されなければ置換成功となります。・構文grep -rni "検索文字列" .・例文grep -rni "yahoo.co.jp" .

カテゴリ: Linux 2020-09-30 03:20:56
article-thumbnail

コピー元の権限を保持したままファイル・ディレクトリをコピーする

【概要】コピー元の権限を保持したままファイル・ディレクトリをコピーする方法についてまとめます。【詳細】[概要]オプションpを使用する事で以下の情報を保持します。・所有者・グループ・アクセス権・更新時刻・アクセス時刻[構文]cp -rp コピー元 コピー先上記では「rオプション」をつけていますが、コピー対象がファイルの場合は不要です。[コマンド例]・ファイルをコピーするcp -p hoge.txt ~/hoge.txt・ディレクトリをコピーするディレクトリを対象とする場合はオプションにrを追加します。下記は「/var/www/html/hoge.com」ディレクトリをコピーする方法例です。cp -rp /var/www/html/hoge.com ~/hoge.com[ディレクトリとファイルのコピー実行例と権限確認]ec2-userのホームディレクトリにhogeディレクトリを作成し、ディレクトリ配下にtest.txtを作成します。mkdir ~/hogetouch ~/hoge/test.txthogeディレクトリとtest.txtの権限を確認します。ls -al ~/hoge出力結果合計 0drwxrwxr-x 2 ec2-user ec2-user229月 19 00:58 .drwx------ 9 ec2-user ec2-user 2669月 19 01:03 ..-rw-rw-r-- 1 ec2-user ec2-user09月 19 00:58 test.txtrootユーザーのホームディレクトリに上記で作成したhogeディレクトリをコピーします。sudo su -cp -rp /home/ec2-user/hoge ~/hogeコピーしたhogeディレクトリの権限を確認します。ls -al hoge出力結果total 4.0Kdrwxrwxr-x2 ec2-user ec2-user22 Sep 19 00:58 .dr-xr-x--- 10 rootroot4.0K Sep 19 00:59 ..-rw-rw-r--1 ec2-user ec2-user0 Sep 19 00:58 test.txt

カテゴリ: Linux 2020-09-19 01:17:10
article-thumbnail

コマンドを繋げて実行する方法まとめ

【概要】コマンドを繋げて実行する方法についてまとめます。1. 最初のコマンドが終了してから次のコマンドを実行する2. コマンドを並列処理する3. 最初のコマンドが正常終了したら次のコマンドを実行する4. 最初のコマンド結果を次のコマンドに渡して実行する5. 最初のコマンドでエラーが起きた際に次のコマンドを実行する【詳細】1. 最初のコマンドが終了してから次のコマンドを実行する正常終了、異常終了に関わらず次のコマンドを実行します。・構文最初のコマンド ; 次のコマンド・使用例./bin/cake hoge1 ; ./bin/cake hoge22. コマンドを並列処理する最初のコマンドと次のコマンドを同時に実行します。・構文最初のコマンド 次のコマンド・使用例touch aaa/abc.txt touch aaa/def.txt3. 最初のコマンドが正常終了したら次のコマンドを実行する最初のコマンドが異常終了した場合は次のコマンドは実行されません。・構文最初のコマンド amp;amp; 次のコマンド・使用例make amp;amp; make install4. 最初のコマンド結果を次のコマンドに渡して実行する最初のコマンドで返された値を次のコマンドに渡します。使用例ではphp -iで出力された情報の中から「php.ini」の文言が入っている行のみ出力されます。・構文最初のコマンド | 次のコマンド・使用例php -i | grep php.ini5. 最初のコマンドでエラーが起きた際に次のコマンドを実行する最初のコマンドが実行できなかった際に次のコマンドが実行されます。・構文最初のコマンド || 次のコマンド・使用例cd /var/www/html || pwd

カテゴリ: Linux 2020-08-09 19:32:11
article-thumbnail

rsyncコマンドを利用したサーバー内・サーバー間の同期方法まとめ

【概要】このドキュメントでは、rsyncコマンドを使用してサーバー内もしくはサーバー間のファイル同期やディレクトリ同期方法をまとめています。下記のようなパターンで特に有用です。1. ファイルやディレクトリの権限を同期元と変えずに同期したい2. 一括で同期をしたい3. 特定のディレクトリのどのファイルが同期元と同期先で差異があるかわからないので、チェックして同期する【rsyncコマンドの基本構文】・基本構文rsync -av 同期元 同期先・オプション説明1. -aオプションディレクトリを同期したい場合、再帰処理を行います。つまり、指定したディレクトリ内部に存在するサブディレクトリに対しても同期対象として実行します。2. -vオプション実行中の同期処理を表示します。よって、今どのファイルやディレクトリを同期しているのかがわかります。・その他よく使うオプション説明1. --checksumオプション更新日とサイズではなく、チェックサムで変更の有無をチェックします。よって、もし更新日とサイズが同じでもファイル内容が違う場合は同期先の対象ファイルを更新してくれます。2. --inplaceオプション同期先にファイルがある場合は上書きします。3. --deleteオプション同期元にないファイルを同期先から削除します。【例文】1. サーバー内のディレクトリ同期rsync --checksum -av--delete /home/develop/Nuxt-APP/ /var/www/html/Nuxt-APP/「/home/develop/Nuxt-APP/」配下のファイルやディレクトリの内容を「/var/www/html/Nuxt-APP/」配下に同期します。2. サーバー内のファイル同期rsync --checksum --inplace /home/develop/index.html /home/develop/rsync_test/index.html「/home/develop/index.html」の内容を「/home/develop/rsync_test/index.html」に同期します。3. サーバー間のファイル同期rsync --checksum --inplace /var/www/html/index.html web-server:/var/www/html/index.html上記は実行元サーバーの「/var/www/html/index.html」ファイルをweb-serverの「/var/www/html/index.html」に同期します。※1 サーバー間でrsyncを行う為には同期元のサーバーから同期先のサーバーに接続できる必要があります。同期先にSSHの鍵を登録し、同期元で「~/.ssh/config」の設定をしておくとHost名で接続先を記載できるので便利です。※2 SSH設定をしていない場合、「Host名」を「ユーザー名@IP」で設定する必要があります。4. サーバー間のディレクトリ同期サーバー間のディレクトリを同期します。ここでは例として「/var/www/html/stg-WP/wp-content/themes」と「/var/www/html/prd-WP/wp-content/themes」を同期します。ディレクトリ同期をする場合の方法は2つあります。・パターン1rsync -av --checksum --delete --inplace /var/www/html/stg-WP/wp-content/themes wp-web-server:/var/www/html/prd-WP/wp-content・パターン2rsync -av --checksum --delete --inplace /var/www/html/stg-WP/wp-content/themes/ wp-web-server:/var/www/html/prd-WP/wp-content/themes※1 パターン1は、もし「/var/www/html/WP/wp-content/themes」ディレクトリが存在しなければ同期元のディレクトリが同期先に作成されます。※2 パターン2は 両サーバーに「/var/www/html/WP/wp-content/themes」がある事を前提としています。・--deleteオプションの吹き飛ばし注意点下記のようにしたら「prd-WP」ディレクトリの内容は「stg-WP/libs」以下のファイルとディレクトリのみになります。rsync -av --checksum --delete --inplace /var/www/html/stg-WP/libs/ wp-web-server:/home/develop/prd-WPもし、バックアップがない場合は取り返しがつきません。また、WPが動かないというエラーが起きるのでrsyncで--deleteオプションを使う場合は要注意です。よって、同期元で最後の「.../libs/」にスラッシュを付ける場合は同期先に「/libs」まで付ける必要があります。同期元と同期先のパスと文末にスラッシュを付けているかどうかは要注意です!同期元と同期先の「libs」ディレクトリの内容を同期したい場合のコマンド例は下記になります。rsync -av --checksum --delete --inplace /var/www/html/stg-WP/libs/ wp-web-server:/home/develop/prd-WP/libs

カテゴリ: Linux 2020-06-04 02:15:55
article-thumbnail

Linuxサーバーのユーザーとグループ作成と設定方法

【概要】Linuxサーバーのユーザーとグループ作成、設定方法をまとめたドキュメントです。【ユーザーとグループ一覧表示】・ユーザー一覧表示cat /etc/passwd出力結果例root:x:0:0:root:/root:/usr/bin/zshbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin......・グループ一覧cat /etc/group出力結果例root:x:0:bin:x:1:daemon:x:2:......【ユーザーとグループ作成】・ユーザー作成構文useradd ユーザー名例文useradd ec2-user・グループ作成構文groupadd グループ名例文groupadd ec2-user・IDを指定する場合のコマンドユーザー・グループ共にIDを指定しなかった場合、他の重複しない値を自動で設定されます。特定のIDを指定したい場合に使用します。ユーザー作成の構文useradd -u 501 ユーザー名グループ作成の構文groupadd -g 501 グループ名【ユーザーのパスワード設定】[概要]ユーザーにパスワードを設定します。作成したユーザーでSSH接続や、rootユーザーになる時などに使用します。[詳細]・構文passwd ユーザー名【グループを設定し、ユーザーを作成する】[概要]ユーザーにグループを設定する事で権限を持たせる事ができます。例えば、ec2-userを作成し、セカンダリグループにwheelグループを設定します。「/etc/sudoers」を編集し、wheelグループはパスワードなしでrootユーザーを使用する設定があります。このように、ユーザーに特定の権限を持たせたい時に使用します。[詳細]・構文 - プライマリグループとセカンダリグループを設定しユーザーを作成するuseradd -G グループ名 -g グループ名 ユーザー名「-Gオプション」はセカンダリグループを指定します。「-gオプション」はプライマリグループを指定します。・ec2-userのプライマリグループに「ec2-user」グループを設定し、セカンダリグループに「wheel」グループを設定するuseradd -G wheel -g ec2-user ec2-user【作成したユーザーの所属グループとidを調べる】[概要]作成したユーザーと設定したグループが反映されたかを確認します。[詳細]・構文id ユーザー名・例文id ec2-user出力結果例uid1000(ec2-user) gid1000(ec2-user) groups1000(ec2-user),4(adm),10(wheel),190(systemd-journal)上記の例では「ec2-user」ユーザーの情報は下記になります。ユーザーID:1000プライマリグループID:1000プライマリグループ:ec2-userセカンダリグループ:ec2-user・adm・wheel・systemd-journal【作成したユーザーにセカンダリグループを追加する】[概要]作成したユーザーが既にセカンダリグループを設定されている場合、-aオプションを付けないと上書きされてしまいます。その手順をまとめます。[前提]下記の設定がされているec2-userを想定します。uid1000(ec2-user) gid1000(ec2-user) groups1000(ec2-user),4(adm),190(systemd-journal)ここにwheelグループを追加します。[詳細]・セカンダリグループ追加usermod -aG nginx ec2-userこれでnginxグループがec2-userのセカンダリグループに追加されました。・追加確認id ec2-user出力結果uid1000(ec2-user) gid1000(ec2-user) groups1000(ec2-user),4(adm),190(systemd-journal),10(wheel)【ユーザーに設定されているセカンダリグループを削除する】[前提]ec2-userに下記の設定がされているとします。uid1000(ec2-user) gid1000(ec2-user) groups1000(ec2-user),4(adm),190(systemd-journal),10(wheel)このwheelグループを削除します。[例文]・ec2-userユーザーをwheelグループのメンバーから外すgpasswd -d ec2-user wheel・確認id ec2-user出力結果uid1000(ec2-user) gid1000(ec2-user) groups1000(ec2-user),4(adm),190(systemd-journal)文末にあった「wheel」グループは削除されました。【ユーザーを削除する】[概要]指定したユーザーの削除を行います。[詳細]・構文userdel -r ユーザー名・例文ここでは「ec2-user」を削除します。userdel -r ec2-user確認id ec2-user出力結果id: ec2-user: no such user上記のように出力されれば削除成功です。【参考: wheelグループに所属するユーザーをパスワードなしでrootユーザーにする設定】[概要]上記にも例を出しましたが、ユーザーのセカンダリグループにwheelグループを追加し、「/etc/sudoers」の設定を変更する事でパスワードなしでrootユーザーになる事ができます。その設定方法についてまとめています。[手順]vi /etc/sudoers変更内容# Same thing without a password#%wheelALL(ALL)NOPASSWD: ALL上記の「#%wheel」部分で「#」がコメントアウトを意味します。よって、「#」を削除し「:wq」で保存して下さい。これでwheelグループを設定したユーザーは下記のコマンドでrootユーザーになれます。sudo su -

カテゴリ: Linux 2020-05-23 03:22:38
article-thumbnail

サーバー内にあるファイル名とファイル内容を検索する方法

【概要】このドキュメントでは下記のパターンを検索する方法についてまとめています。1. ファイル名2. ディレクトリ名3. 特定の所有ユーザー4. 特定の所属グループ5. ファイル内に存在する特定の文字列【ファイルに存在する特定ワードの検索】・概要ファイル内に存在する特定のワードを検索する方法です。・構文grep -rni "検索したいワード" 場所下記のコマンド例は「.」なので、コマンド実行時のディレクトリ配下を意味する。・grepコマンドのオプション内容1. -rオプションディレクトリを再帰的にたどって検索します。2. -nオプション検索結果の出力に行番号を付けます。3. -iオプション大文字小文字を区別せずにマッチングをさせます。・コマンド使用例1. 現在いるパスから下の階層全てに「ZSH_THEME」の文字列を含むファイルの行検索grep -rni "ZSH_THEME" .出力結果例./.zshrc:11:ZSH_THEME"fishy"./.zshrc:14:# Setting this variable when ZSH_THEMErandom will cause zsh to load./.zshrc:17:# ZSH_THEME_RANDOM_CANDIDATES( "robbyrussell" "agnoster" )2. /etc/nginxの階層以下の全てに「server_name」を含むファイルの行検索grep -rni "server_name" /etc/nginx3. 所有ユーザーと所属グループとファイル名検索ls -la | grep ec2 上記のコマンドは現在居るディレクトリ内に存在するec2を含むディレクトリ名・ファイル名・所有ユーザー・所属グループを表示します。【ファイル名検索】・概要検索ワードにマッチするファイル名を検索します。・構文find 検索したい場所 -name ファイル名・コマンド使用例ここで紹介している使用例は検索したい場所からその配下に存在するディレクトリ内部まで検索します。1. 特定のファイルを検索する現在のディレクトリ配下にある.DS_Storeファイルを探すfind . -name .DS_Store出力結果例./.DS_Store./hogeDir/.DS_Store 2. 特定の文字列を含むファイル名を検索するfind / -name *.params上記は「/」以下で拡張子が「.params」であるファイルを検索します。「*」とはワイルドカードに当たります。 3. 現在のディレクトリ配下にある.DS_Storeファイルを探すfind . -name .DS_Store 出力結果例./.DS_Store./hogeDir/.DS_Store

カテゴリ: Linux 2020-05-16 04:05:48