Можно использовать svcadm
команды:
Отключите сервис cde-входа-в-систему:
svcadm disable svc:/application/graphical-login/cde-login:default
Включите его назад:
svcadm enable svc:/application/graphical-login/cde-login:default
Или, если Вы хотите сделать это старая школа:
Отключите:
/usr/dt/bin/dtconfig -d
Включите:
/usr/dt/bin/dtconfig -e
Без явного назначения прав программа или сценарий будут выполняться в качестве вызывающего абонента.
Setuid запускает программу с правами пользователя владельца файла. Setgid запустит программу с правами группы файловой группы. Ни то, ни другое не будет работать непосредственно для сценария.
Для запуска программы (или сценария) с правами, определенными в файле конфигурации sudo, можно использовать служебную программу, например sudo
.
Я считаю, что подсистемы безопасности, такие как SELinux, ограничивают доступ, а не предоставляют его.
Я не знаю, можно ли использовать ACL для предоставления прав выполнения. Мне никогда не нужно было расследовать.
-121--175028-Исправление @ jimmij
первоначально я написал это с неправильной оболочкой в виду (bash вместо zsh). ниже отражает исправленный код
history | cut -c 8-
И далее, чтобы ограничить историю поддерживают определенное число линий, пробег
history -<number of lines> (history -20 prints the last 20 entries)
Наконец: история-20 | сократила-c 8-> Удар commands_list.sh
#!/bin/bash
#!/bin/zsh
в начале того файла, chmod +x commands_list.sh
, сделанный.
Встроенная команда fc
позволяет извлекать команды из истории с помощью ряда критериев (подробнее см. man zshbuiltins
).
fc
означает «команда фиксации», и при вызове без параметров открывается редактор с последней введенной командой. Для изменения команды можно использовать все функции редактора, а при сохранении и выходе из zsh
выполняет фиксированную команду. По умолчанию используется редактор vi
, но его можно переопределить с помощью переменной оболочки EDITOR
или, если требуется использовать определенный редактор с помощью команды fc
, FCEDIT
.
fc
имеет много возможностей манипулировать историей за пределами последней команды, некоторые из которых предоставляют именно те возможности, которые вы просите.
Опция -l
«перечисляет» содержимое истории. По умолчанию в нем перечислены последние 16 команд, но можно указать нижнюю и верхнюю границы как индексы в истории или даже как начальный текст команды. Отрицательные индексы возвращаются из последней команды, чтобы извлечь последние 15 строк:
fc -l -15
По умолчанию fc -l
включает индексы истории в качестве первого столбца ее вывода. Если у вас есть точный диапазон, -n
сбрасывает числа так:
fc -ln -12 -5
будет извлекать только те строки (от 12 назад до 5 назад) в формате, подходящем для сценария.
Использование команд в качестве границ может быть очень полезным:
fc -l rm ls
перечисляет всю историю, начиная с последней rm
и заканчивая последней ls
(поэтому в выходных данных будет одна команда rm
, но может быть несколько команд ls
).
Существует много других вариантов, таких как добавление меток времени, замена частей команд,загрузка и сохранение частей истории, переключение всех стеков истории...
Исправление @jimmij
изначально я написал это с неправильной оболочкой (bash вместо zsh). Ниже приведен исправленный код
From this stackoverflow answer:
history | cut -c 8-
И далее, чтобы ограничить обратно историю определенным количеством строк, запустите
history -<number of lines> (history -20 prints the last 20 entries)
Наконец: history -20 | cut -c 8- > commands_list.sh
Slap a #!/bin/bash
#!/bin/zsh
в начале этого файла, chmod +x commands_list.sh
, сделано.