1753 |
new conditions for checking file's type and permissions. |
new conditions for checking file's type and permissions. |
1754 |
For example, |
For example, |
1755 |
|
|
1756 |
allow_read /etc/fstab if path1.type=regular path1.mode=0644 |
allow_read /etc/fstab if path1.type=file path1.perm=0644 |
1757 |
|
|
1758 |
will allow opening /etc/fstab for reading only if /etc/fstab is a regular |
will allow opening /etc/fstab for reading only if /etc/fstab is a regular |
1759 |
file and it's permission is 0644, and |
file and it's permission is 0644, and |
1760 |
|
|
1761 |
allow_write /dev/null if path1/type=char path1.major=1 path1.minor=3 |
allow_write /dev/null if path1.type=char path1.dev_major=1 path1.dev_minor=3 |
1762 |
|
|
1763 |
will allow opening /dev/null for writing only if /dev/null is a character |
will allow opening /dev/null for writing only if /dev/null is a character |
1764 |
device file with major=1 and minor=3 attributes. |
device file with major=1 and minor=3 attributes. |
1774 |
echo Dynamic: 1048576 > /proc/ccs/meminfo |
echo Dynamic: 1048576 > /proc/ccs/meminfo |
1775 |
|
|
1776 |
This quota is not applied to temporary memory used for permission checks. |
This quota is not applied to temporary memory used for permission checks. |
1777 |
|
|
1778 |
|
Fix 2008/12/09 |
1779 |
|
|
1780 |
|
@ Fix ccs_can_save_audit_log() checks. |
1781 |
|
|
1782 |
|
Due to incorrect statement "if (ccs_can_save_audit_log() < 0)" |
1783 |
|
while ccs_can_save_audit_log() is boolean, MAX_GRANT_LOG and |
1784 |
|
MAX_REJECT_LOG were not working. |
1785 |
|
|
1786 |
|
This bug will trigger OOM killer if /usr/sbin/ccs-auditd is not working. |
1787 |
|
|
1788 |
|
Fix 2008/12/24 |
1789 |
|
|
1790 |
|
@ Add "ccs_" prefix. |
1791 |
|
|
1792 |
|
To be able to tell whether a symbol is TOMOYO Linux related or not, |
1793 |
|
I added "ccs_" prefix as much as possible. |
1794 |
|
|
1795 |
|
@ Fix ccs_check_flags() error message. |
1796 |
|
|
1797 |
|
I meant to print SYAORAN-ERROR: message when error == -EPERM, |
1798 |
|
but I was printing it when error == 0 since 1.6.0 . |
1799 |
|
|
1800 |
|
Fix 2009/01/05 |
1801 |
|
|
1802 |
|
@ Use kmap_atomic()/kunmap_atomic() for reading "struct linux_binprm". |
1803 |
|
|
1804 |
|
As remove_arg_zero() uses kmap_atomic(KM_USER0), I modified to use |
1805 |
|
kmap_atomic(KM_USER0) rather than kmap(). |
1806 |
|
|
1807 |
|
@ Relocate definitions and functions. |
1808 |
|
|
1809 |
|
To reduce exposed symbols, I relocated some definitions and functions. |
1810 |
|
|
1811 |
|
Fix 2009/01/28 |
1812 |
|
|
1813 |
|
@ Fix "allow_read" + "allow_write" != "allow_read/write" problem. |
1814 |
|
|
1815 |
|
Since 1.6.0 , due to a bug in ccs_update_single_path_acl(), |
1816 |
|
appending "allow_read/write" entry didn't update internal "allow_read" |
1817 |
|
and "allow_write" entries. As a result, attempt to open(O_RDWR) succeeds |
1818 |
|
but open(O_RDONLY) and open(O_WRONLY) fail. |
1819 |
|
|
1820 |
|
Workaround is to write an entry twice when newly appending that entry. |
1821 |
|
If written twice, internal "allow_read" and "allow_write" entries |
1822 |
|
are updated. |
1823 |
|
|
1824 |
|
Fix 2009/02/26 |
1825 |
|
|
1826 |
|
@ Fix profile read error. |
1827 |
|
|
1828 |
|
Incorrect profiles were shown in /proc/ccs/profile |
1829 |
|
if either CONFIG_SAKURA or CONFIG_TOMOYO is disabled. |
1830 |
|
|
1831 |
|
Fix 2009/03/02 |
1832 |
|
|
1833 |
|
@ Undelete CONFIG_TOMOYO_AUDIT option. |
1834 |
|
|
1835 |
|
While HDD-less systems can use profiles with MAX_GRANT_LOG=0 and |
1836 |
|
MAX_REJECT_LOG=0 , I undeleted CONFIG_TOMOYO_AUDIT option for saving |
1837 |
|
memory used for /proc/ccs/grant_log and /proc/ccs/reject_log interfaces. |
1838 |
|
|
1839 |
|
Fix 2009/03/13 |
1840 |
|
|
1841 |
|
@ Show only profile entry names ever specified. |
1842 |
|
|
1843 |
|
Even if an administrator specifies only COMMENT= and MAC_FOR_FILE= |
1844 |
|
entries for /proc/ccs/profile , all available profile entries are shown. |
1845 |
|
This was designed to help administrators to know what entries are |
1846 |
|
available, but sometimes makes administrators feel noisy because of |
1847 |
|
entries showing default values. |
1848 |
|
|
1849 |
|
Thus, I modified to show only profile entry names ever specified. |
1850 |
|
|
1851 |
|
Fix 2009/03/18 |
1852 |
|
|
1853 |
|
@ Add MAC_FOR_IOCTL functionality. |
1854 |
|
|
1855 |
|
To be able to restrict ioctl() requests, I added MAC_FOR_IOCTL |
1856 |
|
functionality. |
1857 |
|
|
1858 |
|
This functionality requires modification of ccs-patch-\*.diff . |
1859 |
|
Therefore, this functionality will not work if you are using old |
1860 |
|
ccs-patch-\*.diff . |
1861 |
|
|
1862 |
|
@ Use better name for socket's pathname. |
1863 |
|
|
1864 |
|
Until now, socket's pathname was represented as "socket:[\$]" format |
1865 |
|
where \$ is inode's number. But inode's number is useless for name based |
1866 |
|
access control. Therefore, I modified to represent socket's pathname as |
1867 |
|
"socket:[family=\$:type=\$:protocol=\$]" format. |
1868 |
|
|
1869 |
|
This will help administrator to control ioctl() against sockets more |
1870 |
|
precisely. |
1871 |
|
|
1872 |
|
@ Fix misplaced ccs_capable() call. (only 2.6.8-\* and 2.6.9-\*) |
1873 |
|
|
1874 |
|
Location to insert ccs_capable(TOMOYO_SYS_IOCTL) in sys_ioctl() was |
1875 |
|
wrong since version 1.1 . |
1876 |
|
|
1877 |
|
@ Insert ccs_check_ioctl_permission() call. |
1878 |
|
|
1879 |
|
To enable MAC_FOR_IOCTL functionality work, I inserted |
1880 |
|
ccs_check_ioctl_permission() call into ccs-patch-\*.diff . |
1881 |
|
|
1882 |
|
Version 1.6.7 2009/??/?? Feature enhancement release. |