Warning, /frameworks/syntax-highlighting/autotests/input/test.apparmor is written in an unsupported language. File is not indexed.
0001 # kate: syntax AppArmor Security Profile; replace-tabs off; 0002 0003 # 0004 # Sample AppArmor Profile. 0005 # License: Public Domain 0006 # 0007 # NOTE: This profile is not fully functional, since 0008 # it is designed to test the syntax highlighting 0009 # for the KDE's KSyntaxHighlighting framework. 0010 # 0011 0012 include <tunables/global> 0013 0014 # Variable assignment 0015 @{FOO_LIB}=/usr/lib{,32,64}/foo 0016 @{USER_DIR} 0017 = @{HOME}/Public @{HOME}/Desktop #No-Comment 0018 @{USER_DIR} += @{HOME}/Hello \ 0019 deny owner #No-comment aa#aa 0020 ${BOOL} = true 0021 0022 # Alias 0023 alias /usr/ -> /mnt/usr/, 0024 0025 # ABI feature 0026 abi <abi/3.0>, 0027 abi <"includes/abi/4.19">, 0028 abi "simple_tests/includes/abi/4.19", 0029 abi simple_tests/includes/abi/4.19, 0030 0031 # Profile for /usr/bin/foo 0032 profile foo /usr/bin/foo flags=(attach_disconnected enforce) xattrs=(myvalue=foo user.bar=* user.foo="bar" ) { 0033 #include <abstractions/ubuntu-helpers> 0034 #include<abstractions/wayland> 0035 #include"/etc/apparmor.d/abstractions/ubuntu-konsole" 0036 include "/etc/apparmor.d/abstractions/openssl" 0037 0038 include if exists <path with spaces> 0039 include <include_tests/includes_okay_helper.include> #include <includes/base> 0040 /some/file mr, #include <includes/base> /bin/true Px, 0041 0042 # File rules 0043 /{,**/} r, 0044 owner /{home,media,mnt,srv,net}/** r, 0045 owner @{USER_DIR}/** rw, 0046 audit deny owner /**/* mx, 0047 /**.[tT][xX][tT] r, # txt 0048 0049 owner file @{HOME}/.local/share/foo/{,**} rwkl, 0050 owner @{HOME}/.config/*.[a-zA-Z0-9]* rwk, 0051 0052 "/usr/share/**" r, 0053 "/var/lib/flatpak/exports/share/**" r, 0054 "/var/lib/{spaces in 0055 string,hello}/a[^ a]a/**" r, 0056 0057 allow file /etc/nsswitch.conf r, 0058 allow /etc/fstab r, 0059 deny /etc/xdg/{autostart,systemd}/** r, 0060 deny /boot/** rwlkmx, 0061 0062 owner @{PROC}/@{pid}/{cmdline,mountinfo,mounts,stat,status,vmstat} r, 0063 /sys/devices/**/uevent r, 0064 @{FOO_LIB}/{@{multiarch},64}/** mr, 0065 0066 /usr/bin/foo ixr, 0067 /usr/bin/dolphin pUx, 0068 /usr/bin/* Pixr, 0069 /usr/bin/khelpcenter Cx -> sanitized_helper, 0070 /usr/bin/helloworld cxr -> 0071 hello_world, 0072 /bin/** px -> profile, 0073 0074 # Dbus rules 0075 dbus (send) #No-Comment 0076 bus=system 0077 path=/org/freedesktop/NetworkManager 0078 interface=org.freedesktop.DBus.Introspectable 0079 peer=(name=org.freedesktop.NetworkManager label=unconfined), 0080 dbus (send receive) 0081 bus=system 0082 path=/org/freedesktop/NetworkManager 0083 interface=org.freedesktop.NetworkManager 0084 member={Introspect,state} 0085 peer=(name=(org.freedesktop.NetworkManager|org.freedesktop.DBus)), 0086 dbus (send) 0087 bus=session 0088 path=/org/gnome/GConf/Database/* 0089 member={AddMatch,AddNotify,AllEntries,LookupExtended,RemoveNotify}, 0090 dbus (bind) 0091 bus=system 0092 name=org.bluez, 0093 0094 # Signal rules 0095 signal (send) set=(term) peer="/usr/lib/hello/world// foo helper", 0096 signal (send, receive) set=(int exists rtmin+8) peer=/usr/lib/hello/world//foo-helper, 0097 0098 # Child profile 0099 profile hello_world { 0100 # File rules (three different ways) 0101 file /usr/lib{,32,64}/helloworld/**.so mr, 0102 /usr/lib{,32,64}/helloworld/** r, 0103 rk /usr/lib{,32,64}/helloworld/hello,file, 0104 0105 # Link rules (two ways) 0106 l /foo1 -> /bar, 0107 link /foo2 -> bar, 0108 link subset /link* -> /**, 0109 0110 # Network rules 0111 network inet6 tcp, 0112 network netlink dgram, 0113 network bluetooth, 0114 network unspec dgram, 0115 0116 # Capability rules 0117 capability dac_override, 0118 capability sys_admin, 0119 capability sys_chroot, 0120 0121 # Mount rules 0122 mount options=(rw bind remount nodev noexec) vfstype=ecryptfs /home/*/.helloworld/ -> /home/*/helloworld/, 0123 mount options in (rw, bind) / -> /run/hellowordd/*.mnt, 0124 mount options=read-only fstype=btrfs /dev/sd[a-z][1-9]* -> /media/*/*, 0125 umount /home/*/helloworld/, 0126 0127 # Pivot Root rules 0128 pivot_root oldroot=/mnt/root/old/ /mnt/root/, 0129 pivot_root /mnt/root/, 0130 0131 # Ptrace rules 0132 ptrace (trace) peer=unconfined, 0133 ptrace (read, trace, tracedby) peer=/usr/lib/hello/helloword, 0134 0135 # Unix rules 0136 unix (connect receive send) type=(stream) peer=(addr=@/tmp/ibus/dbus-*,label=unconfined), 0137 unix (send,receive) type=(stream) protocol=0 peer=(addr=none), 0138 unix peer=(label=@{profile_name},addr=@helloworld), 0139 0140 # Rlimit rule 0141 set rlimit data <= 100M, 0142 set rlimit nproc <= 10, 0143 set rlimit memlock <= 2GB, 0144 set rlimit rss <= infinity, 0145 set rlimit nice <= -12, 0146 0147 # Change Profile rules 0148 change_profile unsafe /** -> [^u/]**, 0149 change_profile unsafe /** -> {u,un,unc,unco,uncon,unconf,unconfi,unconfin,unconfine}, 0150 change_profile /bin/bash -> 0151 new_profile//hat, 0152 } 0153 0154 # Hat 0155 ^foo-helper\/ { 0156 network unix stream, 0157 unix stream, 0158 0159 /usr/hi\"esc\x23esc\032es\477esc\*es\{esc\ rw r, # Escape expressions 0160 0161 # Text after a variable is highlighted as path 0162 file /my/path r, 0163 @{FOO_LIB}file r, 0164 @{FOO_LIB}#my/path r, #Comment 0165 @{FOO_LIB}ñ* r, 0166 unix (/path\t{aa}*,*a @{var}*path,* @{var},*), 0167 } 0168 } 0169 0170 # Syntax Error 0171 /usr/bin/error (complain, audit) { 0172 file #include /hello r, 0173 0174 # Error: Variable open or with characters not allowed 0175 @{var 0176 @{sdf&s} 0177 0178 # Error: Open brackets 0179 /{hello{ab,cd}world kr, 0180 /{abc{abc kr, 0181 /[abc kr, 0182 /(abc kr, 0183 0184 # Error: Empty brackets 0185 /hello[]hello{}hello()he kr, 0186 0187 # Comments not allowed 0188 dbus (send) #No comment 0189 path=/org/hello 0190 #No comment 0191 interface=org.hello #No comment 0192 peer=(name=org.hello #No comment 0193 label=unconfined), #Comment 0194 0195 # Don't allow assignment of variables within profiles 0196 @{VARIABLE} = val1 val2 val3 # Comment 0197 0198 # Alias rules not allowed within profiles 0199 alias /run/ -> /mnt/run/, 0200 0201 # Error: Open rule 0202 /home/*/file rw 0203 capability dac_override 0204 deny file /etc/fstab w 0205 audit network ieee802154, 0206 0207 dbus (receive 0208 unix stream, 0209 unix stream, 0210 } 0211 0212 profile other_tests { 0213 # set rlimit 0214 set rlimit nice <= 3, 0215 rlimit nice <= 3, # Without "set" 0216 set #comment 0217 rlimit 0218 nice <= 3, 0219 0220 # "remount" keyword 0221 mount remount 0222 remount, 0223 remount remount 0224 remount, 0225 dbus remount 0226 remount, 0227 unix remount 0228 remount, 0229 # "unix" keyword 0230 network unix 0231 unix, 0232 ptrace unix 0233 unix, 0234 unix unix 0235 unix, 0236 0237 # Transition rules 0238 /usr/bin/foo cx -> hello*, # profile name 0239 /usr/bin/foo Cx -> path/, # path 0240 /usr/bin/foo cx -> ab[ad/]hello, # profile name 0241 /usr/bin/foo Cx -> ab[cd/]a[ad/]hello/path, # path 0242 /usr/bin/foo Cx -> ab[hello/path, # profile name 0243 0244 /usr/bin/foo cx -> "hello*", # profile name 0245 /usr/bin/foo Cx -> "path/", # path 0246 /usr/bin/foo cx -> "ab[ad/]hello", # profile name 0247 /usr/bin/foo Cx -> "ab[cd/]a[ad/]hello/path", # path 0248 /usr/bin/foo Cx -> "ab[hello/path", # profile name 0249 0250 /usr/bin/foo cx -> holas//hello/sa, # path 0251 /usr/bin/foo cx -> df///dd//hat, # path + hat 0252 /usr/bin/foo cx -> holas,#sd\323fsdf, # profile name 0253 0254 # Access modes 0255 /hello/lib/foo rwklms, # s invalid 0256 /hello/lib/foo rwmaix, # w & a incompatible 0257 /hello/lib/foo kalmw, 0258 /hello/lib/foo wa, 0259 # OK 0260 /hello/lib/foo rrwrwwrwrw, 0261 /hello/lib/foo ixixix, 0262 # Incompatible exec permissions 0263 ixixux, uxuxUxux, ixixixPixix, ixixpx uxuxuxPuxux, UxUxcUxUx, 0264 pixpixcixix, cxcxcxix, pixpixpux pixpixix xxix xxpux ixixx puxpuxx, 0265 Cuxcux Pixpix, puxpUx puxPUx xxpix xxcx, 0266 # Test valid permissions 0267 r w a k l m l x ix ux Ux px Px cx Cx , 0268 pix Pix cix Cix pux Pux cux Cux pUx PUx cUx CUx, 0269 rwklmx raklmx, 0270 r rw rwk rwkl rwklm, 0271 rwlmix rwlmUx rwlmPx rwlmcx rwlmPUx, 0272 rwixixixkl rwUxUxUxkl rwuxuxuxk rwpxpxpxk rwPxPxkl rwcxcxlm rwCxCxk, 0273 rwpixpixk rwPixPixkl wrpuxpuxk rwpUxpUxk rwcixcixcixml rwCixCixk rwCuxCuxk rwCUxCUxl, 0274 0275 # Profile name 0276 profile holas { ... } 0277 profile { ... } 0278 profile /path { ... } 0279 profile holas/abc { ... } 0280 profile holas\/abc { ... } 0281 profile 0282 #holas { ... } 0283 0284 profile flags=(complain)#asd { ... } 0285 profile flags flags=(complain) { ... } 0286 profile flags(complain) { ... } 0287 }