[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 メーリングリストの案内