Ubuntu 10.10.
Купил указанную в теме топика книгу, читаю.
Раздел 3.4 "Команда chsh: Изменение командного интерпретатора".
Вы пишете, что если вызвать chsh с параметром -L, то в результате будет выведен перечень командных интерпретаторов, указанных в файле /etc/shells.
Однако для команды chsh такой параметр не определён:
Раздел 3.5 "Команда cksum: Вычисление контрольной суммы файла".
Контрольные суммы могут вычисляться по разным алгоритмам. Например, зачастую на торрентах выкладывают контрольную сумму, вычисленную по алгоритму MD5.
Имхо - в раздел, посвящённый вычислению хешей, было бы неплохо добавить и такие команды:
md5sum
sha1sum
Попутно вопрос:
Мы получили значения хешей. Какой командой в Linux можно быстро проверить хеши на идентичность? Побуквенно сравнивать - неудобно, написать самому реализацию - несложно, но не хочется изобретать велосипед, ведь наверняка в системе уже есть готовая команда.
п.с. По поводу сверки хешей - эту информацию так же было бы неплохо добавить в тот же раздел книги (чтобы логически связанная информация находилась вместе). _________________ Главное в процессе детализации - вовремя остановиться.
Options:
-h, --help display this help message and exit
-s, --shell SHELL new login shell for the user account
Как видим - результат нулевой.
Далее... Вопрос такой - не удаётся сменить командный интерпретатор:
Код:
hwd@X-Comp:~$ chsh
Password:
Changing the login shell for hwd
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /bin/csh
chsh: /bin/csh is an invalid shell.
hwd@X-Comp:~$ chsh
Password:
Changing the login shell for hwd
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: '/bin/csh'
chsh: '/bin/csh' is an invalid shell.
Значение /bin/csh я взял и скопировал из файла /etc/shells. Работаю с правами обычного пользователя. Почему не удаётся сменить интерпретатор? _________________ Главное в процессе детализации - вовремя остановиться.
DESCRIPTION
chsh is used to change the user login shell. A normal user may only change the login shell for their own account, the super user may change the
login shell for any account.
If a shell is not given on the command line, chsh operates in an interactive fashion, prompting the user with the current login shell. Enter the new
value to change the field, or leave the line blank to use the current value. Enter none to remove the current value. The current value is displayed
between a pair of [ ] marks.
The only restrictions placed on the login shell is that the command name must be listed in /etc/shells, unless the invoker is the super-user, and
then any value may be added. An account with a restricted login shell may not change their login shell.
This version of chsh is able to change the shell of local, NIS, NIS+ and LDAP accounts , if the permissions allow it.OPTIONS
-D, --binddn binddn
Use the Distinguished Name binddn to bind to the LDAP directory. The user will be prompted for a password for simple authentication.
-P, --path path
The passwd file is located below the specified directory path. chsh will use this files, not /etc/passwd. This is useful for example on NIS
master servers, where you do not want to give all users in the NIS database automatic access to your NIS server and the NIS map is build from
special files.
-s, --shell
Specify your login shell.
-l, --list-shells
Print the list of shells listed in /etc/shells and exit.
-q, --quite
Don't be verbose.
-u, --usage
Print a usage message and exit.
--help
Print a more verbose help text and exit.
-v, --version
Print version information and exit.
FILES
/etc/passwd - user account information
/etc/shells - list of valid login shells
Версия дистрибутива указана в первом посте, первой же строкой (без сАрказма).
Ниже показан результат, полученный командой man 1 chsh > Text
Цитата:
chsh(1) Пользовательские команды chsh(1)
НАЗВАНИЕ
chsh - изменяет регистрационную оболочку пользователя
СИНТАКСИС
chsh [параметры] [LOGIN]
ОПИСАНИЕ
Программа chsh изменяет регистрационную оболочку пользователя. Она определяет какая команда будет запущена после регистрации пользователя в системе. Обычный
пользователь может изменять регистрационную оболочку только для своей учётной записи, суперпользователь может изменять регистрационную оболочку любой учётной
записи.
ПАРАМЕТРЫ
Параметры команды chsh:
-h, --help
Показать краткую справку и закончить работу.
-s, --shellОБОЛОЧКА
Имя новой регистрационной оболочки пользователя. Если задать пустое значение, то будет использована регистрационная оболочка по умолчанию.
Если параметр -s не задан, то chsh переходит в интерактивный режим, предлагая пользователю изменить свою регистрационную оболочку. Вводимое значение заменяет
текущее значение поля; если введена пустая строка, то текущее значение остаётся неизменным. Текущее значение регистрационной оболочки указано в скобках [ ].
ЗАМЕЧАНИЕ
Все допустимые имена регистрационных оболочек должны быть указаны в файле /etc/shells. На суперпользователя это ограничение не действует и поэтому ему разрешено
указывать любое значение. Для учётной записи с ограниченной регистрационной оболочкой пользователь не может изменить свою регистрационную оболочку. Поэтому,
команду /bin/rsh в файле /etc/shells лучше не указывать, так как, если пользователь случайно изменит свою регистрационную оболочку на эту ограниченную оболочку,
то не сможет восстановить её первоначальное значение.
ФАЙЛЫ
/etc/passwd
содержит информацию о пользователях
/etc/shells
содержит список разрешённых регистрационных оболочек
/etc/login.defs
содержит конфигурацию подсистемы теневых паролей
СМОТРИТЕ ТАКЖЕ
chfn(1), login.defs(5), passwd(5).
Пользовательские команды 09/03/2010 chsh(1)
Если вас интересует - результат команды man chsh > Text2
такой:
Цитата:
chsh(1) Пользовательские команды chsh(1)
НАЗВАНИЕ
chsh - изменяет регистрационную оболочку пользователя
СИНТАКСИС
chsh [параметры] [LOGIN]
ОПИСАНИЕ
Программа chsh изменяет регистрационную оболочку пользователя. Она определяет какая команда будет запущена после регистрации пользователя в системе. Обычный
пользователь может изменять регистрационную оболочку только для своей учётной записи, суперпользователь может изменять регистрационную оболочку любой учётной
записи.
ПАРАМЕТРЫ
Параметры команды chsh:
-h, --help
Показать краткую справку и закончить работу.
-s, --shellОБОЛОЧКА
Имя новой регистрационной оболочки пользователя. Если задать пустое значение, то будет использована регистрационная оболочка по умолчанию.
Если параметр -s не задан, то chsh переходит в интерактивный режим, предлагая пользователю изменить свою регистрационную оболочку. Вводимое значение заменяет
текущее значение поля; если введена пустая строка, то текущее значение остаётся неизменным. Текущее значение регистрационной оболочки указано в скобках [ ].
ЗАМЕЧАНИЕ
Все допустимые имена регистрационных оболочек должны быть указаны в файле /etc/shells. На суперпользователя это ограничение не действует и поэтому ему разрешено
указывать любое значение. Для учётной записи с ограниченной регистрационной оболочкой пользователь не может изменить свою регистрационную оболочку. Поэтому,
команду /bin/rsh в файле /etc/shells лучше не указывать, так как, если пользователь случайно изменит свою регистрационную оболочку на эту ограниченную оболочку,
то не сможет восстановить её первоначальное значение.
ФАЙЛЫ
/etc/passwd
содержит информацию о пользователях
/etc/shells
содержит список разрешённых регистрационных оболочек
/etc/login.defs
содержит конфигурацию подсистемы теневых паролей
СМОТРИТЕ ТАКЖЕ
chfn(1), login.defs(5), passwd(5).
Пользовательские команды 09/03/2010 chsh(1)
Я не знаю, почему у меня не работает параметр '-l' и почему он отсутствует в моей справке. Предполагаю, что у нас с вами разные версии chsh. _________________ Главное в процессе детализации - вовремя остановиться.
Блииииин!!! Ну точно! Сарказм через "А" пишется! Спасибо
Просьба: если у вас нет ничего по теме - не пишите (не хочется топик в базар превращать).
Надеюсь на понимание, спасибо. _________________ Главное в процессе детализации - вовремя остановиться.
Какой командой в Linux можно быстро проверить хеши на идентичность? Побуквенно сравнивать - неудобно, написать самому реализацию - несложно, но не хочется изобретать велосипед, ведь наверняка в системе уже есть готовая команда.
Готовой таки нет. Можна таким скриптом:
Код:
#!/bin/sh
# Checks if file has correct md5 sum
# USAGE: checkmd5 <filename> <hash>
SUM=$(md5sum $1 | head -c 32)
if [ "$SUM" = "$2" ]
then
echo "Correct"
else
echo "FAIL!"
fi
Но, имхо, проще сравнить побуквенно.
Хотя, по принципу, достаточно сравнить первые 2-3 байта и последние 2-3: по своей структуре похожесть md5-хешов АБСОЛЮТНО не зависит от похожести данных - так называемая коллизия md5-хешов стремится к нулю. Например:
Код:
[anderson@arch(0) ~]$ echo "This is test line number 1" | md5sum
a0e1b5da8b1b78dcd93cbaf08fcb33a8 -
[anderson@arch(0) ~]$ echo "This is test line number 2" | md5sum
9e0753743ee11b54033ca1378a25f12e -
Поэтому смело сравнивай лишь несколько байт. _________________ ArchLinux + Enlightenment 17 (E17)
compositum, я понимаю что не об этом! Но если у вас кривой дистр, а вам нужно решение - я вам намекнул
Ну корявая у вас утилитка...КОРЯВАЯ! Если дистр регулярно обновляете, то это не лечится....Каноникл, однако, такой каноникл...
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
Цитата:
Вы пишете, что если вызвать chsh с параметром -L, то в результате будет выведен перечень командных интерпретаторов, указанных в файле /etc/shells.
Должна быть маленькая "chsh -l". Почему в книге большая - или я опечатался или при верстке глюк произошел - сейчас рукописи под рукой ней, так что точно не могу сказать.
Почему команда не работает в бубунте - лучше спросить у каноникл.
Как изменить? Да все просто - читаем формат /etc/passwd. Там же прописана оболочка, в любом текстовом редакторе берем и меняем ее. Это ж не фряха. Хотя не знаю что еще там каноникл выдумала Хотя там есть еще и конфигуратор Пользователи и группы который может изменить оболочку
Но если у вас кривой дистр, а вам нужно решение - я вам намекнул
Ну корявая у вас утилитка...КОРЯВАЯ! Если дистр регулярно обновляете, то это не лечится....Каноникл, однако, такой каноникл...
Да, неприятно... Дистрибутив я скачивал отсюда. Обновления выполняю регулярно (последнее - вчера).
P.S. в версии 10.10 очень неудобно (во всяком случае мне) то, что кнопки управления окном расположены не в верхнем правом (как привык в Windows, а в верхнем левом углу окна). _________________ Главное в процессе детализации - вовремя остановиться.
вот и я о томже, книжки читать и убунту юзать невозможно, каноникл изменяет линукса до неузнаваемости, кстать не только каноникл, пока найдеш все то и охота пропадает.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах