サーバー設定
一般ユーザーとルートユーザー
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に対して再起動コマンドなんかもあるみたい