Linux Upskill 2. ファイル・アクセス、タイムゾーン、ミッドナイト・コマンド、タブ、矢印の使用


この文章は朴載浩のYouTube講座を見て個人的に整理したものです.

1.ファイルアクセス許可とsudo


1-1. インストラクションエクササイズ

ubuntu@ip-172-26-9-205:~$ ls -l /etc/shadow
前に示したようにコマンドを入力します.結果は次のとおりです.-rw-r----- 1 root shadow 832 Mar 22 04:54 /etc/shadowここで左側のr,wが位置する場所はアクセス権限を示す部分である.
一番左の-はd,lなども表し,それぞれ正規ファイル,ディレクトリ,リンクファイルを表す.
次に、r、w、xの3つのタグが切断され、それぞれ読み取り、書き込み、実行権限が表示されます.
左から所有者、グループ、およびサードパーティの実行権限を意味します.
したがって、例のファイルは、所有者が読み書き可能であることを示し、グループ内のユーザーは読み取り専用であり、他のユーザーにはアクセス権がありません.
実則
ubuntu@ip-172-26-9-205:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied
catコマンド(コマンドラインまたはパラメータ1つで2つのファイルを1つのカスケードファイルに接続し、ファイルの内容を出力できる場合)は、ファイルにアクセスできません.
逆にsudoコマンドを使用してcatを実行すると、次のような効果が得られます.
ubuntu@ip-172-26-9-205:~$ sudo cat /etc/shadow
root:*:17786:0:99999:7:::
daemon:*:17786:0:99999:7:::
bin:*:17786:0:99999:7:::
sys:*:17786:0:99999:7:::
sync:*:17786:0:99999:7:::
games:*:17786:0:99999:7:::
man:*:17786:0:99999:7:::
lp:*:17786:0:99999:7:::
mail:*:17786:0:99999:7:::
news:*:17786:0:99999:7:::
uucp:*:17786:0:99999:7:::
proxy:*:17786:0:99999:7:::
www-data:*:17786:0:99999:7:::
backup:*:17786:0:99999:7:::
list:*:17786:0:99999:7:::
irc:*:17786:0:99999:7:::
gnats:*:17786:0:99999:7:::
nobody:*:17786:0:99999:7:::
systemd-network:*:17786:0:99999:7:::
...
次に、コマンドを入力します.
ubuntu@ip-172-26-9-205:~$ sudo -i
root@ip-172-26-9-205:~#
ユーザーがubuntuからrootに変更されたことがわかります.man sudoによる-iの理解

login shellに入る表現を使用します.これはsuperuser shellに入るのと同じです.
ユーザのログインレコードは、/var/log/auth.logで見つけることができる.
ubuntu@ip-172-26-9-205:~$ ls -al /var/log/auth.log
-rw-r----- 1 syslog adm 706785 Apr  2 13:41 /var/log/auth.log
このファイルはadmグループに属していなければ読み込めません.
ubuntu@ip-172-26-9-205:~$ id
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(lxd),114(netdev)
idコマンド検証によりubuntuアカウントはadmグループに属するため、sudoコマンドがない場合もauthである.ログファイルを読み込むことができます.
実際には、ファイルを読むと、非常に長いファイルが迎えてくれます.
ここでsudo権限を使用してアクセスしたレコードのみを表示したい場合はgrepコマンドでsudoと書かれた部分だけを抽出したい.
ubuntu@ip-172-26-9-205:~$ grep "sudo" /var/log/auth.log
コマンドを実行すると、sudoのみが収集されたレコードが表示されます.

2.タイムゾーン


2-1. インストラクションエクササイズ


まず,タイムゾーン情報を表示するコマンドを簡単に入力する.
 ubuntu@ip-172-26-9-205:~$ timedatectl
                      Local time: Fri 2021-04-02 14:01:52 UTC
                  Universal time: Fri 2021-04-02 14:01:52 UTC
                        RTC time: Fri 2021-04-02 14:01:53
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
利用可能タイムゾーンを表示するには、timedatectl list-timezonesコマンドを使用します.グローバルタイムゾーンが表示されるので、ここにアップロードされません.
タイムゾーン(手動/自動)を変更できますが、AWSを使用する場合は絶対にタイムゾーンを変更することはできません.default timezoneはUTCでなければなりません.
現在の時刻を正しく表示するには、アプリケーション側の使用場所などで修正する必要があります.データベースの場合は、UTCを使用して入力を受信し、入力を世界のどこでも自動的に変更する必要があります.

