Расширенные разрешения, такие как списки контроля доступа, установленные setfacl
и флаги возможностей, установленные setcap
, хранятся в том же месте, что и традиционные разрешения и флаги set[ug]id, установленныеchmod
:в индексном узле файла.
(На самом деле они могут храниться в отдельном блоке на диске, потому что индексный дескриптор имеет фиксированный размер, в котором есть место для традиционных битов разрешений, но нет места для потенциально неограниченных расширенных разрешений. Но это имеет значение только в редких случаях, например, если нужно позаботиться о том, чтобы setcap
не хватило места на диске. Но даже chmod
может закончиться место на диске в системе, использующей дедупликацию!)
GNU ls не отображает атрибуты setcap файла. Вы можете отобразить их с помощьюgetcap
. Вы можете перечислить все расширенные атрибуты с помощьюgetfattr -d -m -
; атрибут setcap называется security.capability
и закодирован в двоичном формате, который getcap
декодирует для вас.
Самое близкое, что я могу придумать, это:
#!/bin/sh
# other steps
cp /dev/null ~/.bash_history
shutdown -h now
Далее следует:
# exec /path/to/sysprep.sh
... вместо прямого вызова /path/to/sysprep.sh
. Использование exec
заменяет вашу текущую оболочку сценарием оболочки, который позволяет текущей оболочке записать свою историю и выйти. Затем сценарий sysprep может удалить (или очистить )ваш файл истории.
История текущей оболочки добавляется к $HISTFILE
при выходе из оболочки. При выполнении unset $HIST_FILE
этого не происходит, поэтому история этого экземпляра оболочки теряется при выходе из оболочки.
Итак,пока:
Он может стереть файл истории или заменить его любой историей, которую вы хотите просмотреть позже.