Linuxのファイル管理

2022-12-12 (月) 09:07:21

Linuxのファイル管理

パーミッション設定:所有者

chown

  • chown <user-name> <file/dir-name> ※所有者を変更
  • chown <user-name>:<group-name> <file/dir-name> ※所有者とグループを変更
  • chown <option> <user-name> <directory-name>
    chown -R <user-name> <directory-name> ※指定したディレクトリ配下を変更

chgrp

  • chgrp <group-name> <file/dir-name> ※グループを変更
  • chgrp <option> <group-name> <file/dir-name>
    chgrp -R <group-name> <directory-name> ※指定したディレクトリ配下を変更

パーミッション設定:アクセス権

chmod

書式

  • chmod <mode> <file-name>
  • chmod <option> <mode> <file-name>
    • chmod -R <mode> <directory-name>
      chmod -R 777 <directory-name> ※ディレクトリ配下の権限を変更

modeの指定:数値指定

  • 2進数
    • 000 〜 111
  • 10進数
    • 0 〜 7 ※読取、書込、実行
      chmod 777 <file-name>
    • 4000 ※SUID
      chmod 4711 <file-name>
    • 2000 ※SGID
      chmod 2711 <file-name>
    • 1000 ※スティキービット
      chmod 1777 <directory-name>

modeの指定:シンボル指定

  • <対象><操作><許可条件>
    • 対象:u/g/o/a(所有者、グループ、その他、全て)
    • 操作:+/-/=(追加、削除、権限を指定)
    • 許可条件:r/w/x(読取、書込、実行)
    • 許可条件:s(SUID,SGID)
    • 許可条件:t(スティッキービット)
    • 許可条件:X(実行権限が付与されているファイル,ディレクトリの実行)
    • 許可条件:u/g/o(所有者、グループ、その他)
      chmod u+w <file-name> ※所有者に書き込み権限を追加する
      chmod go+r <file-name> ※グループとその他に読み取り権限を追加する
      chmod go+r <file-name> ※グループとその他の読み取り権限を削除する

SUIDとSGID

  • SUID(Set User ID) ※実行時のユーザID指定
    • 実行権限が付与されているユーザで実行されると、所有者の権限で実行されるようになる
    • 所有者の実行権の表現:s
      chmod u+s <file-name>
  • SGID(Set Group ID) ※実行時のグループID指定
    • 実行権限が付与されているユーザで実行されると、グループの権限で実行されるようになる
    • ディレクトリにSGIDを設定すると、ディレクトリ内に作成されたファイルやディレクトリの所有グループに、ディレクトリ自体の所有グループが設定される。
    • グループの実行権の表現:s
      chmod g+s <file-name>

スティッキービット(sticky bit)

  • スティッキービットを設定したディレクトリでは、書き込み権限があっても、自分以外のユーザーが所有するファイルを削除できない。
  • その他の実行権の表現:t
    chmod o+t <file-name>

umask

  • デフォルトのアクセス権を決めるumask値を表示・設定する
  • umask ※表示
    umask
  • umask <mask-value> ※設定する
    umask 0002
  • umask値
    • ファイル(666)やディレクトリ(777)からumask値を引いた値が、ファイルやディレクトリを作成した際のアクセス権限として設定される。

リンク

ln

  • リンクの作成
    ln <file_name_origin> <file_name_link> ※ハードリンクを作成
    ln -s <file_name_origin> <file_name_link> ※シンボリックリンクを作成
    ls -li ※iノード番号を確認
    cp -d <file_name_symbolic_link> <file_name_link> ※シンボリックリンクをコピー(-dを付けないとリンク元のファイル本体をコピーする)

unlink

  • リンクの削除
    unlink <file_name_link>

関連サイト

関連用語