[samba-jp:19860] Re: 上位aclの継承を行いたくない

Toshio Kobayashi toshio.kobayashi @ aquacast.co.jp
2007年 11月 22日 (木) 19:24:43 JST


小林と申します.

自己解決できました.
結論から申しますと,ベンダ提供の最新バージョン[samba-3.0.23c-2.el5.2.0.2]へ
落としたことで解決しました.


https://bugzilla.samba.org/show_bug.cgi?id=5094
これに近い現象が発生していました.
------------------------------------------------------------
diff -ruN source.orig/smbd/posix_acls.c source/smbd/posix_acls.c
--- source.orig/smbd/posix_acls.c	2007-11-15 04:15:04.000000000 +0100
+++ source/smbd/posix_acls.c	2007-11-20 16:39:11.000000000 +0100
@@ -3243,6 +3243,9 @@
 	  * Append u/g/w.
 	  */
 
+	/* We do not append these parent permissions, because they always cause
+	 * user, group and world to have read access.
+	 * It might be incorrect or inappropriate to not add these, however.
 	status = append_ugw_ace(fsp, psbuf, unx_mode, S_IRUSR, &new_ace[i++]);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
@@ -3255,6 +3258,7 @@
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
+	*/
 
 	/* Finally append any inherited ACEs. */
 	for (j = 0; j < parent_sd->dacl->num_aces; j++) {
------------------------------------------------------------

フォルダやファイルへACLを適用すると,上位フォルダのパーミッションが無条件で
付与されてしまい意図したACL設定がなかなかできない状況でした.

また実際のログにも,append_parent_acl()が記録されていました.
[2007/11/21 20:59:20, 10] smbd/posix_acls.c:append_parent_acl(3230)
  append_parent_acl: parent ACL has 3 entries. New ACL has 9 entries
[2007/11/21 20:59:20, 3] passdb/lookup_sid.c:fetch_sid_from_uid_cache(992)


何とかメンバサーバの件と合わせ,設計時に想定した実装ができるようになりました.
取り急ぎのご報告とさせていただきます.
ありがとうございました.


On Mon, 19 Nov 2007 23:18:08 +0900
Toshio Kobayashi <toshio.kobayashi @ aquacast.co.jp> wrote:

-|
-|小林と申します.
-|
-|クライアントからのディレクトリアクセス権変更作業に関して,期待した動きに
-|ならず解決策を模索しております.
-|
-|■環境(抜粋)
-|PDC:centos5 / samba3-3.0.26a-35 / openldap-2.3.27-5
-|BDC:centos5 / samba3-3.0.26a-35 / openldap-2.3.27-5
-|ファイルサーバ:centos5 / samba3-3.0.26a-35 / nss_ldap-253-3(ドメインメ
-|   ンバサーバとして設定/ext3,acl付きで共有に利用する領域をマウント)
-|クライアント:windows xp pro sp2
-|
-|// ファイルサーバ上の構成 //
-|[root @ nas00 test]# pwd
-|/smb00/test
-|[root @ nas00 test]# ls -al
-|drwxrwx--T  3 administrator Domain_Users 4096 11月 19 22:44 .
-|drwxr-x--- 11 administrator Domain_Users 4096 11月 15 17:15 ..
-|[root @ nas00 test]# getfacl ..
-|# file: ..
-|# owner: administrator
-|# group: Domain_Users
-|user::rwx
-|group::r-x
-|other::---
-|
-|[root @ nas00 test]# getfacl .
-|# file: .
-|# owner: administrator
-|# group: Domain_Users
-|user::rwx
-|group::rwx
-|other::---
-|
-|■ユーザによる windows GUI 経由のディレクトリ新規作成時結果
-|
-|[root @ nas00 test]#
-|[root @ nas00 test]# id dirdir
-|uid=9910(dirdir) gid=513(Domain_Users) 所属グループ=513(Domain_Users),1015(Director)
-|[root @ nas00 test]#
-|[root @ nas00 test]#
-|
-|[root @ nas00 test]# pwd
-|/smb00/test
-|[root @ nas00 test]# ls -al
-|drwxrwx--T  3 administrator Domain_Users 4096 11月 19 22:44 .
-|drwxr-x--- 11 administrator Domain_Users 4096 11月 15 17:15 ..
-|drwxr-x---  2 dirdir        Domain_Users 4096 11月 19 22:55 sample
-|
-|[root @ nas00 test]# getfacl sample/
-|# file: sample
-|# owner: dirdir
-|# group: Domain_Users
-|user::rwx
-|group::r-x
-|other::---
-|
-|■ディレクトリパーミッション変更操作
-|dirdir ユーザが,[sample]ディレクトリに[プロパティ]/[セキュリティ]タブを利用して
-|Director グループに対するアクセス権を追加すると samba 側には以下の acl が
-|追加される
-|
-|[root @ nas00 test]# getfacl sample/
-|# file: sample
-|# owner: dirdir
-|# group: Domain_Users
-|user::rwx
-|user:administrator:rwx
-|group::rwx
-|group:Director:r-x
-|mask::rwx
-|other::---
-|default:user::rwx
-|default:group::---
-|default:group:Director:r-x
-|default:mask::rwx
-|default:other::---
-|
-|また,以下は default ACL を [セキュリティ]タブから除外するオペレーションを
-|実行した結果
-|
-|[root @ nas00 test]#
-|[root @ nas00 test]# getfacl sample/
-|# file: sample
-|# owner: dirdir
-|# group: Domain_Users
-|user::rwx
-|user:administrator:rwx
-|group::rwx
-|group:Director:r-x
-|mask::rwx
-|other::---
-|
-|[root @ nas00 test]#
-|
-|
-|★期待する動作
-|dirdir ユーザが sample フォルダに対して Director グループを追加したとき,
-|上位のフォルダ[test]に定義されている ACL (user:administrator)が
-|継承されないようにしたい
-|関係する全てのフォルダは,継承元としては[継承なし],適用先としては[この
-|フォルダのみ]を定義している状態です.
-|
-|
-|++++++++++++++++++++++++++++++++++++++++++++++
-|[global]
-|        dos charset = CP920
-|        display charset = UTF-8
-|        workgroup = AQUACAST
-|        server string = File Server
-|        security = DOMAIN
-|        passdb backend = ldapsam:"ldap://192.168.100.30 ldap://192.168.100.31"
-|        guest account = guest
-|        log level = 10 passdb:10 sam:10 auth:10
-|        syslog = 0
-|        max log size = 0
-|        name resolve order = wins host bcast
-|        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
-|        load printers = No
-|        disable spoolss = Yes
-|        add user script = /usr/sbin/smbldap-useradd '%u'
-|        delete user script = /usr/sbin/smbldap-userdel '%u'
-|        add group script = /usr/sbin/smbldap-groupadd '%g'
-|        delete group script = /usr/sbin/smbldap-groupdel '%g'
-|        add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'
-|        delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'
-|        set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
-|        add machine script = /usr/sbin/smbldap-useradd -w '%u'
-|        logon path =
-|        logon home =
-|        os level = 3
-|        preferred master = No
-|        domain master = No
-|        dns proxy = No
-|        wins server = 192.168.100.30
-|        ldap admin dn = cn=DirManager,dc=nt,dc=aquacast,dc=co,dc=jp
-|        ldap group suffix = ou=Groups
-|        ldap idmap suffix = ou=Idmap
-|        ldap machine suffix = ou=Computers
-|        ldap passwd sync = Yes
-|        ldap suffix = dc=nt,dc=aquacast,dc=co,dc=jp
-|        ldap user suffix = ou=Users
-|        host msdfs = No
-|        admin users = administrator
-|        acl group control = Yes
-|        create mask = 0740
-|        directory mask = 0750
-|        hosts allow = 192.168.100.30, 192.168.100.31, 192.168.100.32, 192.168.100.181, 192
-|.168.100.182, 192.168.100.183, 192.168.100.184, 192.168.100.185, 192.168.100.186, 192.168.
-|100.187, 192.168.100.188
-|
-|[test]
-|        comment = test Folder [-2007.11.30]
-|        path = /smb00/test
-|        read only = No
-|        guest ok = Yes
-|++++++++++++++++++++++++++++++++++++++++++++++
-|

-- 
Toshio Kobayashi <toshio.kobayashi @ aquacast.co.jp>




samba-jp メーリングリストの案内