Software & AppsOperating SystemLinux

Fixing gdb “Operation not permitted” error after Ubuntu upgrade

Ubuntu 14

If you’ve recently upgraded your Ubuntu system from version 10.04 to 11.04, you may have encountered an error message that says “Operation not permitted” when trying to attach to processes with gdb. This issue is due to a security enhancement in the newer Ubuntu versions. In this article, we’ll guide you through the steps to fix this error.

Quick Answer

To fix the gdb "Operation not permitted" error after an Ubuntu upgrade, you can temporarily disable the restriction by running the command echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope. For a permanent solution, edit the /etc/sysctl.d/10-ptrace.conf file and change kernel.yama.ptrace_scope = 1 to kernel.yama.ptrace_scope = 0. However, it’s important to note that disabling this restriction can potentially expose your system to security risks, so proceed with caution.

Understanding the Issue

The error message is a result of a setting in /proc/sys/kernel/yama/ptrace_scope that restricts non-root users from attaching to processes. This is a security measure to prevent unauthorized users from tampering with running processes.

Temporary Solution

To temporarily disable this restriction, you can use the following command:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

Here, echo 0 sends a 0 value to the command that follows the pipe (|). The sudo tee /proc/sys/kernel/yama/ptrace_scope command writes this 0 value to the ptrace_scope file, effectively disabling the restriction.

This change will only last until the next system restart, after which the restriction will be re-enabled.

Permanent Solution

If you want to permanently disable this restriction, you need to edit the /etc/sysctl.d/10-ptrace.conf file.

Here’s how:

  1. Open the file in a text editor with root privileges. You can use the nano editor as follows:
sudo nano /etc/sysctl.d/10-ptrace.conf
  1. Find the line that reads kernel.yama.ptrace_scope = 1 and change it to kernel.yama.ptrace_scope = 0.
  2. Save the file and exit the editor.

This change will persist even after system restarts.

Important Considerations

While this solution will fix the gdb “Operation not permitted” error, it’s important to understand that the restriction was put in place for security reasons. Allowing non-root users to attach to processes can potentially expose your system to security risks.

Before making these changes, make sure you understand the implications and are prepared to manage the potential risks. For more information on why this change was made and further details, you can refer to the Ubuntu wiki on Kernel Hardening and ptrace Protection.


The gdb “Operation not permitted” error after upgrading Ubuntu is a common issue that can be resolved by changing a system setting. While the solution is relatively simple, it’s crucial to understand the security implications before proceeding. Always ensure that you have adequate security measures in place when making changes that could potentially expose your system to risks.

How can I check the current value of `ptrace_scope`?

You can check the current value of ptrace_scope by running the command cat /proc/sys/kernel/yama/ptrace_scope. This will display the current value (0 or 1) on your system.

Can I change the `ptrace_scope` value for a specific user instead of globally?

No, the ptrace_scope value applies system-wide and cannot be set individually for different users. It is a global setting that affects all non-root users on the system.

Are there any alternatives to using gdb for attaching to processes?

Yes, there are alternative tools available for attaching to processes, such as strace and ltrace. However, these tools have different functionalities and may not provide the same level of debugging capabilities as gdb. It is recommended to consult the documentation of these tools to determine if they meet your specific requirements.

What are the potential risks of disabling the `ptrace_scope` restriction?

Disabling the ptrace_scope restriction can potentially expose your system to security risks. Allowing non-root users to attach to processes can make it easier for malicious users to tamper with running processes and potentially gain unauthorized access to sensitive information or execute malicious code. It is important to weigh the benefits and risks before making changes to this system setting.

Can I revert the changes and re-enable the `ptrace_scope` restriction?

Yes, you can revert the changes and re-enable the ptrace_scope restriction by either restarting your system or editing the /etc/sysctl.d/10-ptrace.conf file and changing the kernel.yama.ptrace_scope value back to 1. Restarting the system will also reset the ptrace_scope value to its default setting.

Leave a Comment

Your email address will not be published. Required fields are marked *