3.真夜中の指揮官を設置する


真夜中の指揮官はコンソールファイルマネージャアプリケーションの1つで、詳細は公式サイトhttps://midnight-commander.orgで入手できます.
インストール方法は前の記事と同じです.
sudo apt update
sudo apt upgrade
sudo apt install mc
更新後にインストールすることをお勧めします.

3-1. もてあそぶ


インストール後にsudo apt mcを実行し、以下の画面を表示します.

左、右ペインはtabキーに移動でき、下部のデジタルメニューはF 1~F 10に相当します.(マウスをクリックすることもできます)
また、左ペインのルートディレクトリにアクセスしようとすると、次の画面が表示されます.

もちろん、現在実行中のubuntuアカウントには権限がありません.
ファイルをコピーします.
上記の/var/log/auth.次の右ペインに示すように、ログファイルをコピーしようとします.コピーする場所は/testディレクトリです.

コピー方法は非常に簡単で、右ペインから/testディレクトリに入り、左ペインからauthに移動します.logファイルを選択し、f 5キーを押します.すると、次のようなウィンドウが表示されます.

/testディレクトリが設定されているかどうかを確認し、「enter」をクリックしてコピーした内容を表示します.
また、編集や削除も簡単です.f 4をクリックすると、どのエディタを使うかを尋ねる画面が表示されますので、好きなものを選ぶことができます.

削除はf 8を押すだけなので、単独で写真をアップロードすることはありません.
また、ディレクトリの作成は、f 7を押して新しいディレクトリ名を指定するだけで簡単に作成できます.

4.タブ/矢印および非表示のファイルの使用方法


4-1. タブ/矢印の使用


これまで、コマンドを入力するときは一言一句丁寧に(?)入力したはずです.
しかし、その都度この点を繰り返すのも難しく、間違いの可能性もあるので、少しでも簡単に入力できる方法をご紹介したいと思います.
tabキーをそのまま使えばいいですが、tabキーはauto completion(自動完了)機能を提供します.
less /etc/ser (tab)
less /etc/services
説明を見るより直接見るほうが分かりやすい.
serだけを打ってtabを押すと、自動完了サービスを確認することもできます.
seまたはsのみを検索すると、以下に示すように、se、sで始まるファイル/ディレクトリが表示されます.
自動完了機能によって、少しでも早く仕事ができるので、それを身につけることが役に立つと思います.
また、以前に実行したコマンドを再度実行する場合は、コマンドを再入力することもできますが、矢印の上下隅をクリックすると、以前に入力したコマンドが表示されます.
これにより、コマンドを簡単に再入力することなく、以前の作業を再実行できます.
また、以前に使用したコマンドのリストを表示したい場合は、historyコマンドでこれらのコマンドを表示できます.特に、grepコマンドでのみ必要なコマンドを検索できます.

historyで確認したコマンドを選択して実行する場合は、このコマンドをコピー、貼り付けできますが、!history번호をより簡潔な方法として使用できます.上の図に示すように、すべてのコマンドに番号が付けられているので、感嘆符+番号を使用してコマンドを実行できます.

4-2. ファイルを隠す


非表示ファイルのリストを含むls -alが表示されることを知っています.
ホームディレクトリにls -alと入力します.bashrcファイルと.bash historyファイルが表示されます.
.bashrcはbash設定を含むファイルです.bash historyは入力コマンドを記録するファイルです.
ではここで聞こえる疑問はbash historyコマンドと上のhistoryコマンドの違いは何ですか.
歴史ですね.bash historyファイルでは、データのインポートと表示が最大の違いです.
したがって、history -cでhistoryをクリアし、historyコマンドを使用してクリアします.何も見えませんが.bash historyはそのままであり、端末を終了した後にhistoryを再実行し、使用されたコマンドがそのまま残っていることがわかる.