Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-378

POSIX: chmod.7: successful call to chmod("chmod-t.7b", 02770) did not change mode of file correctly

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Blocker
    • None
    • Lustre 2.0.0, Lustre 2.1.0, Lustre 1.8.8, Lustre 1.8.7, Lustre 1.8.6, Lustre 1.8.9
    • None

    • Lustre Branch: b1_8
      Lustre Build: http://newbuild.whamcloud.com/job/lustre-b1_8/61/
      Distro/Arch: CentOS5.6/x86_64(OFED 1.5.3, ext4)
    • 3
    • 23,299
    • 6052

    Description

      Here is the result of running the LSB-VSX POSIX test suite (lts_vsx-pcts2.0beta2.tgz):
      https://maloo.whamcloud.com/test_sets/f610526e-8b52-11e0-aab9-52540025f9af

      The baseline is ext4.

      ####################################################
      Test Name: chmod.7 Failed
      
      	Test Description:
      A call to chmod(path, mode) from a process without appropriate
      privileges when the group owner of the regular file specified by path
      does not match the effective group ID or one of the supplementary
      group IDs shall clear the S_ISGID bit upon successful completion.
      Posix Ref: Component CHMOD Assertion 5.6.4.2-29(A)
      
      	Test Strategy:
      VERIFY that process has suitable privileges
      DETERMINE whether chmod() with appropriate privileges is permitted
      from the environment variable VSX_PRIV_CHOWN_SUPP
      ASSIGN the current process appropriate privileges using setprv() -
      vport
      DETERMINE whether setting S_ISUID and S_ISGID is permitted form the
      environment variable VSX_SET_ID_MODES_SUPP
      VERIFY that vsxg1 is not a supplementary group for this process
      CREATE child process using cppair()
        SET effective group id to actual group id using setgid() and
        getegid()
        VERIFY that the effective and actual group ids are the same using
        getgid() and getegid()
        SET effective user id to actual user id using setuid() and geteuid()
        VERIFY that the effective and actual user ids are the same using
        getuid() and geteuid()
        REMOVE the CHOWN and SETID privileges from the current process using
        unsetprv()
        VERIFY that unsetprv() returned 0
        CREATE two files with all access modes available and S_ISGID set
      CREATE child process using cppair()
        SET and VERIFY that the effective user and group ids are vsx1/vsxg1
        REMOVE the CHOWN and SETID privileges from the current process using
        unsetprv()
        FOR each file with mode excluding and including S_ISGID
          CHANGE the mode of the file using chmod() with the current file
          mode
          VERIFY that chmod() returned 0
          OBTAIN file status information for file using stat()
          VERIFY that the file status mode has the expected value
      
      successful call to chmod("chmod-t.7b", 02770) did not change mode of
      	file correctly
      expected: 0770, observed: 02770
      
      

      Attachments

        Issue Links

          Activity

            People

              laisiyao Lai Siyao
              yujian Jian Yu
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: