MacOS Tips

アクセス権を持たないファイルが出来てしまう問題の解決


「ユーザーのホームディレクトリ移動 」の最後でも触れたが、Mac・Windows混在のローカルネットワークで、Windows側で製作したファイルをそのまま保存すると、保存先フォルダのアクセス権設定を無視して、かってに違うアクセス権が設定されてしまう。このままではネットワーク内の他のMac(サーバとして設定したMacは"オーナー"なので大丈夫)からではロック?が掛かってしまい、開く事が出来ない。
他のMac(AppleTalk)からのファイル保存は問題ないので、Sambaかな?と見当をつけ、
AppleTech Infoを探ってみた。
OS X Server10.1でほぼ同様の症例があるらしく、対処法が載っていたので、以下に画像を交えながら説明していきたい。
前述のWindows側から保存したファイルの情報を、サーバ側のMacで見てみると右図のようなアクセス権になっている。勿論、ここで設定してそのまま保存すればアクセス権を変更できる訳だが、多数のクライアントから作成されるファイルを片っ端から追いかけてまわる訳にはいかないのである。

この項ではターミナルで動作するテキストエディタ「pico」を使うので、その練習にもなるのではないかと思う。
それでは、Sambaの設定ファイルである
"smb.conf"をターミナルで変更していこう。

 ターミナル  /アプリケーション/ユーティリティ/ターミナル

まずはターミナルを起動しよう。
「ユーザー名%」と表示され、半角スペース開いたところでカーソルが待機状態になる。rootユーザーで操作を行うため「sudo」と入力し、使用するエディタ「pico」.「smb.conf」までのパスを入力する。

[localhost:~] ユーザー名% sudo pico /etc/smb.conf

リターンキーを押すとパスワードを要求されるので、そのままユーザーパスワードを打ち込と(パスワードは表示されない)picoが起動されsmb.confの内容が展開される。(下図参照)


カーソルキーで下にページを移動して[global]というセクションを探し「inherit permissions = yes」の一行を下記のように書き足す。
([control]+[v]でもページ移動可。[control]+[y]ならページを戻る。上図画面下部参照)

[global]
guest account = unknown
encrypt passwords = yes

workgroup = JPA
dos charset = 437
unix charset = UTF-8-MAC
auth methods = guest opendirectory
passdb backend = opendirectorysam guest
printer admin = @admin, @staff
server string = Mac OS X
[global]
guest account = unknown
encrypt passwords = yes
inherit permissions = yes ←ここに入れた
workgroup = JPA
dos charset = 437
unix charset = UTF-8-MAC
auth methods = guest opendirectory
passdb backend = opendirectorysam guest
printer admin = @admin, @staff
server string = Mac OS X

[control]+[x]でpicoを終了し[x?][y?]と保存するか聞かれるので、[y]キー→リターンで設定が反映されpicoが終了する。

変更した[smb.conf]をロックする為、プロンプト (#) の後に次のように入力する。
sudo chflags uchg /etc/smb.conf
リターンキーを押し、そのままログアウトすればターミナルでの設定は終了である。

ちなみに、ロックを解除する時は
sudo chflags nouchg /etc/smb.conf
で解除できる。

 システム環境設定  /アプリケーション/システム環境設定

システム環境設定を立ち上げて、インターネットとネットワーク「共有」の中のプロパティ「サービス」を選択する。

この中の「Windows共有」がSambaサーバのOn・Offを行うMac用のGUIだ。
チェックボックスか右のボタンでSambaを再起動しよう。

念のためMac本体を再起動して完了。

2003.12.04

次回は「WebDAV」に挑戦!
参考書籍

MacOSX UNIX的徹底活用講座


MacOS Xターミナルコマンド
ポケットリファレンス
参考サイト
アップルコンピューター
Tech Info Library

日本 Samba ユーザ会
http://www.samba.gr.jp/
NOTE
sudo
スーパーユーザー(root)権限でのコマンド実行が可能。ユーザープロンプトのあとに打ち込むことで、root権限で操作できる。

pico
ターミナルで動作するエディタ。
この他にも「vi」などがあるが、
「pico」「vi」共に日本語の扱いが苦手なため、主に設定ファイルの変更等に使う。

Samba
UNIX及びUNIX互換マシンを Windows NT/2000互換のファイルサーバ/プリント・サーバにするオープン・ソース・ソフトウェア 。OS XはUNIXベースのOSである為、Sambaを使って手軽にWindows とファイル共有出来る。

chflags
変更禁止、追加禁止などファイルのフラグを設定することができる。
chflagsのあとのuchgはユーザの変更禁止フラグ。
no をつけるとフラグを消せる
例:chflags nouchg
なお、パーミッションを変更する
chmod とは全く別のものである 。


注意
  • %」 はプロンプトを表しています。実際の画面では入力の必要はありません。
  • 各コマンドを入力した後は、リターンキーを押すことにより、入力したコマンドが実行されます。
  • 画面をよく見ると分かりますが、コマンドとコマンドの間は半角スペースで区切られています。入力の際は注意して下さい。
動作環境
PowerMac G4
Dual450MHz AGP
メモリ:768MB
HD:20G (System)
HD:30G×2 (RAID)
OS:10.3.1 Panther