4

Как я могу удалить цвет фона для липкого бита. LSCOLORS выглядит следующим образом: LSCOLORS = "Gxfxcxdxbxegedabagacad"

Использование oh-my-zsh

Изменить: Как и предполагалось, я протестировал LSCOLORS="" ls но цвета все еще там.

1 ответ1

2

Ваш пример не показывает бит закрепления, он показывает setgid. (sticky это chmod +t , у вас есть chmod g+s .)

Вы уверены, что вам это нужно? Мне кажется, это неправильно.

Setgid для каталога означает, что файлы, созданные в этом каталоге, будут иметь группу из каталога, а не основную группу пользователя, так что это довольно полезно.

Но setgid для обычного неисполняемого файла не делает ничего полезного.

Я бы предложил удалить 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 colors setgid files, потому что если файл также исполняемый, он будет работать с дополнительными разрешениями.

Я думаю, что идея заключается в том, что желто-черная подсветка предназначена для того, чтобы вы внимательно смотрели на них, чтобы убедиться, что они именно те, которые вы ожидаете, а не какой-то новый файл, который был установлен злонамеренным пользователем, или руткит, или что-то еще.

Бежать

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) заставляет использовать цвета по умолчанию, а не специальные цвета.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .