-bash: chattr: команда не найдена - PullRequest
1 голос
/ 11 февраля 2012

Я пытаюсь изменить мой .bash_profile, и он выдает

ошибка записи в .bash_profile Отказано в разрешении

Итак, я использую chattr -i .bash_profile длясделайте его неизменным, и это даст мне

-bash: chattr: команда не найдена.

Может кто-нибудь помочь мне в этом?

Ответы [ 5 ]

3 голосов
/ 11 февраля 2012

Почему вы предполагаете из этого сообщения, что файл является "неизменяемым" и требует, чтобы вы сделали chattr -i?

Вы не предоставили достаточно информации, чтобы сказать, в чем проблема, но мои первые мысли таковы: 1) файл не принадлежит вам (возможно, создан, когда предъявлен иск или предъявлен иск),или 2) разрешения не позволяют вам записывать в файл.

Если вы действительно являетесь владельцем (или можете сделать chown, чтобы сделать себя владельцем, при условии, что это уместно), попробуйте выполнить chmod u+w на это.

2 голосов
/ 03 февраля 2016

Это установит chattr: apt-get install e2fsprogs

1 голос
/ 31 марта 2017

Если вы используете Ubuntu или Debian, вы можете использовать

apt-get install e2fsprogs

Тогда попробуйте еще раз.

0 голосов
/ 08 ноября 2016

Хорошо, я не уверен, поможет ли это, поскольку на вопрос о том, какая ОС использовалась, ответа не было, но я столкнулся с похожей проблемой, работающей во FreeBSD, где Man-страницы подразумевают, что FreeBSD поддерживает как chattr, так и lsattr, когда вы пытаетесь использовать любой из них, вы получаете ошибку «команда не найдена», которая немного сбивает с толку.

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

FreeBSD предлагает защиту от записи с помощью специального бита Immutable, чтобы включить его, выполните следующую команду:

$ chflags schg filename

Чтобы проверить, установлен ли этот флаг, выполните следующую команду:

$ ls -lo filename

Что дает вам следующие результаты:

-r--r--r--  1 root  wheel  schwa  12 Nov 16 15:36 filename

Чтобы очистить или удалить неизменяемый бит файла, выполните следующие действия:

$ chflags noschg filename

Теперь файл можно удалить

Примечание. Этот неизменный флаг может быть установлен только пользователем root.

Далее chflags поддерживает несколько других интересных флагов:

  • арка: установить флаг в архиве
  • nodump: установите флаг No Dump
  • sapped: установить флаг системного добавления только
  • schg: установить флаг неизменности системы
  • sunlnk: установить флажок отмены системы
  • uappnd: установите флажок «Только для добавления пользователя»
  • uchg: установить флаг неизменяемого пользователя
  • uunlnk: установить флаг удаления пользователя

Примечание: установка «нет» перед опцией приводит к отключению флага

Так что, если у вас нет доступа к chattr и lsattr, возможно, это потому, что они используют эту методологию для того же.

P.S. Если файл сделан неизменным или только для добавления, его нельзя удалить до тех пор, пока этот атрибут файла не будет изменен. Не уверен ни в каких других настройках, но это была информация, указанная для этих двух параметров.

0 голосов
/ 11 февраля 2012

Эта ошибка «Отказано в доступе» может быть результатом того, что у вас недостаточно прав в соответствии с классической моделью разрешений UNIX.

Неизменность (и эта конкретная система атрибутов файлов) - это специфика Linux. Chattr не входит в coreutils, поэтому вам может потребоваться установить его отдельно (как это сделать зависит от вашего дистрибутива Linux).

Кроме того, chattr -i будет удалять флаг неизменности, но не устанавливать его.

...