If you want to just redirect STDERR to tee, run the following command.
some-command 2> >(tee /var/tmp/output)→ Continue reading “Redirect only STDERR to tee” Principal Software Engineer/Architect, motorcyclist, drummer, and artist
If you want to just redirect STDERR to tee, run the following command.
some-command 2> >(tee /var/tmp/output)→ Continue reading “Redirect only STDERR to tee” Following is a quick how-to on compiling and adding addition SELinux modules.
When configuring and deploying new and/or custom services on systems that are enforcing SELinux you will likely have to compile addition SELinux modules.
This how-to includes how to go through each step of compiling a new module one-by-one; similar to the model of breaking down the compilation of C and C++ into it’s composite steps.
Step 1: Gather the audit.log entries
You will need to determine which → Continue reading “How To Compile and Install New SELinux Plicy Modules”
There are a number of tutorials online for adding a new disk to a machine and then extending an existing LVM partition to use the new device.
This particular tutorial covers the use case of adding a new disk to a Linux server and then creating a NEW LVM partition on it without modifying the existing devices and LVM partitions.
The first thing you will need to do is add the physical device to the server (or VM).
Then, you → Continue reading “Adding a New Disk to a Linux Server and Creating an LVM Partition”
I am working on a VM that is running GNOME under RHEL 7 and I typically run with 12 workspaces. The default GNOME install only has the keyboard shortcut configurations up to “Switch to workspace 4”.
It turns out that the solutions is to use the gsettings cli tool to add additional shorcuts.
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "[\"<ControlF5\"]"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 "[\"<Alt5\"]"→ Continue reading “[SOLVED] Unable to Customize Keyboard Shortcuts for Switching Between More Than 4 Workspaces in GNOME on CentOS 7 or RHEL 7” Or, otherwise know as: SELinux and Silent Denials.
Sometimes when troubleshooting SELinux issues, you will have added new policies for each of the denial causes written to the audit.log, but SELinux will still be denying access . . . and not giving you any further information about it in the audit.log.
Various processes often execute additional system calls that are above an beyond what they need to do for normal operation. Many of them are blocked, and in order to → Continue reading “How to See SELinux Denials That Do Not Show In the audit.log”
In order to be able to access a Samba share on a remote client as a mounted file system execute the following command, as root on the client:
mount -t cifs -o user=<user-on-samba-share,uid=<uid-on-local-macheine,gid=<gid-on-local-machine,rw,workgroup=<your-workgroup//ip/share /mnt/mount-point-dir
You will be prompted for the password for the user defined on the Samba server.
If you are able to authenticate, and then get the following error:
ls: reading directory .: Permission denied
Check the SELinux context type of the directory on → Continue reading “Mounting a Samba Share From Linux Client to Linux Samba Server”
This is one of those things that I tend to do on a regular basis . . . but unfortunately don’t remember the details each time, so I am adding it for future reference.
Often, developers will want to mock static methods that return void. The Mockito and PowerMockito frameworks provide for this, but the syntax isn’t immediately obvious.
Following is an example.
public class SomeClass {
public static void doSomething(String arg1, int arg2) {
// Method that does something...
→ Continue reading “Mocking Static Methods That Return void in Java” If you are building a Java program that requires the ability to execute native commands on the machine which require sudo it requires some additional considerations other than just writing the Java code.
The problem is that sudo, by default, requires a tty for executing sudo such that a password can entered. Even if you configure sudoers to grant NOPASSWD access to a specific command you will still get the following error
sudo: sorry, you must have a tty to → Continue reading “Solution for Executing Native Process from Java that Requires sudo” A common design pattern is to define a class or list of classeses in configuration such that at runtime the classes can be dynamically instantiated.
I’ve done this before in many other languages and had need to do so today in Python (2.7.11)
It seems as though the clean way to do so is by using the Pyton importlib module. By using it, it enables you to cleanly dynamically import sub modules
Following is an example:
import importlib
klass_1_module = → Continue reading “Dynamically Instantiating Classes in Python” If you are using Mockito and PowerMock to build mocks for your Java tests and you run into the following error:
2016-05-05 17:31:20,204 main ERROR Could not reconfigure JMX java.lang.LinkageError: loader constraint violation: loader (instance of org/powermock/core/classloader/MockClassLoader) previously initiated loading for a different type with name "javax/management/MBeanServer"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:238)
at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:182)
at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:70)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
Simply add the following as a class level annotation:
@PowerMockIgnore( {"javax.management.*"} )
→ Continue reading “Java PowerMock Could not reconfigure JMX java.lang.LinkageError Solution”