我如何才能删除粘性位的背景颜色。LSCOLORS 看起来像这样 export LSCOLORS="Gxfxcxdxbxegedabagacad"
使用 oh-my-zsh
编辑:正如建议的那样,我进行了测试,LSCOLORS="" ls
但颜色仍然存在。
答案1
你的例子没有显示粘着位, 表明设置组ID. (粘性是chmod +t
,你有chmod g+s
。)
你确定你需要这个吗?我觉得这不对。
在目录上设置 gid 意味着在该目录中创建的文件将拥有目录中的组,而不是用户的主要组,所以这非常有用。
但是在普通的、不可执行的文件上设置gid 不会做任何有用的事情。
我建议从所有文件中删除 setgid(但将其保留在目录中),如下所示:
find . -type f -exec chmod g-s {} \;
或者您可以使用以下方法强制对文件和目录设置一组已知的权限:
find . \( -type d -exec chmod g=rwsx {} \; \) -o \( -type f -exec chmod g=rw {} \; \)
下次,不要使用chmod -R g+s
或find -exec chmod g+s {} \;
,而是这样做:
find . -type d -exec chmod g+s {} \;
这样它只会影响目录。
背景
ls
颜色 setgid 文件,因为如果该文件也是可执行的,它将以额外的权限运行。
我认为黄色和黑色突出显示是为了让你仔细查看它们,以确保它们是你所期望的,而不是恶意用户或 rootkit 等安装的某些新文件。
跑步
find /usr -perm -2000
查看一些使用这些权限的程序示例。
在我的系统上它列出
/usr/bin/wall
/usr/bin/chage
/usr/bin/expiry
...
例如r-s
,/usr/bin/wall
$ ls -l /usr/bin/wall
-rwxr-sr-x 1 root tty 9888 2008-04-29 11:57 /usr/bin/wall
意味着该wall
程序可以将输出写入任何用户的 tty,即使它不是以 root 身份运行。
如果完成上述操作后,您仍然想改变颜色,请尝试以下步骤:
LS_COLORS=${LS_COLORS/sg=30;43:/sg=00:}
放置它的位置取决于您的设置,但放在 ~/.zshrc 的末尾就可以了。
由于某种原因,删除sg
(setgid)条目会使其使用默认颜色,而不是不使用特殊颜色。