今回の課題の5
useradd ユーザーを追加する
構文 useradd [-c commaent] [-d home_dir] [-e expire_date] [-G group[,...]] login
オプション
-c comment ログイン・アカウントに対するコメント
-d home_dir ホーム・ディレクトリを指定する
-e expire_date このアカウントの有効期限を指定する。形式はmm/dd/yyで表す
-G group このアカウントが所属するグループを指定する。このとき,カンマで区切ることにより複数指定できる
login ユーザーのログイン・ネームを記述する
説明
ホストにログインできるユーザー・アカウントを作成する。ホーム・ディレクトリを指定しない場合は,/home/loginに作られる。このコマンドを実行できるのはスーパーユーザーのみ。
使用例
hoge-grpグループに所属するhogeユーザーを作成する
# useradd -G hoge-grp hoge
userdel ユーザーを削除する
構文 userdel -r login
オプション
-r 指定するとホーム・ディレクトリも同時に削除する
login ユーザのログイン・ネームを記述する
説明
登録されているユーザー・アカウントを削除する。[-r]オプションを指定することによりそのユーザーのホーム・ディレクトリも同時に削除する。
使用例
hogeユーザを削除する。このときホーム・ディレクトリも削除される
# userdel -r hoge
passwd ユーザーのパスワードを変更する
構文
passwd [username]
オプション
username パスワードを変更するユーザー名を指定する。
説明
ユーザーのログイン・パスワードを変更する。usernameを指定しないと,カレント・ユーザーのパスワードを変更する。
使用例
現在のユーザのパスワードを変更する
$ passwd
Changing password for hoge
(current) UNIX password: ******** ←旧パスワードを入力
New UNIX password: hoge ←新しいパスワードを入力
Retype new UNIX password: *********←最度新しいパスワード
passwd: all authentication tokens updated successfully
ssh SSHでリモート・マシンのコマンドを実行する
構文
ssh [-l user] [-i file] [-p port] [-x] host [command [arg...]]
オプション
-l user ログインに使用するユーザー名を指定する
-i file 公開かぎファイルを指定する。初期設定は~/.ssh/identity
-p port 接続するポートを設定する
-X Xのポート・フォワーディングを有効にする。リモート・マシンのXアプリケーションを実行できるようになる
-x Xのポート・フォワーディングを無効にする
host 接続するホストを指定する。user@hostのように指定することで,-lオプションと同様な効果を得ることができる
command [arg...] リモートで実行するコマンドを指定する
説明
SSHプロトコルを用いてリモート・ホストのコマンドを安全に実行する。認証機構の改善や暗号化処理を行っているため,インターネット経由での使用でも比較的安全性を保てる。commandを指定しないと,リモート・ホストへのログインとなる。
使用例
xxx.xx.jpホストのhogeユーザーのホームディレクトリのファイル詳細を表示する
$ ssh hoge@xxx.xx.jp ls -l
telnet 他のホストと通信をする
構文
telnet [-8] [-e char] [-l username] [host [port]]
オプション
-8 8ビット・バイナリ・モードで接続する。シフトJISを使用している際などに指定する
-e char telnetコマンド・モードに移行する際のキャラクターを設定する
-l username usernameで指定したユーザー名でログインする
host 接続するリモート・ホストを指定する
port 接続するポートを設定する
説明
リモート・ホストに接続する。ポートを省略した場合,ポート23番で接続を行う。ctrl+](-eオプションにより文字を変更可能)を入力することでコマンド・モードに移行することができる。コマンド・モードでの主なコマンドは以下に示す。
コマンド
open 指定したホストにログインする
close 現在の接続を切断する
status 現在の状況を表示する
quit telnetを終了する
? コマンド一覧を表示する
who 現在ログインしているユーザーを表示する
構文
who [-imquwHT] [--count] [--idle] [--heading][--message] [--mesg] [--version] [--writable] [am i]
オプション
-m "who am i"と入力するのと同じで,自分自身の情報を"ホスト名!whoの情報"で表示する
-q, --count ログインしているユーザーの人数と,そのログイン名のみを表示する
-i, -u, --idle ログインした時間のあとに,ユーザーが最後に端末操作を行なってからの時間(idle-time)を表示する。 "."が表示されている場合,ユーザーが一分以内に端末操作を行なったことを示し,"old"が表示された場合,ユーザーが24時間以上何の端末操作も行なっていないことを示す
-H, --heading 表示の先頭に項目名を記述した行を挿入する
-w, -T, --mesg, --message, --writable ログイン名の後に,そのユーザーの端末に対する書き込みが可能かどうかを表す文字を付け加える。"+"及び"-"は,それぞれwriteによるメッセージの書き込みが可能/不可能を表す。また,"?"はデバイスを発見できなかったときに表示される
説明
現在ログインしているユーザーの情報を表示する。通常はログイン・ユーザー名,端末名,ログインした時間,リモート・ホスト名またはX端末名を表示する。自分自身の情報を知るためには慣習的に"who am i"と入力することが一般的だ。
使用例
ログインしているユーザの情報を表示する
$ who -i
自分の情報のみを表示する
$ who am i
last 最後にログインしたユーザーを表示する
構文
last [-R] [-num] [ -n num ] [-adx] [ -f file ] [name...] [tty...]
オプション
-num, -n num 表示行数を指定する
-R ホスト名を表示しない
-a ホスト名を最後に表示する
-d リモート・ログインに対してホスト名を表示する。IP番号はリモートホスト名に変換される
-x シャットダウンやラン・レベル変更のログも同時に表示しする
name 参照するユーザーを指定する
tty 参照するターミナルを指定する
説明
ユーザーの最近のログを調べることができる。また,"-x"オプションによりシャットダウンなどのシステム情報ログも表示できる。
inger ユーザー情報を表示する
構文
finger [-lmsp] [user ...] [user@host ...]
オプション
-s ユーザのログイン名,実名,端末名と,その端末への書き込みの可否,アイドル時間,ログイン時間,およびオフィスの場所と電話番号の情報を表示する
-l -sオプションの情報に加え,ホームディレクトリ,電話番号,ログイン・シェル,メールの状態,さらにホームディレクトリに ".plan" や".project" というファイルがあれば、その中身を表示する
-p -l オプションのうち,".plan"および".project"を除いた他の情報を表示する
-m 実名とのマッチングを抑止する
--help mkdirコマンドの使用法を表示する
user 目的のユーザー名を記述する
user@host 目的となるリモート・ホストのユーザー名を記述する
説明
ユーザの情報を表示する。ただし,現在のホストでは,セキュリティの強化のためfingerを通さないように設定していることが多い。
使用例
hogeユーザの情報および状態を表示する
$ finger hoge
chmod ファイルやディレクトリのアクセス権を変更する
構文
chmod [-Rcfv] [--recursive] [--changes] [--silent] [--quiet] [--verbose] [--help] mode file...
オプション
-c, --changes グループが変更されたファイルのみ詳細に表示する
-f, --silent, --quiet 所有者を変更できなかったファイルについて,エラー・メッセージを表示しない
-v, --verbose グループの変更を詳細に表示する
-R, --recursive ディレクトリとその中身のグループを再帰的に変更する
--help chownコマンドの使用法を表示する
mode 変更するアクセス権を記述する。記述方法は後述の「modeの記載方法」を参照
file アクセス権を変更するファイルやディレクトリを記述する。また,ワイルド・カードも使用できる
説明
ファイルやディレクトリのアクセス権限を変更する。所有者,グループ,その他のユーザーに対して,それぞれ読み込み,書き込み,実行権限を与えられる。ここで実行権限をファイルに指定するとコマンドやスクリプトなどとして使用できる
modeの記号による記述方法
[ugoa][+-=][rwx],...
権限はカンマで区切ることによりいくつでも記述できる。また,最初のユーザーの設定項目を省略したときは,すべてのユーザーと同等の意味になる
u 所有者の権限
g グループの権限
o その他のユーザーの権限
a すべての権限
+ 後に記述した権限を付加します
- 後に記述した権限を削除します
= 後に記述した権限にします
r 読み込み権限
w 書き込み権限
x 実行権限
s セットID
t スティッキービット
modeの数字による記述方法
3桁の8進数を使用して権限を指定することもできる。左から順に所有者,グループ,その他のユーザーの権限を表す。
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
特殊なモード
読み込み・書き込み・実行のほか「chmod」ではスティッキー・ビットおよびセットIDの指定をすることができる。
drwxrwxrwt スティッキー・ビット。指定したディレクトリ以下のファイルの削除・ファイル名の変更は所有者のみが行える
-rwsr-xr-x セット・ユーザーID。他人が実行する際,所有者の権限で実行する
-rwxrwsr-x セット・グループID。他人が実行する際,グループの権限で実行する
使用例
testファイルの権限を変更する
$ ls -l
$ chmod a+x test ←すべてのユーザーに実行権限を与える
$ ls -l
$ chmod g+w,o= test ←グループに書き込み権限をその他のユーザーにはすべて禁止する
$ ls -l
$ chmod 444 test ←数字表記ですべてのユーザーに読み込み権限のみにします
$ ls -l
$ chmod 1777 test-dir ←スティッキービットを付加する
$ ls -l
$ chmod u+s test-prog1 ←ファイルにセット・ユーザーIDを付加する
$ ls -l
$ chmod g+s test-prog2 ←ファイルにセット・グループIDを付加する
$ ls -l
-rwxrwsr-x 1 hoge hoge-grp 154 Nov 01 00:00 test-prog2
chown ファイルやディレクトリの所有者を変更する (1)
構文
chown [-Rcfv] [--recursive] [--changes] [--help] [--silent] [--quiet] [--verbose] [user][:.][group] file...
オプション
-c, --changes 所有者が変更されたファイルのみ詳細に表示する
-f, --silent, --quiet 所有者を変更できなかったファイルについて,エラー・メッセージを表示しない
-v, --verbose 所有者の変更を詳細に表示する
-R, --recursive ディレクトリとその中身の所有者を再帰的に変更する
--help chownコマンドの使用法を表示する
user 変更するユーザー名を記述する
group 変更するグループ名またはグループID(gid)を記述する。ただし,グループ名の前に必ずドット(.)またはコロン(:)が必要
file 所有者を変更するファイルやディレクトリを記述する。また,ワイルド・カードも使用できる
説明
ファイルやディレクトリの所有者(オーナー)を変更する。また,グループも同時に変更することができる。ただし,変更が許されるのはスーパーユーザのみ。
使用例
file1の所有者を変更する
# chown hoge-user file1 ←fileの所有者をhoge-userに変更する
# chown -R www public_html←public_htmlディレクトリ内のすべてのファイル及びディレクトリの所有者をwwwにする
# chown hoge-user:ftp-user ftp_file ←ftp_fileの所有者をhoge-userにし,グループをftp-userに変更する
chgrp ファイルやディレクトリのグループを変更する
構文
chgrp [-cfvR] [group] file...
オプション
-c, --changes グループが変更されたファイルのみ詳細に表示する
-f, --silent, --quiet 所有者を変更できなかったファイルについて,エラー・メッセージを表示しない
-v, --verbose グループの変更を詳細に表示する
-R, --recursive ディレクトリとその中身のグループを再帰的に変更する
group 変更するグループ名またはグループID(gid)を記述
file グループを変更するファイルやディレクトリを指定する。また,ワイルドカードを使用することもできる
説明
ファイルやディレクトリのグループを変更する。ただし,変更が可能なのは対象となるファイルやディレクトリの所有者またはスーパーユーザーのみ。
使用例
file1のグループをhoge-grpに変更する
$ chgrp hoge-grp file1
tempディレクトリ内のすべてのファイル及びディレクトリのグループをuserにする
$ chgrp -R user temp