5

enter image description here

Some of my folders are highlighted in green

What does the green highlighting means? How can I remove the highlight and make them look similar to others?

terminal : gnome-terminal.

system : Ubuntu 16.04

  • Apologies - possibly What do the different colors mean in the terminal? is closer to what you are asking: specifically, the green background probably indicates that the directories have "others writeable" permission – steeldriver Feb 10 '17 at 15:21
  • A simple solution is to use the dir command instead of ls or ls -l. For a very detailed explanation see askubuntu.com/questions/103913/… In particular see Eliah Kagan's answer. – ThisIsNotAnId Feb 11 '17 at 2:19
  • Reopening this because the other question does not explain how to change the highlighting. This question covers some of it, but I'm not sure it applies here or is enough to answer the question. – Seth Feb 11 '17 at 3:32
8

The answer to your question is hidden in the answers to both What do the different colors mean in the terminal? and How do I change the color for directories with ls in the console?

The cause of the green highlighting is because your directories are writable by other (o+w) and not sticky.

So that explains why they have green highlighting, but you also ask how to remove it. You say "make it look like the others", by which I assume you mean normal directories. Open up your ~/.bashrc and append the following to the bottom:

export LS_COLORS="$LS_COLORS:ow=1;34:tw=1;34:"

save the file and then run

source ~/.bashrc

Now they will look the same as any other directory. Take note though that the system thinks this is information you should be able to see, by doing this you will no longer be able to see it easily. Consider choosing a different background color from the list here. I think purple isn't too bad (ow=1;34;45:)

enter image description here

Explanation:

ow stands for 'other, writable', tw is 'sticky, writable' (the other condition that has a green background). I found these values by examining the contents of $LS_COLORS on my system, looking for values with a background color of 42 (green). The color code has 3 columns (unused columns are left out):

bold;font-color;bg-color
1

This is because you have given write permission to other, meaning other than file owner and not in the group. Check permissions with ls -l or ll. Remove write permission from other by chmod 0755 directory_name, so it will look similar to other directories.

  • 1
    Judging by the names of most of the dirs removed write permission might change the behavior or break some apps. You might want to warn about that. – chaskes Feb 11 '17 at 3:46
0

We can implement it with Python's os.listdir() method. Below is a Python example file: /mnt/home/uname/Documents/reverseVideo.py.

import os

from stat import *

class Rvideo:

    def     __init__(self, path):
            self.pathname = path

    def     other_no_write(self):
            td = self.pathname
            for f in os.listdir(td):
                    path = os.path.join(td,f)
                    mode = os.stat(path).st_mode                       
                    if S_ISDIR(mode):
                            os.chmod(path, mode & ~S_IWOTH & 0o777)

Alternatively, one could code the last line like below:

    os.chmod(path,oct(os.stat(path)[ST_MODE])[-3:])

Then we can invoke it within a python3 interactive shell:

    >>> sys.path.append("/mnt/home/uname/Documents/")
    >>> from reverseVideo import Rvideo
    >>> d = Rvideo("/some/directory")
    >>> d.other_no_write()

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.