グループの登録・削除
グループとは
ユーザの一群のこと。グループに分けておくと、色々一括で設定ができる。
ユーザは必ず一つ以上のグループに所属する。ユーザには1次グループを1つ割り当てる必要があり、2次グループは任意。
ユーザが所属するグループはgroupsコマンドで表示できる。
※以下記事の「グループ」の項目にて記載。
groupaddコマンド
groupadd [-g グループID] [グループ名]
新しくグループの登録をするには、groupaddコマンドを使用する。
-gオプションを使用しない場合は、現在使用されている最大値+1が設定される。
新しいグループのエントリは/etc/group/と/etc/gshadowファイルの最終行に追加される。
groupdelコマンド
groupdel [グループ名]
グループの削除。
まとめ
グループの変更については、usermodコマンドを使用して変更します。
今回の記事はグループの新規登録と削除のみに焦点を置いています。
ユーザの登録・変更・削除
ユーザの情報
ユーザの情報は/etc配下にある、passwd、shadow、group、gshadow、これらのファイルに記載されている。
passwdファイルの内容
ユーザのパスワードが格納されている。
システムのユーザであれば、誰でも確認可能。
/etc/passwdには6つの「:」で区切られた7つのフィールドから構成される行が追加される。
第1フィールド:ログイン名
第2フィールド:xまたは暗号化パスワード:ユーザID(shadowを使う場合は「x」、使わない場合は「暗号化パスワード」)
第3フィールド:ユーザID
第4フィールド:グループID
第5フィールド:コメント
第6フィールド:ホームディレクトリ
第7フィールド:ログインシェル
shadowファイルの内容
シャドウパスワードの仕組みで利用されている。
シャドウパスワードとはパスワードのデータを一般ユーザから見えないようにするための仕組み。
第1フィールド:ログイン名
第2フィールド:暗号化されたパスワード
第3フィールド:パスワードの変更最終日
第4フィールド:変更可能最短期間
第5フィールド:未変更可能最長期間
第6フィールド:未変更時警告日
第7フィールド:ログインしない場合に無効になる日数
第8フィールド:アカウントが失効になるまでの日数
第9フィールド:フラグ
useraddコマンド
useradd [オプション] [ユーザ名]
オプション | 説明 |
---|---|
-c コメント | コメントの指定 |
-d ディレクトリパス | ホームディレクトリの指定 |
-e 失効日 | アカウント失効日の指定。
フォーマット:YYY-MM-DD(2022-12-31) |
-f 日数 | パスワードが失効してからアカウントが使えなくなるまでの日数 |
-g groupID | 1次グループの指定 |
-G groupID | 2次グループの指定 |
-k skel | skelディレクトリの指定 |
-m | ホームディレクトリを作成する。
/etc/login.defsで設定されていればなしでも作られる。 |
-M | ホームディレクトリを作成しない。 |
-s シェルのパス | ログインシェルの設定 |
-u UIDの指定 | UIDの指定 |
-D | デフォルト値の表示あるいは設定 |
新規ユーザを登録するには管理者が実行する必要がある。
オプションなしに実行した場合、/etc/default/useraddに記載されている設定が適応される。
項目 | 説明 |
---|---|
GROUP | |
HOME | 指定されたディレクトリの下にユーザ名のディレクトリを作成し、ホームディレクトリとする。 |
INACTIVE | パスワードが失効してからアカウントが使えなくなるまでの日数。「-1」は無期限の意味。 |
EXPIRE | アカウント失効日。値がない場合は無期限。 |
SHELL | ログインシェル |
SKEL | 新規ユーザのホームディレクトリのテンプレート。/etc/skelのコピーが新規ユーザのホームディレクトリに作成される。 |
CREATE_MAIL_SPOOL | /var/spool/mail/に新規ユーザ用のメール保存ファイルが作成される。 |
また、/etc/skelディレクトリ配下にあるファイルとディレクトリはuseraddコマンドを実行した時に自動的にユーザのホームディレクトリにコピーされる。
passwdコマンド
passwd [オプション] [ユーザ名]
オプション | 説明 | ユーザ |
---|---|---|
-d | パスワードを期限切れにする
期限切れにされたユーザは次回ログイン時にパスワードの設定が必要 |
一般ユーザ・root |
-e | パスワードを削除 | root |
-i 日数 | パスワードの有効期限が切れてから使用不能になるまでの日数を指定 | root |
-l | ユーザのアカウントをロック | root |
-n 日数 | パスワード変更が可能になる最小日数を指定 | root |
-u | ユーザのアカウントロックを解除 | root |
-w 日数 | パスワードの期限切れになる何日前から警告文を出すか指定 | root |
-x 日数 | パスワード変更の最大日数を指定 | root |
パスワードの設定をするコマンド。
rootはユーザ名を指定してパスワードを変更することができるが、一般ユーザは自分のパスワードのみ。
userdelコマンド
userdel [オプション] [ユーザ名]
オプションrを付けて実行するとホームディレクトリも同時に削除する。
デフォルト実行すると/etc/passwdと/etc/shadowのエントリのみ削除されホームディレクトリは削除されない。
usermodコマンド
usermod [オプション] [ユーザ名]
オプション | 説明 |
---|---|
-l 名前 | ログイン名の変更 |
-d ホームディレクトリのパス | ホームディレクトリの変更 |
-g groupID | 1次グループの変更 |
-G | 2次グループの変更 |
-s シェルのパス | ログインシェルの変更 |
ユーザ情報を変更するためのコマンド。
usermod -l 新ログイン名 旧ログイン名
とすることでログイン名の変更可能。
まとめ
ユーザの登録・変更・削除の方法について記載しました。
パスワードの管理も重要なことなので管理者はこんなのあったなぐらいに覚えていれば、引き出すことができるかもしれません。
viエディタでファイル編集
概要
viはBlii Joy氏が開発したUNIX標準のテキスト編集用のエディタ。
viエディタを用いると、ファイルの作成・削除を行うことが可能。
Linuxではviエディタの昨日を拡張したVimが提供されていて、最近のRedHat系ディストリビューションではviはvimの最小構成パッケージあるいはvimのエイリアスとして提供されている。
モード
viエディタは3つのモードを切り替えて作業を行う。
モード | 説明 |
---|---|
コマンドモード | カーソルの移動、文字や行の削除、コピー、貼り付けなどが行える。このモードがデフォルト。 |
入力モード(インサートモード) | 文字の入力が行える。 |
ラストラインモード | 文章の保存、検索や文字列の置換が行える。 |
コマンドモード
カーソルの移動、スクロール、文字のコピーや貼り付けなどを行う。
カーソルの移動
コマンド | 説明 |
---|---|
h ← | カーソルを左に1文字移動 |
j ↓ | カーソルを下に1文字移動 |
k ↑ | カーソルを上に1文字移動 |
l → | カーソルを右に1文字移動 |
0 | カーソル行の先頭へ移動 |
$ | カーソル行の末尾へ移動 |
G | 最終行へ移動 |
nG | n行目へ移動 |
画面のスクロール
コマンド | 説明 |
---|---|
ctrl+b | 前画面に1画面スクロール |
ctrl+f | 次画面に1画面スクロール |
文字の編集
コマンドモードで文字を挿入すること無く、コピーや削除を行える。
コマンド | 説明 |
---|---|
x | 1文字削除 |
nx | カーソルから右にn文字削除 |
dd | カーソル行を削除 |
ndd | カーソルからn行削除 |
dw | カーソルから次の単語を削除
(単語は空白があるまでの文字列) |
D | カーソルから行の最後まで削除 |
dG | カーソル行から最終行まで削除 |
dH | 1行目からカーソル行まで削除 |
用途 | コマンド | 説明 |
---|---|---|
コピー | yl | 1文字のコピー |
yw | 単語のコピー | |
yy | カーソル行のコピー | |
nyy | カーソル行からn行目までコピー | |
y0 | 行頭からカーソルの直前までのコピー | |
y$ | カーソルの位置から行末までのコピー | |
ペースト | P | 行のコピーをしている場合は、カーソルの上の行に貼り付け
文字、単語をコピーしている場合は、カーソルの左に貼り付け |
p | 行のコピーをしている場合は、カーソルの下の行に貼り付け
文字、単語をコピーしている場合は、カーソルの右に貼り付け |
入力モード(インサートモード)
ファイル内に文字を入力することができる。
インサートモードの切替方法
インサートモードにはコマンドモードからコマンドを入力することで切り替えることができる。
コマンド | 説明 |
---|---|
i | カーソルの前に文字を挿入 |
a | カーソルの後に文字を挿入 |
o | カーソル行の下に新しい行を作成し、文字を挿入 |
I | iと同じ |
A | aと同じ |
O | oと同じ |
ラストラインモード
テキストの保存や終了、文字列の置換と検索を行える。
ファイルの保存・終了
用途 | コマンド | 説明 |
---|---|---|
保存 | :w | ファイル名を変更せずにそのまま保存 |
:w! | ファイル名を変更せずに強制的に保存 | |
:w ファイル名 | ファイル名を変更して保存(もしくは新規保存) | |
終了 | :q | ファイルを保存せずに終了 |
:q! | ファイルを保存せずに強制的に終了 | |
保存して終了 | :wq | ファイルを保存して終了 |
:wq! | 強制的にファイルを保存して終了 | |
:wq ファイル名 | ファイル名を指定して保存して終了 | |
その他 | :! コマンド | viから抜けずにコマンドを実行 |
:e! | 編集内容を破棄し、ファイルを再読込する |
文字列の検索
コマンド | 意味 |
---|---|
/文字列 | 現在のカーソル位置からファイルの末尾に向かって検索 |
?文字列 | 現在のカーソル位置からファイルの先頭に向かって検索 |
n | 次の検索 |
N | 前の検索 |
その他の編集に便利なコマンド
ちょっとした便利なコマンド
コマンド | 説明 |
---|---|
u | 最後に実行した編集の取消 |
. | 最後に実行した編集の繰り返し |
~ | カーソル上の文字を大文字・小文字切り替える |
viエディタの設定
viエディタには、有効になっていない便利なオプション機能が備わっている。
オプションを設定したり、初期設定を変更したりすることができる。
コマンド | 説明 |
---|---|
:set オプション | オプション機能の設定 |
:set no オプション | オプション機能の解除 |
オプション | 設定 |
---|---|
number | 行番号を表示 |
ignorecase | 大文字小文字を区別しない |
list | タブや行末文字等通常表示されていない文字を表示 |
all | 全てのオプションを表示 |
まとめ
viエディタを利用する場合は、今どういうモードなのかを理解していないと思いもしない操作で混乱することがあります。
また、コマンドやオプションなども多々存在するためよくあるコマンドだけ理解して使い慣れるようにしたほうが良いかもしれません。
モードの遷移とコマンドの種類について理解して使うようにしましょう。
コマンドとファイルの検索
概要
LinuxにはファイルやLinuxのコマンドについて検索したりすることが多くある。
検索一つをとってもいろいろな検索があるので用途に応じた検索を行うようにしよう。
findコマンド
find [パス] [式]
式 | 説明 |
---|---|
-name | 指定したファイル名で検索 |
-type | ファイルの種類で検索
d(ディレクトリ)、f(通常ファイル)、l(シンボリックファイル) |
-size | 指定したブロックサイズで検索 |
-atime |
指定した日時を基に、最終アクセスがあったファイルを検索 +数値(数値以上前)、数値(数値の指定)、-数値(数値以内) |
-mtime | 指定した日時を基に、最終更新されたファイルを検索 |
検索結果を標準出力 | |
-exec command \: | 検索後、コマンドを実行 |
指定したディレクトリ配下で、指定した検索条件に合致するファイルを検索する。式を活用して様々な条件を指定できる。
デフォルト実行するとカレントディレクトリが設定されている。
locateコマンド
locate [オプション] [パターン]
オプション | 意味 |
---|---|
-d パス | データベースの位置を指定 |
-r | 正規表現を使って検索 |
-c | 検索された数を表示 |
-e | 現在、存在するファイルやディレクトリのみを検索 |
findコマンドと同様にファイルの検索を行う。
ファイル名・ディレクトリの一覧のデータベースを使用して、インデックス検索を行っているため高速で検索できる。
しかし、データベースには日単位で更新されるためすぐに反映されるわけではない。更新されるまでは検索対象からは外れる。
locateコマンドは引数にメタキャラクタを使用でき、正規表現を用いて検索をすることができる。
また、メタキャラクタを含まない文字列だけの検索をした場合、検索した文字列を含むファイル名およびディレクトリを全て表示する。
updatedbコマンド
updatedb [オプション] [パス]
オプション | 説明 |
---|---|
-e | データベースのファイルの一覧に取り込まないディレクトリパスを指定 |
-o | 更新対象のデータベース名を指定。独自に作成したデータベースを指定したい場合に使用 |
データベースの更新を行う。
引数なしで実行した場合は/etc/updatedb.confに記載されているデータベースのパスを参照し更新する。
updatedbコマンドを実行したらlocateコマンドで検索できるようになっている。
更新されたことが確認できる。
whichコマンド
which [オプション] [コマンド名]
オプション | 説明 |
---|---|
-a | 最初に見つかったものだけでなく、環境変数PATHに合致したものを全て表示 |
-i | 標準入力からエイリアスを読み込み、合致したものを表示 |
指定されたコマンドがどのディレクトリに格納されているか確認する。
whichコマンドで表示されないのは、内部コマンドのためである。表示されるのは外部コマンドのみである。
whereisコマンド
whereis [オプション] [コマンド名]
オプション | 説明 |
---|---|
-b | バイナリの場所を表示 |
-m | マニュアルの場所を表示 |
-s | ソースファイルの場所を表示 |
指定されたコマンドのバイナリ、ソース、マニュアルページの場所を表示する。
まとめ
パイプとか一緒に使って、検索すると活用しやすいので覚えておこう。
【ネタバレあり】よふかしのうた【1話】
ただの考察と感想をつらつら書いていきます。不快に感じられた方には申し訳ございません。
概要
女子が苦手な中学2年生の夜守コウ。普通に学園生活を過ごしていたが、とあるきっかけで不登校生活に。さらに、夜は寝れない日々を過ごしている。
ある日の夜中に初めて誰にも気づかれないように外にでたコウは、夜中独特の雰囲気の中で自由さを感じ、自分の居場所を見つけた。
そこに謎の女、七草ナズナが現れる。
ナズナはコウを連れ出し夜の街に繰り出し、夜の楽しさを教えるのである。ナズナに連れられて行き着いた先はナズナの家。
一緒に寝ようと誘われ、寝てみるとなんと首元に口を近づけ血を吸ったのである。ナズナは吸血鬼だった。
しかし、血を吸われたのに吸血鬼にならないことに疑問を感じるコウ。吸血鬼にするには条件「好きになること」だった。
「好き」という感情を知りたいコウは吸血鬼になりたがる。
そんな二人の恋愛?ストーリーが始まる。
感想
opとed
opとed両方「creepy nuts」さんが担当。
歌詞が今後の布石になっているのかちょっとだけ興味深い。
ストーリー
同級生との恋愛事情が原因のいざこざが面倒くさく感じて不登校。なんか違和感。学校に行くことは嫌になるかもしれないが、不登校にまで発展するものなのか?
夜中誰にも言わず勝手に一人で外に出たコウ。夜中は自由で自分の居場所を見つけたといっているが、無理に笑ってみせたりしていて『本当にそこがコウが居たい場所なのか?』と疑問に感じた。
親ともなにか確執があるのか、ふいに来たメールに「外に出たことを親にバレたかも!?」と焦っている様子だが、違ったことに落胆しているようにも見えた。
親がコウに無関心なのか、親に心配してもらいたくて外に出たようにも見える。
コウの悩みごとは2つ?
- 好きとか付き合うということが分からない。
- つまらない日々を過ごしたくない。
好きという感情を理解したいのはわかるが急につまらない日々を過ごしたいと言い出したのは疑問。好きになるという感情を知ればつまらない日々を抜け出せるということなのか。
七草ナズナの第一印象はト◯ちゃん(ヒロアカ)似だなぁ。
かわいいのとエロいのが混在している。
心配事や悩みから切り離して快楽へと導こうとする姿が印象的。
なぜコウに目をつけたのか謎。誰彼構わず声かけて居たのが偶々コウだったのか?
作画
中学生の主人公が感じる世界とは全く違う大人の世界を感じる描写が印象的。
ホテルに色は妖艶さを感じる紫色やピンクに類した色を多く使って、昼からは想像できない夜の世界を感じる。
まとめ
恋愛ストーリーっぽいけど日常と非日常が混在していて感情移入しづらい。
これは私の恋愛経験の少ない私の問題なのだろうか。。。
コウの問題解決ストーリーになるのかナズナちゃんかわいい!エロい!になるのか。
リンクについて
概要
ファイルの実体にファイル名をつなぐことをリンクといい、シンボリックリンクとハードリンクの2種類がある。
シンボリックリンク
windowsのショートカット、Macだとエイリアスと同じ。
ファイルやディレクトリを別の場所から参照するために、別名をつけてリンクとして別の場所に作成するためにシンボリックリンクを作成する。
ハードリンク
linuxでは全てのファイルはinodeと呼ばれるファイルシステム上で一意のデータを参照する。
inodeとはファイルやディレクトリの所有者や更新日時、ファイルサイズなどの属性情報が書かれているデータ。
ディスク上でデータに対して一意なinodeが存在し、それに対して必ず1つのハードリンクが存在する。
なので、ファイル、ディレクトリが作成された時に少なくとも1つのinodeとハードリンクでつながる。
別途ハードリンクを作成する場合、一つのデータに複数のハードリンクで参照するファイルやディレクトリが存在する。
ハードリンクはinodeを参照する。
シンボリックリンクとハードリンクの違い
シンボリックリンクは元データが削除・移動されるとシンボリックリンクが無効になる。ディレクトリに対しても作成可能。
ハードリンクは元データが削除・移動されても参照先がinodeなのでハードリンクの参照が消えるわけではない。
lnコマンド
ln -s [ファイル名] [リンク名]
シンボリックリンクの作成。
元データが削除されると、参照できない。
ln [ファイル名] [リンク名]
ハードリンクの作成。
ln -liコマンド実行時、先頭にあるのがinode番号。
同じになっていることが確認できる。
元データを削除した場合でも、作成したハードリンクを参照できる。
まとめ
リンクの作成方法と違いについて、記載しました。
使用用途についてはわからないので、これから理解していきたいです。
パーミッション
概要
ファイルやディレクトリのアクセス制御を行う。
グループ
ユーザは、必ず一つ以上のグループに所属しなければならない。
グループには1次グループと2次グループがあり、ユーザは必ず1次グループに所属しなければならない。2次グループは任意。
1次グループはログインした直後に割り当てられているグループ。
id
ユーザとグループには識別するためにユーザID(uid)とグループID(gid)が割当らてる。
groupsコマンド
groups [ユーザ名]
idコマンド
id [オプション] [ユーザ名]
パーミッション
「誰に」、「どの操作」を許可するのかを設定すること。
パーミッションを調べるにはls -lコマンドで確認できる。
種類 | 説明 |
---|---|
- | 通常ファイル |
d | ディレクトリ |
l | シンボリックリンク |
パーミッションはアクセス権限でそのファイルやディレクトリに対して、操作権限を管理している。
アクセス権 | 説明 |
---|---|
r | 読み込み可能 |
w | 書き込み可能 |
x | 実行可能 |
- | 権限なし |
chmodコマンド
chmod [オプション] [モード] [ファイル名]
既存のファイルやディレクトリに設定されているパーミッションをchmodコマンドで変更できる。
モードにはシンボリックモードとオクタルモードの2種類がある。
シンボリックモード
文字や記号を用いてパーミッションを変更する。
chmod ユーザ名① 操作② パーミッション③ ファイル名
u | 所有者 |
g | グループ |
o | その他 |
a | 全てのユーザ |
+ | 権限の追加 |
- | 権限の削除 |
= | 権限をそれのみの設定 |
r | 読み取り |
w | 書き込み |
x | 実行 |
オクタルモード
8進数の数値を組み合わせて権限の変更する。
数値 | パーミッション |
---|---|
4 | 書き込み |
2 | 読み込み |
1 | 実行 |
0 | 権限なし |
書き込みと読み込みを同時に2つ権限を付与したい場合は4+2で6を指定すると、2つの権限が付与される。
umask値
ファイルやディレクトリを新規作成した時にデフォルトでパーミッションに設定される。
それを決定しているのはシェルに設定されたumask値。
割り当てたくないパーミッションを指定している。
umaskコマンド
umask [値]
現在設定されているumask値を確認したり、変更したりする。
chownコマンド
chown [オプション] [ユーザ名[.グループ名]] [ファイル名|ディレクトリ]
指定されたファイルやディレクトリの所有者を変更できる。
ルートユーザのみがこのコマンドを使用できる。
chgrpコマンド
chgrp [オプション] [グループ名] [ファイル名|ディレクトリ]
グループのみの変更を行う。
sudoコマンド
root [オプション] [ユーザ名] [コマンド]
管理者権限を持たないユーザが管理者権限が必要な特定のコマンドを実行するために一時的に管理者権限を付与する。(※管理者であるが一部は制限される。)
sudoコマンドは/etc/sudoersを参照してユーザがコマンドの実行権限を持っているかどうかを判定する。特定のコマンドを特定にユーザに使用許可・拒否させたい場合も/etc/sudoersを編集する。
まとめ
操作させても良いユーザやグループを正しく把握・設定する必要が有ります。