せでぃのブログ

ブログ初心者おいどんのどうでもいい愚痴やどうでもいい愚痴やどうでもいいマメ知識などを披露するチラシの裏です。

「一部の項目へのアクセス権がないため、操作は完了できません」というエラーメッセージが出てSambaの共有ディレクトリに書き込めないがEAでも直らない場合はSELinuxを疑うという発想

 おいどん家のLinuxサーバは夏暑くて冬寒いユーザアンフレンドリーな部屋にあるので、Sambaでファイル共有してXPとMacからゲスト接続して使いまわしている。今回、YosemiteにアップデートしたMacからの接続も確認しておこうとしたところ、このようなメッセージが出て書き込めなかった。
f:id:Sediment:20150215205715p:plain
 悩んだ。1日悩んだ。XPも寒い部屋にあるのでMacだけで悩んだのが失敗だった。MacからSambaには、こんな感じで気軽に接続できるらしい。
f:id:Sediment:20150215221616p:plain

・環境
Sambaサーバ側:

[root@centos ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@centos ~]# smbstatus --version
Version 3.6.9-169.el6_5

クライアントMacOS側:

macbook-no-MacBook-Pro:~ mac$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.10.2
BuildVersion:	14C109

結論はSELinux

 setenforce 0で解決したので、またもSELinuxだった。audit.logを見たら、確かにsmbdでdeniedされていた。またやっちまったぜ☆

[root@centos ~]# tail -n 10 /var/log/audit/audit.log
〜中略〜
type=AVC msg=audit(1423997969.395:67): avc:  denied  { write } for  
pid=2097 comm="smbd" name="share" dev=dm-2 ino=392449 
scontext=system_u:system_r:smbd_t:s0 
tcontext=unconfined_u:object_r:public_content_rw_t:s0 tclass=dir

 という訳で、いつも通りchconで設定を直す。こちらは、これで解決した。
新SELinux入門 第5回 タイプを変更してトラブルに対処する

[root@centos home]# pwd
/home
[root@centos home]# ls -la
drwxr-xr-x.  6 root root  4096  723 10:15 2014 .
dr-xr-xr-x. 26 root root  4096  215 20:11 2015 ..
drwxrwxrwx.  2 root root  4096  215 20:51 2015 share
[root@centos  home]# ls -Z
drwxrwxrwx. root root unconfined_u:object_r:public_content_rw_t:s0 share

[root@centos home]# chcon -t samba_share_t share -R

[root@centos home]# ls -Z
drwxrwxrwx. root root unconfined_u:object_r:samba_share_t:s0 share

おいどん家の場合、EA(Extends Attributes)は関係なかった

 「mac+samba+当エラーメッセージ」で検索すると、検索上位はこちらのEAの問題として出てきて、smb.conf内の「unix extensions = no」で解決するとの回答ばかりだった。しかし、うちの場合は、EAにはまったく全然これっぽっちも関係なくSELinuxのみの問題だったので、unix extensions=noで解決しない場合、SELinuxを疑ってみよう。

[global]

unix charset=UTF-8
dos charset=CP932       
unix extensions = no

 EAというのは、ファイルにつく属性らしく、GUIだとファイル情報のここら辺に出てくる。
f:id:Sediment:20150215224334p:plain
 CUIで見るとすごく気持ち悪い。@がご覧いただけるだろうか。

macbook-no-MacBook-Pro:~ mac$ ls -la
total 72
drwx------+ 11 mac  staff   374  2 15 20:52 .
drwxr-xr-x+ 21 mac  staff   714  1 19 09:19 ..
-rw-r--r--@  1 mac  staff    40  9 29 13:26 memo55.txt
drwxr-xr-x  13 mac  staff   442 10  7 23:16 Q&A火山噴火日本火山学会
macbook-no-MacBook-Pro:~ mac$ ls -la@
total 72
drwx------+ 11 mac  staff   374  2 15 20:52 .
drwxr-xr-x+ 21 mac  staff   714  1 19 09:19 ..
-rw-r--r--@  1 mac  staff    40  9 29 13:26 memo55.txt
	com.apple.metadata:kMDItemDownloadedDate	  53 
	com.apple.metadata:kMDItemWhereFroms	 198 
drwxr-xr-x  13 mac  staff   442 10  7 23:16 Q&A火山噴火日本火山学会

 属性の詳細表示はxattr -lで、削除は-cまたは-dでやるらしい。

macbook-no-MacBook-Pro:Documents mac$ xattr -l memo56.txt
com.apple.metadata:kMDItemDownloadedDate:
00000000  62 70 6C 69 73 74 30 30 A1 01 33 41 B9 D9 16 E1  |bplist00..3A....|
00000010  39 02 36 08 0A 00 00 00 00 00 00 01 01 00 00 00  |9.6.............|
00000020  00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 13                                   |.....|
00000035
com.apple.metadata:kMDItemWhereFroms:
00000000  62 70 6C 69 73 74 30 30 A2 01 02 5F 10 53 68 74  |bplist00..._.Sht|
00000010  74 70 3A 2F 2F 31 39 32 2E 31 36 38 2E 30 2E 39  |tp://192.168.0.9|
00000020  39 2F 66 65 73 73 2F 67 6F 3F 72 74 3D 31 34 31  |9/fess/go?rt=141|
00000030  31 39 36 34 37 38 31 32 37 36 26 64 6F 63 49 64  |1964781276&docId|
00000040  3D 63 30 30 33 38 38 33 63 65 63 62 66 34 63 36  |=c003883cecbf4c6|
00000050  63 62 36 35 34 62 66 66 37 62 37 33 64 38 39 30  |cb654bff7b73d890|
00000060  65 5F 10 3F 68 74 74 70 3A 2F 2F 31 39 32 2E 31  |e_.?http://192.1|
00000070  36 38 2E 30 2E 39 39 2F 66 65 73 73 2F 73 65 61  |68.0.99/fess/sea|
00000080  72 63 68 3F 71 75 65 72 79 3D 6D 61 69 6E 62 61  |rch?query=mainba|
00000090  6E 6B 2E 74 78 74 26 6E 75 6D 3D 32 30 26 73 6F  |nk.txt&num=20&so|
000000A0  72 74 3D 08 0B 61 00 00 00 00 00 00 01 01 00 00  |rt=..a..........|
000000B0  00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00  |................|
000000C0  00 00 00 00 00 A3                                |......|
000000c6
macbook-no-MacBook-Pro:Documents mac$ xattr -c memo56.txt
macbook-no-MacBook-Pro:Documents mac$ xattr -l memo56.txt
macbook-no-MacBook-Pro:Documents mac$ 

 詳しくはmanを見よう。

macbook-no-MacBook-Pro:Documents mac$ man xattr | col -b > man_xattr.txt
macbook-no-MacBook-Pro:Documents mac$ less man_xattr.txt









 うむ。そもそもWindowsでも書き込めてなかったというオチで。え〜、Sambaの設定したおいどんもビックリしちゃってもうね。
http://bokete.jp/boke/6050034