From: "kosaki (Motohiro KOSAKI)" Date: 2013-02-21T09:55:57+09:00 Subject: [ruby-core:52602] [ruby-trunk - Bug #7886][Assigned] Not recognizing unix group permissions for Mac OS X (Mountain Lion) when user account have >16 groups Issue #7886 has been updated by kosaki (Motohiro KOSAKI). Subject changed from Not recognizing unix group permissions for Mac OS X (Mountain Lion) Active Directory (AD) mobile accounts to Not recognizing unix group permissions for Mac OS X (Mountain Lion) when user account have >16 groups Status changed from Feedback to Assigned Assignee changed from nobu (Nobuyoshi Nakada) to kosaki (Motohiro KOSAKI) Priority changed from High to Normal Fully understand. Thank you for investigation. This is definitely Mac bug. It has broken NGROUPS definition. It is NOT only NFS specific issue. However, I think we can implement some workaround code. I'm willing thinking about it. ---------------------------------------- Bug #7886: Not recognizing unix group permissions for Mac OS X (Mountain Lion) when user account have >16 groups https://bugs.ruby-lang.org/issues/7886#change-36691 Author: afazio (Alfred Fazio) Status: Assigned Priority: Normal Assignee: kosaki (Motohiro KOSAKI) Category: core Target version: next minor ruby -v: ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.2.1] The following bug occurs in 1.9.3 p374 and also in 1.8.7 p371 When using a Active Directory mobile account in Mac OS X (only tested thus far with Mountain Lion), Ruby does not honor Unix group membership when testing file permissions. Let me give an example: % whoami afazio # I am in the "rvm" group: % groups rvm # Let's create a simple file: % touch test-file % sudo chown root:rvm test-file % sudo chmod 660 test-file % ls -l test-file -rw-rw---- 1 root rvm 4 Feb 19 11:43 test-file # At this moment only root and members of "rvm" group can modify test-file # OS recognizes I have correct permissions: % echo "test data" >> test-file % cat test-file test data # However, Ruby does not: % irb 1.9.3-p374 :001 > File.exists?("test-file") => true 1.9.3-p374 :002 > File.writable?("test-file") => false # To further illustrate, I **can** write to this file in Ruby: pry(main)> File.open("test-file", "w") do |f| pry(main)* f.write("wee") pry(main)* end 3 pry(main)> quit % cat test-file wee -- http://bugs.ruby-lang.org/