[Udemyの動画講座]:https://www.udemy.com/course/linuxlpic/?utm_source=bene-content-marketing&utm_campaign=normal&utm_content=story&utm_term=career&utm_medium=udemyads
[Linux入門 2-4]:https://qiita.com/hoglet/items/152c3c9c711911e6d9c8
[Linux入門 3-2]:https://qiita.com/hoglet/items/c6af8d1bd5c256b0369a
はじめに
Linux初学者である自分向け用の記事です。[Udemyの動画講座]を参考にしました。
僕の勉強法は動画を見る
→実際に動かしてみる
→問題演習
という流れです。
前回まで:[Linux入門 2-4]
3. LinuC 101 Ver .10.0(問題、テスト、演習)
ファイル・ディレクトリの操作と管理
chmod , umask , chown , chgrp , ls
ls
ディレクトリ、ファイルの属性を含んだ詳細な情報を表示するコマンド
ls -1: 縦に並べて表示
ls -l: 詳細(所有者、アクセス権など)も含んだ情報を表示
ls -a: . から始まるファイル(隠しファイル)も表示
ls -r: 逆順に表示
ls -R: ディレクトリ内を再帰的にすべて表示
ls -t: 更新日時でソートして表示
chown
指定したファイル、ディレクトリの所有するユーザ、グループの変更
-R: ディレクトリの中身も再帰的に変更
test.txtの所有ユーザをrootからtestに変更
chown test test.txt
test.txtの所有ユーザをroot、所有グループをtest に変更
chown root:test test.txt
d1と中のファイル所有ユーザをroot、所有グループをtest に変更
chown -R root:test d1/
chgrp
指定した所有グループに変更
-R: ディレクトリの中身も再帰的に変更
test.txtの所有グループをmy_groupに変更
chgrp my_group test.txt
chmod
アクセス権を変更するコマンド(root ユーザと所有しているユーザが実行できる)
-R: ディレクトリの中身も再帰的に変更
簡易早見表(これだけ覚えればOK!)
4 2 1
r w x
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
--- | --x | -w- | -wx | r-- | r-x | rw- | rwx |
権限の区分
ディレクトリ | 所有者権限 | グループ権限 | その他のユーザーの権限 |
---|---|---|---|
d | 7 | 5 | 3 |
- | rwx | r-x | -wx |
実行例
すべての権限を付与しない
chmod 000 test.txt
r-x -wx --xの権限
chmod 531 test.txt
所有ユーザにr--権限を付与
chmod u+r test.txt
所有グループにrw-権限を付与
chmod g+rw test.txt
その他ユーザにrwx権限を与える
chmod o+rwx test.txt
所有ユーザと所有グループからr-x権限をはく奪
chmod ug-rx test.txt
## 所有グループの設定
my_groupグループにtestユーザを追加
usermod -g my_group test
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2217966/7ae94485-25d4-a374-fdda-ef65453174eb.png)
## SUID
`Set User ID`の略で、SUIDが設定されているファイルが実行されると、所有ユーザの権限で実行される
a.outに対してSUIDを設定する
chmod u+s a.out
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2217966/f1925f48-be3d-0953-d93a-72a00dff1deb.png)
これは、testユーザーの所有ユーザ権限だと実行できないもの(今回は所有ユーザがrootである`a.out`)が、SUIDを設定することで実行できるようになる。
//実行不可
test@ $ ./a.out
//a.outに対してSUIDを設定
root@ $ chmod u+s a.out (もしくは)root@ $ chmod 4755 a.out
//実行可能
test@ $ ./a.out
## SGID
`Set Group ID`の略で、SGID が設定されているファイルが実行されると、所有グループの権限で実行される
a.outに対してSUIDを設定する
chmod g+s a.out
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2217966/07b6dac7-d94a-4d7e-6569-f2b4c7268387.png)
## スティッキーピット
ディレクトリに設定すると、 他のユーザがファイルを削除できなくなる
sticky/は所有ユーザ以外が削除できない
chmod o+t sticky/ (もしくは) chmod 1544 sticky/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2217966/eb068336-e7ec-fb82-ce50-53f4e3e56266.png)
## umask
デフォルトのアクセス権を設定する ファイルは 666 から、ディレクトリは 777 から umask で指定した値を引いたものがデフォルト のアクセス権になる
ファイルは 666 から、ディレクトリは 777 から umask で指定した値を引いたものがデフォルト のアクセス権になる
umask 666
file6のデフォルトは644である。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2217966/13eb75fc-dce4-47ef-b127-4c3bbf3456d6.png)
ファイルのデフォルトのアクセス権は666から指定した666を引いたもの->000になる。
$ umask 666
$ touch file
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2217966/f7828c1f-f3f0-d515-c8be-20852a11a550.png)
ファイルのデフォルトのアクセス権は666から指定した002を引いたもの->664になる。
$ umask 002
$ touch file4
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2217966/de2ed619-9d13-8881-ecdf-15a9a78ac58d.png)
*To Be Continued...*
[Linux入門 3-2] へ
***