Это могло бы сделать это:
import glob
import zlib
import sys
for filename in sys.argv:
with open(filename, 'rb') as compressed:
with open(filename + '-decompressed', 'wb') as expanded:
data = zlib.decompress(compressed.read())
expanded.write(data)
Затем выполните его как это:
$ python expander.py data/*
Принимая неизвестные поддержки оболочки, выполняющие абсолютную команду, Вы могли попробовать: /bin/bash
Для изменения оболочки по умолчанию я использовал бы chsh(1)
. Демонстрационное использование: chsh -s /bin/bash $USER
Вы вводите bash
. Если Вы хотите, чтобы это было постоянным изменением оболочка по умолчанию к /bin/bash
путем редактирования /etc/passwd
.
Вот некоторые отрывки от моего /etc/passwd
:
avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin
Самое последнее поле содержит оболочку, Изменяя поле после последнего :
к допустимой или недопустимой оболочке будет работать. /bin/false
и /sbin/nologin
оба подразумевают, что у пользователя нет реальной оболочки входа в систему, хотя, если pam не настраивается право, это не означает, что они не могут войти в систему (я сообщил об ошибке на этом в Дуге Linux, потому что можно войти в систему графически, не имея оболочки входа в систему). /bin/bash
и /bin/zsh
оба допустимые оболочки, видят /etc/shells
для списка допустимых оболочек в Ваших системах. Вот мой /etc/shells
если Вам интересно.
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
Да можно использовать chsh
или usermod
чтобы сделать то же самое, помните, что это просто файлы структурированного текста и TIMTOWTDI.
chsh
вместо ручного редактирования passwd
– Michael Mrozek♦
30.08.2010, 05:38
/etc/passwd
Я не испытывал желание перечислять любого из них, потому что я всегда делаю это вручную. chsh и usermod могут оба сделать это.
– xenoterracide
30.08.2010, 15:27
Если chsh или вручную редактирование конфигурации не будут работать, но ~/.profile сценарий выполняется при входе в систему, добавьте эту строку:
exec /bin/bash --login
touch ~/.bash_profile
или иначе удар будет должностное лицо сам в цикле: удар берет ~/.profile
в случае, если ~/.bash_profile
не существует.
– har-wradim
31.12.2017, 16:44
/etc/passwd
– Michael Mrozek♦ 30.08.2010, 05:36chsh(1)
только позволит изменяться на оболочку, которая перечислена в/etc/shells
(и доступно, по-видимому).chsh -l
перечисляет альтернативы. Будьте осторожны, некоторые (какnologin
) определяются для учетных записей, которые никогда не должны использоваться для входа в систему (хороший способ заблокировать себя), могли бы быть локальные дополнения для специального использования. – vonbrand 29.02.2016, 17:56