Linuxとコマンドラインの基礎

多くのLinuxで「ls -l /usr/bin/passwd」を実行すると「-rwsr-xr-x 1 root root ...」と表示される。所有者の実行の位置にある「s」の意味として、正しいものはどれか。

  1. Asetuid が設定されていて、誰が実行しても、そのプログラムはファイルの所有者(ここでは root)の権限で動く
  2. Bスティッキービットが設定されていて、所有者と root 以外の利用者は、このファイルを削除したり名前を変えたりできない
  3. Cこのファイルが共有ライブラリであることを表し、ほかのプログラムから呼び出されるだけで、コマンドとして直接は実行できない
答えと解説を見る

正解:A. setuid が設定されていて、誰が実行しても、そのプログラムはファイルの所有者(ここでは root)の権限で動く

s は setuid(set user ID)のビットと実行の権限が両方立っていることを表し、そのプログラムは実行した利用者ではなく、ファイルの所有者の権限で動きます。passwd は、一般の利用者が自分のパスワードを変えるときに、root しか書き込めない /etc/shadow を更新する必要があるので、setuid の root のプログラムになっています。setuid のプログラムに欠陥があると、一般の利用者が root の権限を得る足がかりになるので、むやみに付けてはいけません。8進数では 4000 の位で表し、chmod 4755 とすると -rwsr-xr-x になります。

  • A. 正しい。実行した利用者ではなく、所有者の root の権限で動きます。
  • B. スティッキービットは、その他の実行の位置に「t」と表示されます(/tmp の drwxrwxrwt など)。ディレクトリに付けると、中のファイルを所有者などしか削除できなくなります。
  • C. 共有ライブラリかどうかは、権限の表記には表れません。s は、実行したときの権限についての印です。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. 上のコマンドを順に実行したとき、最後の cat で表示される内容として、正しいものはどれか。
  2. 上のように、a.txt はあり nofile はないディレクトリで、最後のコマンドを実行した。結果として、正しいものはどれか。
  3. 上の操作で、最後のコマンドが出力する値として、正しいものはどれか。
  4. 上の操作で、最後の grep が出力する行として、正しいものはどれか。
  5. 選択肢では、行の先頭の空白を除いて示す。上の操作で、最後のパイプラインが出力する行として、正しいものはどれか。