- Не могу войти в систему
- Debian: Изменить приветствие в SSH
- Изменить стандартный текст привествия
- Добавить скрипт в приветствие SSH в Debian
- Вывести при входе в SSH «паровозик»
- Вывести баннер при входе в SSH
- Debian gnu linux comes with absolutely no warranty
- Re: Removing log in warranty-warning?
- Re: Removing log in warranty-warning?
- Re: Removing log in warranty-warning?
Не могу войти в систему
Накатил на OrangePI PC2 дебиан. Вроде всё более менее работает, но встала одна непреодолимая (надеюсь, пока) проблема: после создания пользователя не могу под ним зайти. Говорит Permission denied на домашнюю директорию и /bin/bash. Права проверил — вроде есть. Проверил ACL. Не везде есть. не может выдать на /bin/bash (setfacl говорит, что Неподдерживаемая операция). мб в uEnv.txt надо какие-то опции еще указать при загрузке ядра (какие и чему равные)?
Вроде всё проверил. Что еще может быть? и как оно правится?
Также, туда отказываются вставать БД — mysql и mariadb (да, я извращенец — ставить на embedded БД). Не могут создаться сокеты, не может войти с паролем рута mysql-upgrade. Тоже пока с ходу не получилось поправить.
Ядро стоит из стандартной поставки (на выходных буду пробовать самосбор, ибо родной конфиг — жуть).
# ls -la /home итого 20 drwxr-xr-x 5 root root 4096 янв 14 16:14 . drwx----— 21 orangepi orangepi 4096 янв 14 17:50 .. drwxr-xr-x 2 aido aido 4096 янв 14 16:14 aido drwxr-xr-x 2 michael michael 4096 янв 14 16:13 michael drwxr-xr-x 2 orangepi orangepi 4096 янв 1 00:02 orangepi # getfacl /home/aido getfacl: Removing leading '/' from absolute path names # file: home/aido # owner: aido # group: aido user::rwx group::r-x other::r-x # ls -la /bin/bash -rwxr-xr-x 1 root root 909312 ноя 12 2014 /bin/bash # date Пт янв 15 01:42:41 UTC 2016 # getfacl /bin/bash getfacl: Removing leading '/' from absolute path names # file: bin/bash # owner: root # group: root user::rwx group::r-x other::r-x # su aido Cannot execute /bin/bash: Permission denied # login aido Пароль: Последний вход в систему:Чт янв 14 17:51:49 UTC 2016на pts/0 Linux Orangepi 3.10.65 #3 SMP PREEMPT Tue Nov 15 09:46:50 CST 2016 aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Невозможно перейти в каталог «/home/aido»
# cat /etc/passwd # cat /etc/group
Пальцем в небо. Посмотреть на всякие selinux apparmor
Ты близок. strace сказал, что виноват PAM. Геморрой предстоит долгий
Cannot execute /bin/bash: Permission denied
Раз воспроизводится через su, проще всего посмотреть на /etc/pam.d/su
Если бы у тебя не было рута, я бы сказал что воевать с огороженными системами тот ещё геморрой. Но раз рута дали, то скорее всего при создании пользователя какая-нибудь банальная ошибка. Вроде отсутствия шела в /etc/shells или не созданного домашнего каталога
Ну и хотелось бы увидеть вывод
router ★★★★★ ( 12.03.17 01:43:20 MSK )
Последнее исправление: router 12.03.17 01:45:11 MSK (всего исправлений: 1)
root@Orangepi:~# sestatus -bash: sestatus: команда не найдена root@Orangepi:~# ls -Z /home ? aido ? michael ? orangepi
aido ★★ ( 12.03.17 13:55:47 MSK )
Последнее исправление: aido 12.03.17 13:56:02 MSK (всего исправлений: 1)
strace сказал нечто вот такое:
sendto(4, "p\0\0\0Q\4\5\0\4\0\0\0\0\0\0\0op=PAM:session_o". 112, 0, , 12) = 112 ppoll([], 1, , NULL, 0) = 1 ([], left ) recvfrom(4, "$\0\0\0\2\0\0\0\4\0\0\0\321t\0\0\0\0\0\0p\0\0\0Q\4\5\0\4\0\0\0". 8988, MSG_PEEK|MSG_DONTWAIT, , [12]) = 36 recvfrom(4, "$\0\0\0\2\0\0\0\4\0\0\0\321t\0\0\0\0\0\0p\0\0\0Q\4\5\0\4\0\0\0". 8988, MSG_DONTWAIT, , [12]) = 36 close(4) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f79aa20d0) = 29906 rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], NULL, 8) = 0 rt_sigaction(SIGTERM, , NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [ALRM TERM], NULL, 8) = 0 wait4(-1, Cannot execute /bin/bash: Permission denied
root@Orangepi:~# cat /etc/pam.d/su # # The PAM configuration file for the Shadow `su' service # # This allows root to su without passwords (normal operation) auth sufficient pam_rootok.so # Uncomment this to force users to be a member of group root # before they can use `su'. You can also add "group=foo" # to the end of this line if you want to use a group other # than the default "root" (but this may have side effect of # denying "root" user, unless she's a member of "foo" or explicitly # permitted earlier by e.g. "sufficient pam_rootok.so"). # (Replaces the `SU_WHEEL_ONLY' option from login.defs) # auth required pam_wheel.so # Uncomment this if you want wheel members to be able to # su without a password. # auth sufficient pam_wheel.so trust # Uncomment this if you want members of a specific group to not # be allowed to use su at all. # auth required pam_wheel.so deny group=nosu # Uncomment and edit /etc/security/time.conf if you need to set # time restrainst on su usage. # (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs # as well as /etc/porttime) # account requisite pam_time.so # This module parses environment configuration file(s) # and also allows you to use an extended config # file /etc/security/pam_env.conf. # # parsing /etc/environment needs "readenv=1" session required pam_env.so readenv=1 # locale variables are also kept into /etc/default/locale in etch # reading this file *in addition to /etc/environment* does not hurt session required pam_env.so readenv=1 envfile=/etc/default/locale # Defines the MAIL environment variable # However, userdel also needs MAIL_DIR and MAIL_FILE variables # in /etc/login.defs to make sure that removing a user # also removes the user's mail spool file. # See comments in /etc/login.defs # # "nopen" stands to avoid reporting new mail when su'ing to another user session optional pam_mail.so nopen # Sets up user limits according to /etc/security/limits.conf # (Replaces the use of /etc/limits in old login) session required pam_limits.so # The standard Unix authentication modules, used with # NIS (man nsswitch) as well as normal /etc/passwd and # /etc/shadow entries. @include common-auth @include common-account @include common-session
aido ★★ ( 12.03.17 13:58:54 MSK )
Последнее исправление: aido 12.03.17 14:02:30 MSK (всего исправлений: 2)
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f79aa20d0) = 29906
Сдаётся мне, самое интересное происходит дальше, в потомке PID 29906. А этот процесс только печатает на экран окончательный диагноз
я обычно запускаю strace с отслеживанием форков ( -f -ff )
strace -f -ff -T -s8192 -o /tmp/strace_$ -- $ $
Потом можно просто грепнуть /tmp/strace_* по фразе «Permission denied»
если ты считаешь, что дело в pam, проверяй построчно, что делают все перечисленные модули, включая include’ы. Но скорее всего дело не в нём, см. выше
selinux отключен, с этой стороны сюрпризов не будет.
Но есть ещё AppArmor. Как его статус проверить — не знаю
пасиб. Оказалось вот такое (но там права 644 на все файлы в /usr/share/locale/ru/LC_MESSAGES. для чтения должно хватать):
execve("/bin/bash", ["bash"], [/* 14 vars */]) = -1 EACCES (Permission denied) faccessat(AT_FDCWD, "/bin/bash", R_OK|X_OK) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru_RU.UTF-8/LC_MESSAGES/shadow.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru_RU.utf8/LC_MESSAGES/shadow.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru_RU/LC_MESSAGES/shadow.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru.UTF-8/LC_MESSAGES/shadow.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru.utf8/LC_MESSAGES/shadow.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru/LC_MESSAGES/shadow.mo", O_RDONLY) = -1 EACCES (Permission denied) dup(2) = 3 fcntl(3, F_GETFL) = 0x20002 (flags O_RDWR|0x20000) fstat(3, ) = 0 mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fac681000 lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) openat(AT_FDCWD, "/usr/share/locale/ru_RU.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru_RU.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru_RU/LC_MESSAGES/libc.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/usr/share/locale/ru/LC_MESSAGES/libc.mo", O_RDONLY) = -1 EACCES (Permission denied) write(3, "Cannot execute /bin/bash: Permission denied\n", 44) = 44
aido ★★ ( 12.03.17 19:50:29 MSK )
Последнее исправление: aido 12.03.17 19:55:25 MSK (всего исправлений: 1)
Файлы ладно. Ты ещё по каталогам до корня пройдись
оказалось, что не было прав на корень. ппц. chmod 755 / && chmod 755 /bin && chmod 755 /lib всё разрешило.
Если дистрибутив debian под orange pi собирал не ты, сообщи разработчику, что он рукожоп
З.Ы. Виндузятники и «кул-вебмастеры» любят на автомате делать chmod 777 и вообще не заморачиваются с правами. Возможно, разработчик как раз из таких хакиров
router ★★★★★ ( 14.03.17 01:57:45 MSK )
Последнее исправление: router 14.03.17 02:00:50 MSK (всего исправлений: 2)
Debian: Изменить приветствие в SSH
При входе в консоль или SSH сервера Debian мы видим стандартное приветствие. В данной статье рассказано как изменить данное приветствие и как добавить интерактивные функции.
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Изменить стандартный текст привествия
Текст приветствия находится в файле /etc/motd, по этому можно изменить на любой другой
либо полностью удалить командой ниже (файл удалять не стоит)
Добавить скрипт в приветствие SSH в Debian
/etc/motd — обычный текстовый файл в него нельзя поместить интерактивные функции.
Для того что бы при входе в системы вывести полезную информацию о системе, необходимо создать bash скрипт в директории /etc/profile.d/
к примеру простой скрипт, который покажет uptime системы при входе
Дополнительно можно вывести
Вывести при входе в SSH «паровозик»
Так же можно добавить немного шуток.
Теперь при входе в консоль, по экрану будет проезжать паровоз
Вывести баннер при входе в SSH
Для вывода баннера нам понадобиться пакет figlet
Устанавливаем его командой:
Где — заменяем на любой текст
Debian gnu linux comes with absolutely no warranty
It is the Message Of The Day.
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
You can replace the with your own message or delete for no additional message.
Note: You need to have root privileges to modify /etc/motd
Re: Removing log in warranty-warning?
Can I comment lines in motd?
Is it text only? I currently have a script in .bashcr that gives me the IP and some more stuff, could I put this in the motd? The .bashcr script takes a few seconds after the motd to load.
EDIT: Should have checked the comment thing by myself, and I couldn’t comment it.
Re: Removing log in warranty-warning?
I reinstalled the os and when I boot it up it asks me to login, I login with the default login: Pi Password:raspberry and then that message comes up and does not let it boot (sometimes it takes me to raspi-config) What shall i do?
pluggy Posts: 3635 Joined: Thu May 31, 2012 3:52 pm Location: Barnoldswick, Lancashire,UK
Re: Removing log in warranty-warning?
It that message comes up it has both booted and logged in. If you want the GUI, startx and [enter] does it for me.