オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Diff of /trunk/1.7.x/ccs-patch/README.ccs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1578 by kumaneko, Thu Sep 11 03:40:09 2008 UTC revision 1658 by kumaneko, Tue Oct 7 04:02:50 2008 UTC
# Line 1590  Fix 2008/09/11 Line 1590  Fix 2008/09/11
1590        This change makes it impossible to revoke permission to write to        This change makes it impossible to revoke permission to write to
1591        /proc/ccs/ interface without killing the process, but it will be better        /proc/ccs/ interface without killing the process, but it will be better
1592        than nonfunctioning ccs-queryd program.        than nonfunctioning ccs-queryd program.
1593    
1594    Fix 2008/09/19
1595    
1596        @ Allow selecting a domain by PID.
1597    
1598          Sometimes we want to know what ACLs are given to specific PID, but
1599          finding a domainname for that PID from /proc/ccs/.process_status and
1600          reading ACLs from /proc/ccs/domain_policy by the domainname is very slow.
1601          Thus, I modified /proc/ccs/domain_policy to allow selecting a domain by
1602          PID. For example, to read domain ACL of current process from bash,
1603          run as follows.
1604    
1605          # exec 100<>/proc/ccs/domain_policy
1606          # echo select pid=$$ >&100
1607          # while read -u 100; do echo $REPLY; done
1608    
1609          If a domain is once selected by PID, reading /proc/ccs/domain_policy will
1610          print only that domain if that PID exists or print nothing otherwise.
1611    
1612        @ Disallow concurrent /proc/ccs/ access using the same file descriptor.
1613    
1614          Until now, one process can read() from /proc/ccs/ while other process
1615          that shares the file descriptor can write() to /proc/ccs/ .
1616          But to implement "Allow selecting a domain by PID" feature, I disabled
1617          concurrent read()/write() because the feature need to modify read buffer
1618          while writing.
1619    
1620    Fix 2008/10/01
1621    
1622        @ Add retry counter into /proc/ccs/query .
1623    
1624          To be able to handle some of queries from /proc/ccs/query without user's
1625          interaction, I added retry counter for avoiding infinite loop caused by
1626          "try again" response.
1627    
1628    Fix 2008/10/07
1629    
1630        @ Don't transit to new domain until do_execve() succeeds.
1631    
1632          Until now, a process's domain was updated to new domain which the process
1633          will belongs to before do_execve() succeeds so that the kernel can do
1634          permission checks for interpreters and environment variables based on
1635          new domain. But this caused a subtle problem when other process sends
1636          signals to the process, for the process returns to old domain if
1637          do_execve() failed.
1638    
1639          So, I modified to pass new domain to functions so that I can avoid
1640          modifying a process's domain before do_execve() succeeds.
1641    
1642        @ Use old task state for audit logs.
1643    
1644          Until now, audit logs were generated using the task state after
1645          processing "; set task.state" part. But to generate accurate logs,
1646          I modified to save the task state before processing "; set task.state"
1647          part and use the saved state for audit logs.
1648    
1649        @ Use a structure for passing parameters.
1650    
1651          As the number of parameters is increasing, I modified to use a structure
1652          for passing parameters.
1653    
1654        @ Always allow updating task state for signal operations.
1655    
1656          ccs_check_signal_acl() was skipping permission checks if signal is NULL
1657          or sent to self or sent to same domain. To make it possible to update
1658          task state when current process is sending NULL signal or to self or
1659          to same domain, I modified to check ACL anyway. The result of access
1660          control will not change, but this modification will generate granted logs
1661          which were not generated until now.
1662    
1663        @ Show process type in /proc/ccs/.process_status .
1664    
1665          To be able to determine a process's type, I added "(manager)" if the
1666          process is a policy manager and "(execute_handler)" if the process is an
1667          execute handler.

Legend:
Removed from v.1578  
changed lines
  Added in v.1658

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26