Commit graph

687 commits

Author SHA1 Message Date
Christian Boltz
0daaaca946 Make the profile parsing regexes in aa.py easier to read by splitting
out common parts (like audit and deny flags or the typical end of the
line (comma and comment).

The patch also introduces the named match groups <audit>, <allow> and
<comment> which we can start to use whenever we want. The group
numbering is kept unchanged, so we can migrate one regex / rule type
after the other to named groups (not only audit, allow and comments, but
changing all regexes will be another patch ;-)

As a side effect, fix RE_PROFILE_CHANGE_PROFILE, RE_PROFILE_ALIAS and
RE_PROFILE_RLIMIT which did not allow ",   #" (comma, space, comment) at
the end of the line.


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-09-22 23:41:54 +02:00
Steve Beattie
08bc0441d4 Due to wanting to support additional external apparmor python modules,
both real [0] and hypothetical (e.g. gui prototypes), as part of
the python utils merge, some namespace packaging bits were added
to apparmor/__init__.py, based on the (not very clear) advice given
in python's pep 0420 [1]. However, a side effect of this is that it
causes system installed versions of python modules to be used over
paths specified via PYTHONPATH [2], which breaks our in-tree tests
when the system versions of the python modules are out of date with
respect to the in-tree version.

It seems based on testing, however, that carrying this code snippet
is no longer necessary to have external modules be found. Thus,
the following patch drops it.

[0] e.g. https://launchpad.net/click-apparmor
[1] http://www.python.org/dev/peps/pep-0420/
[2] a python upstream discussion about this occurred at
    https://mail.python.org/pipermail/distutils-sig/2014-March/024049.html

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-15 12:18:16 -07:00
Steve Beattie
c48d7dc71f manpages: incorporate podchecker; fix errors and (most) warnings
This patch adds a 'check_pod_files' make target to the common make
rules, and then fixes the errors it highlighted as well as most of
the warnings. It will cause 'make check' in most of the directories to
fail if there are errors in a pod file (but not if there are warnings).

Common issues were:

  - using an '=over/=back' pair for code-like snippets that did not
    contain any =items therein; the =over keyword is intended for
    indenting lists of =item entries, and generates a warning if
    there isn't any.

  - not escaping '<' or '>'

  - blank lines that contained spaces or tabs

The second -warnings flag passed to podchecker is to add additional
warnings, un-escaped '<' and '>' being of them.

I did not fix all of the warnings in apparmor.d.pod, as I have not come
up with a good warning-free way to express the BNF of the language
similar in format to what is currently generated. The existing
libapparmor warnings (complaints about duplicate =item definition
names) are actually a result of passing the second -warnings flag.
The integration into libapparmor is suboptimal due to automake's
expectation that there will be a test driver program(s) for make check
targets; that's why I added the podchecker call to the manpage
generation point.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
---
 changehat/mod_apparmor/Makefile         |    3 
 changehat/mod_apparmor/mod_apparmor.pod |   28 ++-
 common/Make.rules                       |    4 
 libraries/libapparmor/doc/Makefile.am   |    7 
 parser/Makefile                         |    2 
 parser/apparmor.d.pod                   |  275
+++++++++++++-------------------
 utils/Makefile                          |    3 
 utils/aa-cleanprof.pod                  |    2 
 utils/aa-complain.pod                   |    2 
 utils/aa-decode.pod                     |    2 
 utils/aa-easyprof.pod                   |   69 +++-----
 utils/aa-enforce.pod                    |    2 
 utils/aa-genprof.pod                    |    2 
 utils/aa-logprof.pod                    |    6 
 utils/aa-sandbox.pod                    |   64 ++-----
 utils/logprof.conf.pod                  |    2 
 utils/vim/Makefile                      |    2 
 17 files changed, 212 insertions(+), 263 deletions(-)
2014-09-15 11:30:47 -07:00
Launchpad Translations on behalf of apparmor-dev
f4b5811109 Launchpad automatic translations update. 2014-09-15 06:03:21 +00:00
Kshitij Gupta
b7ff639d73 Fix warnings generated due to unnamed arguments in translatable strings.
This patch:
- replaces unnamed arguments with named arguments wherever more than 1
one arguments ware present in a message
- minor fix in aa-unconfined for pname argument in 2 strings
- updated pot files (as a side-effect of testing with make)

Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-14 23:47:00 +05:30
Christian Boltz
bc06f9f23a various fixes for utils/test/minitools_test.py:
- test_audit: fix error message
- test_complain: replace "aa-complain -r" with aa-enforce (we removed 
  the -r flag from aa-complain)
- test_complain: disable checks for force-complain symlinks, 
  aa-complain doesn't create them

Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-09-14 17:27:01 +02:00
Launchpad Translations on behalf of apparmor-dev
8418703863 Launchpad automatic translations update. 2014-09-13 05:57:25 +00:00
Launchpad Translations on behalf of apparmor-dev
e67f6561c4 Launchpad automatic translations update. 2014-09-12 05:53:50 +00:00
Steve Beattie
b099168e6b Merge translation updates back from launchpad. 2014-09-11 10:35:47 -07:00
Launchpad Translations on behalf of apparmor-dev
298df16292 Launchpad automatic translations update. 2014-09-11 05:48:53 +00:00
Christian Boltz
47ec6707e5 fix syntax error
Pre-Acked-by: Steve Beattie <steve@nxnw.org>
2014-09-11 01:09:07 +02:00
Christian Boltz
40a829ef6b merge in some translations from old utils de.po
A side effect of not including utils/apparmor/*.py in the .pot file was
that some translations were lost. This patch includes backported (or
forward-ported?) translations from r2186. It's not a simple merge, I 
reviewed everything I merged and changed it if necessary.

I also removed the outdated 
    "Language-Team: Novell Language <language@novell.com>\n"


Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-09-11 00:10:03 +02:00
Steve Beattie
251a8a9650 Regenerate the utils translation template (.pot) file, both to prepare
for the upcoming release and to compensate for the previous commit that
fixed an issue with missing translatable strings.
2014-09-10 11:15:56 -07:00
Steve Beattie
2f54f0d97a utils: search python modules for translatable strings
In the conversion from perl to python, it got overlooked to add the
python-apparmor modules to the set of things to search for translatable
strings in. This patch addresses the issue.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-10 11:13:59 -07:00
Steve Beattie
0e7c2e4296 Merge added Chechen po template and meta info updates from launchpad
translations branch.
2014-09-09 16:27:07 -07:00
Christian Boltz
3035660716 add missing --display to aa-notify.pod
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-09-08 20:40:33 +02:00
Kshitij Gupta
f63f08d79a Fix incorrect options being displayed for capabilites in aa.py
The following patch:
- ensures the options are passed correctly in the expected form.

Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-08 18:01:18 +05:30
Christian Boltz
6bc1b6ef43 replace copy_netrules_other with list(netrules_other[...]) in
delete_net_duplicates()

Also remove the now unused "import copy".

Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-09-05 23:21:00 +02:00
Christian Boltz
826e9d998b fix "dictionary changed size during iteration" in cleanprof.py
delete_net_duplicates()

Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-09-04 13:19:39 +02:00
Steve Beattie
3a5106527c utils tests: restructure signal parse tests
Convert the signal parse tests to use common AAParseTest super class in
common_test.py.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:36:11 -07:00
Steve Beattie
b05cc0f36f utils tests: restructure ptrace parse tests
Convert the ptrace parse tests to use common AAParseTest super class
in common_test.py.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:32:59 -07:00
Steve Beattie
e8d7dcd321 utils tests: restructure pivotroot parse tests
Convert the pivotroot parse tests to use common AAParseTest super
class in common_test.py.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:31:09 -07:00
Steve Beattie
37adff769c utils tests: restructure mount parse tests
Convert the mount parse tests to use common AAParseTest super class in
common_test.py.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:28:18 -07:00
Steve Beattie
59b5b8bab6 Subject: utils tests: restructure DBUS parse tests
Convert the DBUS parse tests to use common AAParseTest super class in
common_test.py.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:26:19 -07:00
Steve Beattie
365b6d603c utils tests: restructure Unix Parse tests
This patch abstracts out parse tests into a super class to inherit from
and converts the af_unix parse tests to use the super class.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:24:57 -07:00
Steve Beattie
74da13e7a3 utils: convert raw rules classes to subclass from _Raw_Rule
The patch that adds support for af_unix rules added a _Raw_Rule base
class to inherit from in rules.py. This patch converts the rest of the
raw rules classes to use the same.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:23:38 -07:00
Steve Beattie
b86d83759a Subject: utils tests: assign regex function at test setup
This patch moves the assignment of the regex function into the unittest
setUp() function rather than at script load time. If for some reason
the python utils library does not define the relevant function, without
this patch the script fails entirely; with it, each individual test
class that depends on the missing regex will fail each test case.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:22:04 -07:00
Steve Beattie
6d34893d4d utils: add limited support for af_unix rules
This patch adds limited support for af_unix rules in the python
utilities, of the "don't touch them, but don't throw a python backtrace
when coming across them, either" variety. Testcases are added as well.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-09-03 18:18:33 -07:00
Christian Boltz
9e4c01f8d3 Add a warning to aa-mergeprof --help that the syntax will change in the
future. Also remove --auto, which is not implemented yet.
2014-09-04 01:49:47 +02:00
Steve Beattie
72cde9a4f4 utils/tests: fix bashisms in runtests-py2.sh
Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-09-03 13:00:33 -07:00
Kshitij Gupta
9e37c3278e Fix the value being set in nt_name when allowed path exist
The patch:
- sets nt_name to the path, if it is allowed.

Acked-by: Christian Boltz <apparmor@cboltz.de>

(acked on IRC based on a link to the ML archive[1])

[1] https://lists.ubuntu.com/archives/apparmor/2014-August/006194.html
2014-08-26 03:13:42 +05:30
Christian Boltz
a620f18cf0 aa.py / ask_the_question() - simplify duplicate option prevention
add a add_to_options() helper function to aa.py which
- adds newpath to options if it's not already there
- returns the updated options and the index of newpath

This removes duplicated code for CMD_GLOB and CMD_GLOBEXT in 
ask_the_question()

It also adds duplicate prevention to CMD_NEW.


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-08-25 22:49:29 +02:00
Christian Boltz
4608322da9 better error message in aa.py when reaching EOF unexpectedly
When reaching EOF while still in a profile (syntax-wise), there are two
possible reasons:
- missing "}"
- missing "," in the last rule (which means that, thanks to multiline 
  rule handling, the "}" is considered to be part of the last rule)

This patch improves the error message in aa.py to cover a missing ","


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-25 22:05:45 +02:00
Jamie Strandboge
502e992c42 Update perl abstraction, logprof.conf, severity.db and tests for Debian/Ubuntu
perl multiarch paths

Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-20 19:14:24 -05:00
Christian Boltz
5006abbbb2 Fix "Invalid mode found: AUDITING" in aa-logprof. Actually the fix is
done in logparser.py which contained "AUDITING" instead of "AUDIT" at
one place.

References: https://bugs.launchpad.net/apparmor/+bug/1358705


Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-21 00:55:44 +02:00
Christian Boltz
427258d07a remove unused REs in logparser.py
Those REs also exist (and are used) in aa.py.


Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-18 21:01:38 +02:00
Christian Boltz
784837301b Fix a bug in logparser.py add_event_to_tree(). It looked for '\\null-/'
but should look for '//null-' instead.

Also remove some code duplication by merging with the next condition, 
which executes the same self.add_to_tree code.


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-17 21:50:15 +02:00
Christian Boltz
51eb1bd69c fix a crash in aa.py / check_for_LD_XXX():
File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 126, in check_for_LD_XXX
  for line in f_in:
  [...]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf8 in position 40: ordinal not in range(128)

While on it, also replace usage of the "found" variable by "return" 
statements, which should bring a small performance improvement - if we 
have a match, it's superfluous to continue searching.

The patch also adds me to the copyright header ;-)


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-17 18:16:33 +02:00
Seth Arnold
0ba4c8cd7e Ensure the that the {**,} and {,**} regexs are being properly parsed by
the Python tools.

Signed-off-by: Seth Arnold <seth.arnold@canonical.com>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-08-14 10:51:42 -07:00
Christian Boltz
d5e6058370 apparmor:vim: add mediate_deleted and delegate_deleted flags
Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-11 23:13:55 +02:00
Christian Boltz
c814443a83 Set the currently selected path as (editable) default when using "(N)ew"
in aa-logprof or aa-genprof.

Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-08-06 19:07:41 +02:00
Christian Boltz
356e7cb199 aa-mergeprof: honor -d parameter
(it was ignored until now)

Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-04 20:19:08 +02:00
Christian Boltz
241544ad8a modify aa-mergeprof to:
- allow users to merge two profiles (2-way merge) using aa-mergeprof by
  making the third profile optional
- re-enable code that cleaned up base and other profile and using it in
  deleted count (was disabled due to pyflakes thinking it was unused)

Patch by Kshitij Gupta <kgupta8592@gmail.com>


Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-07-29 12:39:12 +02:00
Christian Boltz
37ca3dd556 add some more globbing tests for globs with extension, including
filenames that contain a * wildcard and a .* regex wildcard.

Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-28 20:16:04 +02:00
Christian Boltz
be6cb6724d fix aa-mergeprof to
- import apparmor.ui as aaui
- call aaui.UI_*() instead of apparmor.aa.UI_*()
- use apparmor.aamode.AA_MAY_EXEC instead of apparmor.aa.AA_MAY_EXEC


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-07-28 00:24:26 +02:00
Steve Beattie
ab2ac92ecf utils: make all tests consistent in verbosity
This patch adjusts the verbosity of several of the utils tests,
to make them all consistently verbose.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-25 17:49:06 -07:00
Launchpad Translations on behalf of apparmor-dev
3ec7f81dcc Launchpad automatic translations update. 2014-07-24 05:40:28 +00:00
Christian Boltz
dd3b6a8d4a Set PYTHONPATH=.. in runtests-py3.sh to make sure the tests use the in-
tree python modules.

Also remove "sys.path.append('../')" (and now-unused "import sys") from 
all tests that contain it for consistency and to make testing with the 
installed modules possible (even if we don't have a USE_SYSTEM option 
yet).


Acked-by: Steve Beattie <steve@nxnw.org>
2014-07-22 21:25:25 +02:00
Christian Boltz
95ef7cabcb Fix a crash in aa-logprof (to be exact: save_profiles() in aa.py) when
saving the remaining profile after using "save selected profile".

When using "save selected profile", write_profile() (called by 
write_profile_ui_feedback()) does "changed.pop(profile_name)". 
However, saving the remaining profiles in save_profiles() uses a cached 
version of changed.keys() and therefore tries to save a profile that 
was already saved and is no longer part of "changed".


Also remove two commented lines we'll never need again:
- #changed.pop is done in write_profile()
- q['options'] is set some lines above

References: https://bugs.launchpad.net/apparmor/+bug/1341178

Acked-by: Steve Beattie <steve@nxnw.org>
2014-07-22 12:56:37 +02:00
Steve Beattie
aeebd69555 utils: add CAP_AUDIT_READ to severity.db
This patch adds the new capability CAP_AUDIT_READ, added in the 3.16
kernel, to the utils severity.db. I set the severity level at 7,
since it seemed to offer less exposure than CAP_AUDIT_CONTROL and
CAP_AUDIT_WRITE, which are both considered severity 8.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-21 22:54:14 -07:00