Commit graph

2648 commits

Author SHA1 Message Date
Steve Beattie
361f08bad8 utils: fix cmd reference in apparmor/tools.py
This patch fixes up the parser command invocation via
apparmor/common.py:cmd(), as it handles stdout/stderr redirection,
and the redirection that was being attempted were being handed as
arguments to the parser.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-02-24 14:22:35 -08:00
Christian Boltz
33857562af update the bugtracker link in the libapparmor README
Acked-by: Steve Beattie <steve@nxnw.org>
2014-02-24 22:44:32 +01:00
Christian Boltz
a5d003f90d new profile tools - handling of "(F)inish"
Let "(F)inish" ask the user if he wants to save the changed profiles 
before exiting, instead of aborting without saving (we already have 
Abo(r)t for that ;-)


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-02-24 20:56:28 +01:00
Christian Boltz
ce8429523d fix two (unrelated) issues in common.py:
- add some debug logging in valid_path()
- fix a py2 incompability in DebugLogger.__init__ (OSError vs. IOError)

Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-02-24 20:34:21 +01:00
Christian Boltz
2e3d542c28 Profile parsing: some fixes around the REPOSITORY: line
- use the (new) "parts" variable for the line.split result to make the 
  code less confusing
- change the line.startswith to check for "REPOSITORY:" (note the 
  added ":") like it was in the code before my previous patch.
- make the check for "NEVERSUBMIT" more exact
- print a warning on invalid REPOSITORY: lines and make sure to keep
  them as unmodified line (it might just be a "normal" comment someone
  added manually)


Acked-by: Kshitij Gupta <kgupta8592@gmail.com> (on IRC)
2014-02-24 19:20:11 +01:00
Christian Boltz
295a836324 new profile tools: preserve full initial comment
This patch
- preserves the complete initial comment
- makes sure whitespace inside the comment is kept (except leading 
  whitespace - line.trim() is still applied).
- no longer removes the "# vim:syntax" line

Note: I didn't test if handling the "REPOSITORY" line still works (in
theory it should), but without a working repo, I don't care too much ;-)


Acked-by: Steve Beattie <steve@nxnw.org>
2014-02-22 13:09:15 +01:00
Steve Beattie
72fa616362 Merge abstraction changes from Simon Dezial:
- Add missing applications/ directory read access rules
  - Adapt paths for python 3.{3,4}, coalescing some rules, and
    remove unneeded rule
2014-02-21 12:58:05 -08:00
Steve Beattie
192ca1dc57 parser: exit with error on invalid arguments
The parser currently indicates that it exited successfully if invalid
arguments are passed to it, which makes it difficult to detect when
other tools are calling it incorrectly. This patch causes it to return
'1' indicating a failure.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: John Johansen <john.johansen@canonical.com>
2014-02-20 16:53:18 -08:00
Simon Deziel
59e97687b1 Remove unneeded rule as this is already allowed by
the site-wide config rule.
2014-02-20 10:33:19 -05:00
Simon Deziel
96fd3f8bd0 Adapt path for python 3.{3,4} too 2014-02-20 10:31:47 -05:00
Simon Deziel
2eb7390aa2 Add missing directory read access rules 2014-02-20 10:31:07 -05:00
Christian Boltz
ea8e02412e dnsmasq profile - NetworkManager integration
This is an updated version of the previous dnsmasq profile patch, again 
from develop7 [at] develop7.info


Acked-by: John Johansen <john.johansen@canonical.com>
2014-02-17 22:56:02 +01:00
Seth Arnold
c77143b542 Bump library version numbers for a 2.8.95 pre-release of 2.9. 2014-02-16 22:12:43 -08:00
Steve Beattie
c3b258f602 Merge in the new python version of the apparmor utilities from Kshitij
Gupta's <kgupta8592@gmail.com> Google Summer of Code project, as well as
deprecate the older perl versions of the code.
2014-02-14 23:34:42 -08:00
Steve Beattie
b98c40181c utils/apparmor/yasti.py: remove XXX comments; when the time comes for
someone to attempt to see if things work with the python ycp bindings,
they'll discover whether the functions are the right ones or not.
2014-02-14 22:52:31 -08:00
Steve Beattie
7fab3a7a69 Sync with trunk. 2014-02-14 14:47:18 -08:00
Steve Beattie
ec7676bdec utils/aa-*: adjust python shebang lines to ease rewriting to an
alternate python if installed via the python-tools-setup.py script.
2014-02-14 14:42:19 -08:00
Christian Boltz
503d951673 update abstractions/winbind
- some *.dat files live in a different directory nowadays (at least in 
  openSUSE)
- the openSUSE smb.conf includes the (autogenerated) dhcp.conf, so this
  file also needs to be readable.

References: https://bugzilla.novell.com/show_bug.cgi?id=863226

Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-02-14 23:37:13 +01:00
Jamie Strandboge
6812e5e550 Update abstractions to use new XDG_*_DIR values. Thanks to Christian Boltz for
the suggestion to use @{XDG_DOWNLOAD_DIR} in abstractions/user-download as
well as the existing entries.

Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-By: Christian Boltz <apparmor@cboltz.de>
2014-02-14 16:28:16 -06:00
Jamie Strandboge
8a0951be18 = Background =
The xdg-user-dirs specification[1] allows for translatable and movable common
directories. While this may be beneficial for users who for example want to have
~/Pictures translated into their own language, this flexibility provides
challenges for AppArmor. Untranslated xdg user directories are typically (see
~/.config/user-dirs.dirs):

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

On an Ubuntu system with the fr_CA locale installed, these become:
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Téléchargements"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Musique"
XDG_PICTURES_DIR="$HOME/Images"
XDG_VIDEOS_DIR="$HOME/Vidéos"

While the kernel and AppArmor parser handle these translations fine, the
profiles do not.

As an upstream, we can vastly improve the situation by simply creating the
xdg-user-dirs tunable using the default 'C' xdg-user-dirs values:
$ cat /etc/apparmor.d/tunables/xdg-user-dirs
@{XDG_DESKTOP_DIR}=Desktop
@{XDG_DOWNLOAD_DIR}=Downloads
@{XDG_TEMPLATES_DIR}=Templates
@{XDG_PUBLICSHARE_DIR}=Public
@{XDG_DOCUMENTS_DIR}=Documents
@{XDG_MUSIC_DIR}=Music
@{XDG_PICTURES_DIR}=Pictures
@{XDG_VIDEOS_DIR}=Videos

# Also, include files in tunables/xdg-user-dirs.d for site-specific adjustments
# to the various XDG directories
#include <tunables/xdg-user-dirs.d>

