ima: add ima_inode_setxattr/removexattr function and calls
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Thu, 10 Mar 2011 23:54:15 +0000 (18:54 -0500)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Fri, 7 Sep 2012 18:57:47 +0000 (14:57 -0400)
commit42c63330f2b05aa6077c1bfc2798c04afe54f6b2
treebbd7d212ba9c686b2b649718b8b919bdd2eecea4
parent9957a5043e7b0b7361cdf48eea22b2900293e63a
ima: add ima_inode_setxattr/removexattr function and calls

Based on xattr_permission comments, the restriction to modify 'security'
xattr is left up to the underlying fs or lsm. Ensure that not just anyone
can modify or remove 'security.ima'.

Changelog v1:
- Unless IMA-APPRAISE is configured, use stub ima_inode_removexattr()/setxattr()
  functions.  (Moved ima_inode_removexattr()/setxattr() to ima_appraise.c)

Changelog:
  - take i_mutex to fix locking (Dmitry Kasatkin)
  - ima_reset_appraise_flags should only be called when modifying or
    removing the 'security.ima' xattr. Requires CAP_SYS_ADMIN privilege.
    (Incorporated fix from Roberto Sassu)
  - Even if allowed to update security.ima, reset the appraisal flags,
    forcing re-appraisal.
  - Replace CAP_MAC_ADMIN with CAP_SYS_ADMIN
  - static inline ima_inode_setxattr()/ima_inode_removexattr() stubs
  - ima_protect_xattr should be static

Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@intel.com>
include/linux/ima.h
security/integrity/ima/ima_appraise.c
security/security.c