Я обновил владельца вместо изменения разрешения файла.

Я должен был использовать chmod 777 <filename> но использовал chown 777 <filename> .

Пример:

[john@sv1:/tmp]$ touch etst_test.txt
[john@sv1:/tmp]$ ls -lrt etst_test.txt
-rw-rw-r-- 1 deploy deploy 0 Oct 17 18:29 etst_test.txt
[john@sv1:/tmp]$ sudo chown 777 etst_test.txt
[john@sv1:/tmp]$ ls -lrt etst_test.txt
-rw-rw-r-- 1 777 deploy 0 Oct 17 18:29 etst_test.txt
[john@sv1:/tmp]$ vi etst_test.txt

Мне не нравится, что это происходит, и я хотел бы установить какой-либо метод предотвращения, чтобы остановить меня / кого-либо, отвергнув или показывая некоторые ошибки.

1 ответ1

1

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

Конечно, недостатком этого является то, что после обновления gnu coreutils ваша пакетная версия chown будет перезаписана (в зависимости от того, как ваш менеджер пакетов отреагирует, когда увидит нестандартную версию chown).

Вы также можете доверять root для правильного выполнения действий и ограничить доступность этой команды только для root , используя chmod (и будьте осторожны, используя chmod и не chown :-)) на chown а затем, возможно, возитесь с привилегиями sudo для этой команды. ,

Как упомянуто в комментариях @qasdfdsaq, наилучшим способом является назначение псевдонима, при котором двоичный файл остается неизменным и не запутает менеджер пакетов. Так создать сценарий под названием mychown (или что угодно) , что делает запрашиваемая, поместите его в /usr/local/bin или где - то в этом роде и есть псевдоним , который указывает chown к этому сценарию.

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