“sudo колотят” игнорирование разрешения только для чтения .bash_history файла

Эта проблема находится в актуальных 12.04 и, кажется, недавно запустилась.

Мне установили мой .bash_history файл на только для чтения. В последнее время я заметил, что несмотря на это файл изменяется! Вот сценарий. В новом терминале вот хвост файла:

$ tail -5 .bash_history 
mkdir -p ttt ; gs -dNOPAUSE -sDEVICE=png16m -r180 -sOutputFile=ttt/p%03d.png *.pdf
rsync -av /home/u1204 /media/SEAGATE/u1204 
gnote.late.reminders|GREP_COLOR='1;32' egrep -i "is overdue"
pvr_iplayer -x -HD /home/u1204/Documents/pvr/tv-hd ; pvr_iplayer -x -STD /home/u1204/Documents/pvr/tv-std
exit

откройте оболочку с повышенными полномочиями

 $ sudo bash [sudo] 
 password for u1204: 

 # ls -l ~/.bash_history
 -r-------- 1 u1204 u1204 1266 Feb 23 19:52 /home/u1204/.bash_history

таким образом, .bash_history все еще определенно только для чтения. Сделайте что-то, затем выйдите из наращиваемой оболочки:

# echo "written to history file"
written to history file

# exit
exit

И Voilà, файл истории был изменен!

$ ls -l ~/.bash_history
-r-------- 1 u1204 u1204 1324 Feb 23 20:10 /home/u1204/.bash_history

Откройте другой терминал для подтверждения:

$ tail -5 .bash_history 
pvr_iplayer -x -HD /home/u1204/Documents/pvr/tv-hd ; pvr_iplayer -x -STD /home/u1204/Documents/pvr/tv-std
exit
ls -l ~/.bash_history
echo "written to history file"
exit

Я вполне уверен, который это не сделало используемый, чтобы сделать это (в 10,04, по крайней мере).

Так или иначе это не может быть корректным поведением, не так ли?

2
задан 24 February 2013 в 01:02

4 ответа

Корень имеет универсальное чтение-запись ко всему. Период.

Сторонникам окон нравится утверждать, что его система аутентификации более сильна, потому что она не сделала, чтобы "бог" считал, и даже локальным администраторам можно явно отказать.

Вы не можете запретить корень никакого доступа ни к какой вещи в локальной системе.

После некоторых комментариев это получило меня думающий Вас, мог бы искать способ не записать для избиения истории вообще. Вы могли сделать это как это: http://www.commandlinefu.com/commands/view/7041/dont-save-commands-in-bash-history-only-for-current-session

Помещение сбросило HISTFILE в Вашем bashrc для тех, которые не хотят переходить по ссылке.

4
ответ дан 2 December 2019 в 01:34

Да, Вы можете ultimatively запрещать доступа.

chattr +i
4
ответ дан 2 December 2019 в 01:34

@Thor

Я вполне уверен, который это не сделало используемый, чтобы сделать это (в 10,04, по крайней мере).

Это на самом деле делает.

То, что я думаю, происходит, то, если Вы используете sudo, Вы все еще добираетесь для хранения идентификационных данных, но со снятыми полномочиями, если Вы использовали sudo su - с другой стороны, Вы стали бы "реальным корнем". следовательно различие.

0
ответ дан 2 December 2019 в 01:34

RO - ничто, что программа не может переопределить, пока Вы - корень или владелец файла. Таким образом, корректный путь не состоит в том, чтобы установить файл на r - но выполниться

сброс HISTFILE

Для "sudo-s" это должно работать (среда копируется, точно причина, почему .bash_history Вашего пользователя используется), для "sudo-i" (как "su -") Вы используете/root/.bash_history так или иначе. Если Вы не хотите делать это, необходимо сбросить HISTFILE в .bashrc/.bash_profile корня.

btw: как уже упомянуто корректным способом получить корневую оболочку является sudo-s / sudo-i. "sudo su" или "sudo колотят" работы, но это - довольно грязный способ сделать так.

0
ответ дан 2 December 2019 в 01:34

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

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