2016-12-05 3 views
-2

Я выполнил следующую команду, надеясь, что вы сможете вставить в нее содержимое файла.Не удается записать файл в/usr/bin

sudo cat > /usr/bin/sasquatch 

И продолжает получать следующее сообщение об ошибке, даже после изменения прав доступа к файлам с sudo.

bash: /usr/bin/sasquatch: Permission denied 

Почему это происходит, и как я могу это исправить?

+0

Суд только предоставляет вам доступ, который администратор дал вы. Это, как правило, неостанавливаемая корневая магия, если только это не ваша персональная машина. –

+2

Используйте 'sudo sh -c 'cat>/usr/bin/sasquatch'' Помните, что в вашем случае' sudo' применяется только к 'cat', перенаправление'> 'выполняется как обычный пользователь. Использование '-c' позаботится об этом. –

+0

Обратите внимание, что это плохая идея - подделывать файлы в '/ usr/bin' - вы должны оставлять файлы там одни (и те, что в'/bin', если они отличаются от '/ usr/bin'). Если вам нужно добавить файлы в каталог «system», обычно лучше использовать '/ usr/local/bin'. –

ответ

2

> заставит оболочку открыть файл для записи. Ваша оболочка работает с вашими разрешениями пользователя.

Использование sudo приведет только к тому, что команда запускается с повышенными правами, а не оболочкой (которая открывает файл).

Один из способов, чтобы начать новую оболочку с Sudo:

sudo bash -c 'cat > /usr/bin/sasquatch' 

Поскольку вы упоминаете склеивание, вы можете рассмотреть возможность использование Xclip:

sudo bash -c 'xclip -sel clip > /usr/bin/sasquatch' 
Смежные вопросы