«Permission denied», когда я записываю CD в любую папку

/var/log/messages удален из Natty. Вы можете найти ту же информацию в /var/log/syslog. Обратите внимание, что все записи, зарегистрированные в messages, также были записаны в syslog.

5
задан 8 December 2017 в 19:07

3 ответа

Вероятно, вы являетесь жертвой шалости, возможно, сделанной вашими коллегами или кем-то, у кого был доступ к вашей машине.

Функции Bash могут затенять исходные встроенные команды оболочки, как вы могли видеть, как вы сделал type -a cd. Он показал вам, что сначала обнаружил функцию, которая, возможно, была объявлена ​​где-то.

cd is a function
cd () 
{ 
    echo "-bash: cd: $1: Permission denied"
}
cd is a shell builtin

Из этого вывода вы можете видеть, что где-то кто-то объявлял функцию оболочки под названием cd, которая теперь закрывает оболочку, в команде cd. В некоторых случаях что-то вроде этого может быть полезно, чтобы сделать команды более универсальными или реализовать дополнительные функции, но в этом случае это было сделано с плохой целью (моя догадка). Это можно было бы сделать в нескольких местах в системе:

/etc/bash.bashrc /etc/profile любой файл в /etc/profile.d/ /etc/environment ~/.bashrc ~/.profile ~/.bash_aliases любой другой файл, который запускается или из этих файлов

Одним из возможных способов поиска этого может быть рекурсивный поиск grep в /etc/ и в /home/:

grep -r 'bash: cd: $1: Permission denied' /home/*
sudo grep -r 'bash: cd: $1: Permission denied' /etc/*

Что может дать вывод:

$ grep -r 'bash: cd: $1: Permission denied' /home/*
/home/videonauth/.bashrc:    echo "-bash: cd: $1: Permission denied"

В этом примере строка или функция, похоже, находятся в ~/.bashrc, которую вы видите по пути, ведущему к выходу grep. В зависимости от того, насколько все это скрыто, это может привести или не приведет к результату. Существуют и другие способы скрыть такое объявление функции, которое не так легко найти.

2
ответ дан 22 May 2018 в 15:33

Вероятно, вы являетесь жертвой шалости, возможно, сделанной вашими коллегами или кем-то, у кого был доступ к вашей машине.

Функции Bash могут затенять исходные встроенные команды оболочки, как вы могли видеть, как вы сделал type -a cd. Он показал вам, что сначала обнаружил функцию, которая, возможно, была объявлена ​​где-то.

cd is a function cd () { echo "-bash: cd: $1: Permission denied" } cd is a shell builtin

Из этого вывода вы можете видеть, что где-то кто-то объявлял функцию оболочки под названием cd, которая теперь закрывает оболочку, в команде cd. В некоторых случаях что-то вроде этого может быть полезно, чтобы сделать команды более универсальными или реализовать дополнительные функции, но в этом случае это было сделано с плохой целью (моя догадка). Это можно было бы сделать в нескольких местах в системе:

/etc/bash.bashrc /etc/profile любой файл в /etc/profile.d/ /etc/environment ~/.bashrc ~/.profile ~/.bash_aliases любой другой файл, который запускается или из этих файлов

Одним из возможных способов поиска этого может быть рекурсивный поиск grep в /etc/ и в /home/:

grep -r 'bash: cd: $1: Permission denied' /home/* sudo grep -r 'bash: cd: $1: Permission denied' /etc/*

Что может дать вывод:

$ grep -r 'bash: cd: $1: Permission denied' /home/* /home/videonauth/.bashrc: echo "-bash: cd: $1: Permission denied"

В этом примере строка или функция, похоже, находятся в ~/.bashrc, которую вы видите по пути, ведущему к выходу grep. В зависимости от того, насколько все это скрыто, это может привести или не приведет к результату. Существуют и другие способы скрыть такое объявление функции, которое не так легко найти.

2
ответ дан 18 July 2018 в 01:36

Вероятно, вы являетесь жертвой шалости, возможно, сделанной вашими коллегами или кем-то, у кого был доступ к вашей машине.

Функции Bash могут затенять исходные встроенные команды оболочки, как вы могли видеть, как вы сделал type -a cd. Он показал вам, что сначала обнаружил функцию, которая, возможно, была объявлена ​​где-то.

cd is a function cd () { echo "-bash: cd: $1: Permission denied" } cd is a shell builtin

Из этого вывода вы можете видеть, что где-то кто-то объявлял функцию оболочки под названием cd, которая теперь закрывает оболочку, в команде cd. В некоторых случаях что-то вроде этого может быть полезно, чтобы сделать команды более универсальными или реализовать дополнительные функции, но в этом случае это было сделано с плохой целью (моя догадка). Это можно было бы сделать в нескольких местах в системе:

/etc/bash.bashrc /etc/profile любой файл в /etc/profile.d/ /etc/environment ~/.bashrc ~/.profile ~/.bash_aliases любой другой файл, который запускается или из этих файлов

Одним из возможных способов поиска этого может быть рекурсивный поиск grep в /etc/ и в /home/:

grep -r 'bash: cd: $1: Permission denied' /home/* sudo grep -r 'bash: cd: $1: Permission denied' /etc/*

Что может дать вывод:

$ grep -r 'bash: cd: $1: Permission denied' /home/* /home/videonauth/.bashrc: echo "-bash: cd: $1: Permission denied"

В этом примере строка или функция, похоже, находятся в ~/.bashrc, которую вы видите по пути, ведущему к выходу grep. В зависимости от того, насколько все это скрыто, это может привести или не приведет к результату. Существуют и другие способы скрыть такое объявление функции, которое не так легко найти.

2
ответ дан 24 July 2018 в 17:25

Другие вопросы по тегам:

Похожие вопросы: