• ベストアンサー

UNIXのディレクトリのパーミッションについて

初めて質問させていただきます。 UNIXのディレクトリのパーミッションについてなのですが、 パーミッションを表す'drwxr-srwt'など、"s"や"t"のフラグが付いていているときがあります。 色々と調べてみたのですが、根本的な解決までたどり着けませんでした。 そのフラグが付いているディレクトリが意味しているものは一体何なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

グループ(group)の所にある"s"がセット・グループIDビット(setgid bit/sgid bit)、その他(other)の所にある"t"がスティッキービット(sticky bit)です。 他に所有者(owner)の所にある"s"がセット・ユーザIDビット(setuid bit/suid bit)というものあります。 ○セット・ユーザIDビット(setuid bit/suid bit) 実行ファイル(プログラムやコマンド、スクリプト)を実行した時、普通は実行者の権限で動作しますが、suid ビットが立っていると、実行ファイル作成者の権限で動作します。 良く使用されるのがroot権限がないと使用出来ないコマンドを一般ユーザでも使用出来るようにした時です。 ○セット・グループIDビット(setgid bit/sgid bit) あるディレクトリの所有グループが group の時、このディレクトリに sgid ビットが立っていると、その中に作成されるファイルやディレクトリの所有グループは自動的に group になり、ディレクトリには sgid ビットがセットされます。 これは、グループ内で共有ディレクトリを作成し、そこでファイルを共有した時など設定されます。 ○スティッキービット(sticky bit) ディレクトリに sticky ビットが立っていると、そのディレクトリ以下にあるファイルの削除やファイル名の変更は所有者にしか出来なくなります。 これは、テンポラリ(/tmpとか/var/tmpとか)で誰にでも書き込める領域は欲しいが、他ユーザにファイル等を消されるのを防ぎたい時などに設定されます。 なお、実行権限の部分(xの所)に権限がある時は"s"や"t"に、権限がない時には"S"や"T"になります。

superunix
質問者

お礼

Leanさん、さっそくの回答ありがとうございます!! setUID、setGID、StickyBit、良く分かりました。 すいません、質問なのですが、setuidがディレクトリに振られている時は特に何もないのでしょうか?

その他の回答 (1)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

>setuidがディレクトリに振られている時は特に何もないのでしょうか? 特に何もないと思います。 もしかしたら意味を持つOSが存在するかもしれませんが、私はそういうOSを知りません。

superunix
質問者

お礼

Leanさん、重ね重ねありがとうございます!! そうなんですね。色々とやってみたのですが、 特に何も影響はありませんでした。 ご回答いただき、ありがとうございました!!

関連するQ&A

  • UNIXのパーミッションについて

    いきなりなんですが、 UNIXのパーミッションで”r・w・x”以外に ”t・s”があることがわかったのですが よくわかりません。 どういうことなのでしょうか? ”man”コマンドで調べてみたんですが、正直意味がわかりません! 変な質問で申し訳ないですが、よろしくお願いいたします!

  • UNIXでのファイル、ディレクトリのパーミッションの初期設定

    こんにちは。今回質問させてもらうのは初歩的なことで、 こんなことをいちいち聞いていたらいつまでたっても上達しない、といわれそうでがお願いします。 UNIXで新しくファイルやディレクトリを作った時に、自動的にパーミッションが設定されますが、 そのパーミッションの初期設定を変更したいのですが、その場合どこを変更したら良いのですか??

  • ディレクトリのパーミッション(実行フラグ)について

    今まで意識して考えたことが無かったのですが、ふと気づいたので質問させていただきます。 ディレクトリの実行フラグが立たないとそのディレクトリ内のファイルに対して読み書きが出来ないので、通常はパーミッションを必ず奇数にする必要があると思っていました。 これまでは意識せずそうしてきたのですが、自分の使っているVineLinuxでは/var/logのパーミッションが666となっていました。 不思議なことに!?他の一般ユーザーではアクセスすらできないlogディレクトリに、rootでは問題なくlogディレクトリへのアクセスやファイルの作成等ができました。 たしかにrootで消せなくなるファイルがあると問題になるのでrootは特別なのかもしれませんが、ディレクトリのパーミッションが666の場合どういう扱いになるのか教えていただけないでしょうか。

  • ディレクトリのパーミッション

    FMVA77C2LG (Win10) ファイル(免許証)をアップロードすると、次のエラーメッセージが出ました。 添付ファイル一時保存用のディレクトリが無いかパーミッションが正しくありません。./tmp/ディレクトリが存在するか、または./tmp/ディレクトリのパーミッションを書き込み可能(777等※サーバによる)にしてください どうしたらいいでしょうか? よろしくお願い致します。 ※OKWAVEより補足:「富士通FMV」についての質問です。

  • ディレクトリパーミッションの読込み権限

    一般的なWebサーバーに於いて、ディレクトリに対するパーミッションの表す具体的な意味がよくわかりません。いろいろ調べてはいるのですが、以下のような漠然とした理解に留まっています。 読込: ディレクトリの中身を見る(?) 書込: ディレクトリ内でファイルを作成, 削除 実行: ディレクトリ内のファイルにアクセス 特に判然としないのが、読込みと実行の違いです。 現在、自サイト内の全てのディレクトリのパーミッション値を701、つまり訪問者には実行権限のみを与えるということで統一していますが、今のところ問題は起きていません。 では、読込み権限が必要になるのはどのような場合が考えられるでしょうか。 また、上記の私の理解は合っているでしょうか。間違っていれば訂正、補足をお願い致します。

  • linuxでディレクトリをコピーしようとするとomitting directoryというエラー

    linuxでディレクトリをコピーしようとするとomitting directoryというエラーが出てコピーできません。 root@aaaaa# cp -p /home/dir1/ /home/dir2 cp: omitting directory `/home/dir1/' ちなみにこのディレクトリのパーミッションはdrwxr-xr-xです。 なんでしょうかこれは?

  • パーミッション 所有者について

    Linuxにて、「httpd-2.0.59.tar」を展開した際に、パーミッションの 所有者が、drwxr-xr-x 11 500 500 4096 Jul 28 02:44 httpd-2.0.59/ となってしまいます。ちなみに、展開実行の 際には、rootで実施しています。なぜrootにならずに、「500」となってしまうのか、理由を教えてください。また、解決方法があれば、教えてください。宜しくお願いいたします。

  • NASのパーミッション設定

    市販のIOのHDL-XVやバッファローのテラステーションのような簡単なネットワークファイルサーバー装置で、unixのようにothersに対してパーミッションをr--(リードオンリー)にし、指定したユーザーやグループだけrwx(読み書き可能)にできる製品は無いでしょうか? この設定は、ルートにあるディレクトリ単位でも構いません。 ローカルネットに接続できる全てのユーザーに閲覧可能にしたいのですが、変更をされては困る特定のディレクトリ(サブディレクトリも含む)作成する必要があります。 (HDL-XVでは、ルートのディレクトリ単位でアクセス制限が掛けられるのですが、othersのような概念が無いようです。OSはLINUXだと聞いた記憶がありますが、LINUX自体のパーミッションはunixと同じだと思っていました)

  • パーミッションが変更できない

    前の質問から主旨が変わったので、新たに質問を作成させていただきました。 FedoraCore2で自宅サーバーを運営していますが、ユーザーでデータが書き込めず、困っています。 現在のパーミッションの構成が /mnt(777)/hdd(755)/user(755)/ユーザー名(755) と、書き込みの許可されていないパーミッションが原因であると解釈し、パーミッションの変更を試みました。 ところが、FFFTPを使いrootでログイン、その後、属性変更から777にしても、Linux機に直接ログインして chmod 777 /mnt/hdd としても、ls -ld /mnt/hddとすると drwxr-xr-x 3 root root … と表示されてやはり変更されていませんでした。 さらに、766に変更しようとすると、744になってしまい、どうしても書き込み許可のパーミッションに変更することができませんでした。 原因がまったく分からないのですが、原因や解決策をご存じの方、どんな些細なことでもかまいませんので、ご教授いただければ幸いです。 宜しくお願いいたします。

  • UNIX の "ls -l" コマンドで、パーミッションの末尾に付く "@", "+" とは何?

    UNIX の "ls -l" コマンドで、パーミッションの末尾に付く "@", "+" の意味を教えて下さい。また、"@", "+" 以外にも現れるものが有れば、教えて下さい。また、この "@" と、ファイル名の末尾に付く(シンボリックリンクファイルであることを示す)"@" と、の間に関連性があるのか否かを教えて下さい。更に、参考になりそうなサイトURL・書籍なども教えていただけると助かります。 環境:Mac OS X 10.5.8 以上、宜しくお願いいたします。