はじめに
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
SUID
Set User ID
の略で、SUIDが設定されているファイルが実行されると、所有ユーザの権限で実行される
a.outに対してSUIDを設定する
chmod u+s a.out
これは、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
スティッキーピット
ディレクトリに設定すると、 他のユーザがファイルを削除できなくなる
sticky/は所有ユーザ以外が削除できない
chmod o+t sticky/ (もしくは) chmod 1544 sticky/
umask
デフォルトのアクセス権を設定する ファイルは 666 から、ディレクトリは 777 から umask で指定した値を引いたものがデフォルト のアクセス権になる
ファイルは 666 から、ディレクトリは 777 から umask で指定した値を引いたものがデフォルト のアクセス権になる
umask 666
ファイルのデフォルトのアクセス権は666から指定した666を引いたもの->000になる。
$ umask 666
$ touch file
ファイルのデフォルトのアクセス権は666から指定した002を引いたもの->664になる。
$ umask 002
$ touch file4
To Be Continued...
Linux入門 3-2 へ