and then create the /etc/apparmor.d/tunables/xdg-user-dirs.d directory. With
that alone, we can start using rules like this in policy:

  owner @{HOME}/@{XDG_MUSIC_DIR}/** r,

and users/admins can adjust /etc/apparmor.d/tunables/xdg-user-dirs or drop files
into /etc/apparmor.d/tunables/xdg-user-dirs.d, providing a welcome convenience.

This of course doesn't solve everything. Because users can modify their
~/.config/user-dirs.dirs file at will and have it point anywhere, so we can't
examine those files and do anything automatic there (when we have user policy we
can revisit this). This patch handles translations well though since use of
translations for these directories happens outside of the user's control. Users
who modify ~/.config/user-dirs.dirs can update policy like they need to now (ie,
this patch doesn't change anything for them).

[0] https://lists.ubuntu.com/archives/apparmor/2013-August/004183.html
[1] http://freedesktop.org/wiki/Software/xdg-user-dirs/

This patch adds basic support for XDG user dirs:

1. Update profiles/apparmor.d/tunables/global to include xdg-user-dirs.
2. Create the xdg-user-dirs tunable using the default 'C' xdg-user-dirs values
   and includes tunables/xdg-user-dirs.d
3. Add profiles/apparmor.d/tunables/xdg-user-dirs.d/site.local with commented
   out examples on how to use the directory.

Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-By: Christian Boltz <apparmor@cboltz.de>
2014-02-14 16:24:52 -06:00
Jamie Strandboge
e9c30a9361 libthai-data is used by LibThai which is the library used to deal with
Thai-specific functions like word-breaking, input and output methods and basic
character and string support. This is: https://launchpad.net/bugs/1278702

Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-by: Steve Beattie <steve@nxnw.org>
2014-02-14 14:28:12 -06:00
Steve Beattie
a482139616 utils/aa-autodep: make --force be a boolean argument, not require an additional value 2014-02-14 12:25:13 -08:00
Steve Beattie
3cbbeac60d utils/apparmor/tools.py: fix misimport of UI stuff as well as a paren
depth error in use_autodep()
2014-02-14 12:19:55 -08:00
Steve Beattie
edb874a2de utils/apparmor/aa.py: fix confusion over name vs data structure 2014-02-14 11:54:02 -08:00
Steve Beattie
4d2b9b5c5d utils/apparmor/aa.py: fix dict/list confusion in create_new_profile() 2014-02-14 11:20:20 -08:00
Seth Arnold
35e79ef66d Author: Jamie Strandboge <jamie@canonical.com>
Description: Allow applications run under sanitized_helper to connect to DBus

This was originally 0076_sanitized_helper_dbus_access.patch in the Ubuntu
apparmor packaging.

jdstrand: +1 (this is in the Ubuntu namespace, so feel free to commit)
2014-02-13 18:11:54 -08:00
Seth Arnold
0aefb378f9 Subject: using webapps triggers firefox rejections
Bug: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1056418
From: Steve Beattie <steve.beattie@canonical.com>

Came from 0021-webapps_abstraction.patch in the Ubuntu apparmor packaging.

jdstrand: +1 (this is in the Ubuntu namespace, so feel free to commit)
2014-02-13 18:10:05 -08:00
Seth Arnold
b432cf45c9 Add aa-easyprof and easyprof.py and related pieces from the Ubuntu
apparmor packaging.

These were originally 0030-easyprof-sdk.patch and
0037-easyprof-sdk-pt2.patch. Jamie posted an updated
0030-easyprof-sdk_v2.patch and I squashed both patches into one commit.

Acked-By: Jamie Strandboge <jamie@canonical.com>
2014-02-13 17:53:40 -08:00
Seth Arnold
3ee30ca14c Description: Remove access to pulseaudio debug socket from audio abstraction
Grant access to specific files in the /var/run/user/UID/pulse/ directory to
 remove access to potentially dangerous and non-essential files such as the
 debug (cli) socket provided by the module-cli-protocol-unix module.
Author: Tyler Hicks <tyhicks@canonical.com>
Bug-Ubuntu: https://launchpad.net/bugs/1211380
Acked-by: Steve Beattie <steve@nxnw.org>
2014-02-13 17:25:31 -08:00
Seth Arnold
b70d3fe48e Author: Jamie Strandboge <jamie@canonical.com>
Description: allow mmap of fglrx dri libraries
Bug-Ubuntu: https://launchpad.net/bugs/1200392
Acked-by: Steve Beattie <steve@nxnw.org>

Came from 0038-lp1200392.patch.
2014-02-13 17:23:56 -08:00
Seth Arnold
8e5f15c603 Author: Jamie Strandboge <jamie@canonical.com>
Description: update mod_apparmor man page for Apache 2.4 and add new
 apparmor.d/usr.sbin.apache2 profile (based on the prefork profile)
Acked-by: Steve Beattie <steve@nxnw.org>

Differs from original 0036-libapache2-mod-apparmor-profile-2.4.patch
ubuntu patch -- I've deleted the "delete the apache 2.2 profile" part of
the patch. So apache 2.2's profile is also still supported.
2014-02-13 17:21:41 -08:00
Seth Arnold
f88539d230 Description: /etc/vdpau_wrapper.cfg needed for Firefox 18+ on quantal
Author: Micah Gersten <micah@canonical.com>
Acked-by: Steve Beattie <steve@nxnw.org>

Modified by Seth Arnold; nvidia nvpau_wrapper.cfg permission was hoisted
up into an nvidia abstraction.
2014-02-13 17:17:46 -08:00
Seth Arnold
37ecdcfce5 Description: Allow using sssd for group and password lookups
Author: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Steve Beattie <steve@nxnw.org>

This was originally patch 0018-lp1056391.patch in the Ubuntu apparmor
packaging; Steve noticed the now-redundant line for /var/lib/sss/mc/passwd
so I removed that at the same time.
2014-02-13 17:15:03 -08:00
Steve Beattie
841c0e767c deprecated/utils/: add back Makefile to simplify install of deprecated
Immunix perl modules
2014-02-13 14:32:28 -08:00
Christian Boltz
311163203a dovecot profiles - use abstractions/nameservice
After testing the dovecot profiles on a new server, I noticed 
/usr/lib/dovecot/dict and /usrlib/dovecot/lmtp need more nameservice-
related permissions.

Therefore include abstractions/nameservice instead of adding more and 
more files.

Acked-by: John Johansen (on IRC)
2014-02-13 22:19:26 +01:00
Steve Beattie
e61d8bda60 utils: have make clean purge python3 __pycache__ dir in apparmor/ 2014-02-13 11:54:42 -08:00
Steve Beattie
f54a574ee4 utils/: fix last make check failure, though the new utils tests need to
be added in (but they have failures themselves currently)
2014-02-13 11:32:36 -08:00
Steve Beattie
56b01b6eaa utils/apparmor/yasti.py: work around ycp not being available everywhere 2014-02-13 11:14:34 -08:00
Steve Beattie
3b726b996d utils: no need to run pyflakes on aa-status twice 2014-02-13 11:01:29 -08:00
Steve Beattie
2db3a226dc Regenerate apparmor-utils pot (translations template) file 2014-02-13 10:59:16 -08:00
Steve Beattie
be2296edf1 utils/apparmor/: work around last of pyflakes issues here 2014-02-13 10:52:00 -08:00
Steve Beattie
81b3db3dbf Fix more pyflakes issues that cause make check to fail 2014-02-13 10:01:03 -08:00
Steve Beattie
f652178a02 aa-mergeprof: fixup some of the whitespace issues 2014-02-13 08:31:59 -08:00
Steve Beattie
d318ff6100 Fix up last pyflakes issues with tools 2014-02-13 08:24:02 -08:00
Steve Beattie
15a95e3b36 Fix up some more pyflakes issues with the tools 2014-02-13 08:20:59 -08:00
Steve Beattie
bf655b530f Fix make install to handle new python binaries, as well as informing
setuptools to install the entire apparmor python package.
2014-02-13 00:04:39 -08:00
Steve Beattie
e9db24ac23 Add support for better integration of external apparmor modules (e.g.
appamror-click), see http://www.python.org/dev/peps/pep-0402/ for details.
2014-02-12 23:32:25 -08:00
Steve Beattie
32e0931588 Fix up execute permissions that were lost in the merger for some reason. 2014-02-12 16:59:27 -08:00
Steve Beattie
f989dd0132 Merge in Kshitij Gupta <kgupta8592@gmail.com>'s rewrite of the
logprof/genprof and related utilities in python. Because the branch that
was worked on was not based on the apparmor tree, not all of the history
can be maintained for files that are not newly created or entirely
rewritten in the branch.

(This merge also includes a subsequent commit to the branch
I was merging from which includes my missed bzr add of
utils/apparmor/translations.py)
2014-02-12 15:54:00 -08:00
Steve Beattie
b3b4fd448e Reorganize layout to ease merger into upstream apparmor-utils tree. 2014-02-12 13:27:30 -08:00