サーバー設定

一般ユーザーとルートユーザー

Linuxはそもそも複数人ログイン前提の設計らしい。

rootユーザーには他のユーザーのファイルも含めて全ての制御権限がある。危険なのでsshを使ってrootユーザーを使うことは避ける。sshでのルート接続を禁止したりする。

一般ユーザーは許可されてるとこだけ。

 

sudoとsu

以下抜粋

SSHを使って一般ユーザーとしてリモートサーバにログインした後に、ソフトウェアのインストールなどで一時的に管理者権限が必要になることがあります。また、サーバ内の他のユーザーに代わってコマンドを実行する必要がある場合もあります。

sudo
sudoコマンドは、現在のユーザーのまま他のユーザーに成り代わってコマンドを実行することができます。ただし、sudoコマンドを使うためには、予めsudoが使える権限がそのユーザーに付与されている必要があります。

su
suコマンドは、他のユーザーにログインし直す事ができます。このコマンドはいつでも使うことができますが、成り代わろうとしているユーザーのパスワードが必要です。

 

パーミッション

パーミッションについては下の記事参照。rwxでそれぞれの権限を表していて数字で表されることもあるってのはすぐわかると思うんだけど、注意点としては

 

ファイルとディレクトリのパーミッションは違うってことと

https://qiita.com/nikoniko/items/7ebdad48a3c35fbc538e

 

 よくパーミッションの話でrが4だよ、とか数字の話が出てくるけどls -aとかls -laとかで権限みてる時は文字で書いてあるのでごっちゃにしないように

https://www.ep.sci.hokudai.ac.jp/~epnetfan/tebiki/server-group/group.html

この記事から抜粋だが

$ ls -la
合計 ***
drwxr-xr-x    1 hogehoge    hogehoge        4096  Jun  5 19:13 foo
-rw-r--r--    1 hogehoge    hogehoge        1234  Jun 14 17:15 file1
-rwxrw-r--    1 hogehoge    epcore          5678  Jun 14 17:15 file2
-rw-r-----    1 hogehoge    epnetfan        9012  Jun 14 17:15 file3
-rw-rw----    1 hogehoge    epnetfan        3456  Jun 14 17:15 file4
-rw-------    1 epnetfan    epnetfan        7890  Jun 14 17:15 file5

見方は左から順にパーミッション、所有者、所属グループ、ファイルサイズ、
更新日時、ファイル名となっています.

  • パーミッションの見方
    d=ディレクトリ、r=読み込み権、w=書き込み権、x=実行権で、 各権限が左から所有者、グループ、その他の人に対して設定されています.

    例えば、file2は所有者hogehogeさんが読み書き実行、グループepcoreには 読み書き、その他の人に対して読み込みの権限を与えています. (hogehogeさんがepcoreとepnetfanの二つのグループに所属しているとする)

    この場合、グループユーザepnetfanになって読み書きできるのは、 file4、file5になります. file3はグループはepnetfanですが、グループに対して読み込み権しか 与えられていないので書き込むことはできません.

 

らしい。なので右の数字はファイルサイズ。ちなみにパーミッションの隣の数字はリンク数みたい。なのでよくセットで出てくるxが1, wが2, rが4だよっていう話はls -aでは表示されてない。このあたりの数字はchmodコマンドで権限変更する時に関係がある。

それと所有者とグループユーザーは表示されてるけどその他のユーザーは表示される名前もないからパーミッションの表示しかないね。

 

chmodで権限を変更する 

chmod [それぞれに与える権限を表す数字] [ファイル名とかディレクトリ名]

数字は所有者、グループに属してるユーザー、一般ユーザーなので

chmod 777 hogefile なら全てのユーザーhogefileに対してフルパーミッションを持つ

ls -lとかで確認するとパーミッション部分が

drwxrwxrwx

となっている

chmod 755 hogefileなら

drwxr-xr-x

chownで所有者を変更する

chown [所有者][ファイル名とかディレクトリ名]

 

その他

プロセス

Linux上で実行されている処理の一つ一つのこと

psコマンドで確認できる

ps -a 自分以外のユーザーのプロセスも表示する

ps -r 実行中のプロセスのみ表示する

ps -u ユーザー名とプロセスが実行された時刻を表示する

ps aux 実行中の全てのプロセスに関してCPU使用率等の詳細情報付きで表示する

 

パイプ処理

あるコマンドの結果を次のコマンドに渡していき、最終的には一番右のコマンドの処理の結果を受け取る

<最初に実行されるコマンド> | <左の結果を受けて最終的な結果を返すコマンド>

例1 

cd ~

ls | grep p

ホームディレクトリ直下のファイルやディレクトリの一覧から(ls)、pが含まれている物だけが表示される(grep p)

例2

ps aux | grep mysql | grep -v grep

実行中のプロセス一覧取得

mysqlの文字が含まれる物を検索

grep自体のプロセスを除いてターミナルに表示

grepコマンド

grep [検索ファイル] [検索パターン]で

パターンに一致する行を検索して表示してくれる

-vオプションは一致しなかった物を返すみたい

 参考記事

 https://webkaru.net/linux/ps-grep-exclude/

 

killコマンド

kill [プロセスI D] プロセスを終了

kill -9 [プロセスID] プロセスを強制終了

killは終了コマンドだがIDに対して再起動コマンドなんかもあるみたい