Вот он и вопрос...
Есть freenx сервер, необходимо сделать так, что бы пользователь имел доступ к графике(freenx) и при этом не мог зайти по ssh(shell(bash)) и sftp.
P.S> если я в passwd пропишу /sbin/nologin или /bin/false то работать не будет, я вообще не смогу зайти ни по ssh ни по freenx.
Решение под катом>
UPD:
Решение:
В процессе анализа работы всей этой лабуды - было сделано несколько выводов:
1. /sbin/nologin и /bin/false прописывать пользователю нельзя. Потому что под пользователем осуществляется ssh login - это можно наблюдать в логах. Так-же в логах видно что пользователь логинится с IP 127.0.0.1
2. В /etc/ssh/sshd_config
AllowUsers nx username@127.0.0.1
Таким образом пользователю nx разрешается доступ с любого IP а username только со 127.0.0.1
P.P.S>Решение оказалось настолько простым и очевидным, что вызвало у меня много проблем.
Надеюсь кому-то этот мануал упростит жизнь...
-
1. Написать скрипт, поднимающий freenx окружение и воткнуть его в /etc/passwd вместо шелла.
2. Запретить по ssh исполнение каких-либо команд помимо запуска freenx-сессии.
-
-
Можно поподробнее?
Какой-нибудь мини пример...
-
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[root@linux bacula]$ grep ftpadmin /etc/passwd
ftpadmin:x:1001:1001:,,,:/home/cppmm/disk2/ftp:/bin/test.sh
[root@linux bacula]$ cat /bin/test.sh
#!/bin/bash
#
echo "Hello, World!"
[root@linux bacula]$ ssh -l ftpadmin 127.0.0.1
[email protected]'s password:
Linux linux 2.6.26-2-686 #1 SMP Wed May 12 21:56:10 UTC 2010 i686
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.
Last login: Tue Jul 13 16:32:42 2010 from 127.0.0.1
Hello, World!
Connection to 127.0.0.1 closed.
[root@linux bacula] |
-
-
Вместо хелловорда надо прописать команду запуска freenx-сессии.
-
-
спасибо - попробую.
-
Боюсь это не верный способ т.к. вместо своего шела пользователь будут запускать freenx скрипт.
-
-
А разве не это надо ТС?
-
Не понятно только зачем? если он и так в окружении будет иметь теже права что и по ssh. Или запускается только одно приложение?
-
-
эээ... вы не поверите.
-
Основная идея этого заключается в следующем:
Заказчик хочет чтобы программист, который будет писать сайт, не мог украсть исходники. Было придумано приб. следующее - программист сидит через "удалённый раб. стол", буфер обмена отключён, инет отключён(програмёр - фрилансер, сидит через инет, в общем файрвол блочит).
Короче, по freenx он прекрасно сидит на рабочем столе без буфера, но есть ssh который надо отключить, а freenx работает через ssh.
-
-
Самое правильное и технически-грамотное решение в данной ситуации - послать заказчика нахуй открытым текстом.
-
-
видимо нахуй будет послан программист, после того как всё сделает : )
-
Ну моё дело маленькое - мне сказали, я делаю и $ получаю.
Мне интересно, как программист не отказывается от такой работы... Но это уже его дело.
-
-
Расскажи своему заказчику, что кроме технической йобли существует еще простенький юридический документ, называем в буржуйсках NDA, или просто "Соглашение о неразглашении".
-
буфер обмена отключён
А там программиста плёткой не бьют, чтоб не отвлекался?
-
наскриншотит ваш сайт и продаст конкурентам!
-
-
Да, заказчик и это предусмотрел, и хотел, что бы это было отключено.
Я согласился это сделать, после того как он предоставит решение :)
-
-
заказчик - россия\украина\снг?
-
-
:-)
-
-
чтд : )
-
завязать глаза программисту!
выломать принтскрин на клаве (срезать лобзиком)!!
уничтожить программера после выполнения задания!!!
-
А что мешает программеру вставить в код маленький рутикитик, через который можно будет стянуть всё, что нужно с уже работающей системы? ;)
-
-
заказчик сделает code review по скриншотам : )
-
Никак.
-
Кстати, даже если можно, программист всё-равно сможет сделать вызов консоли из кода =)
-
-
Это не выполнимая задача тчк.
Заказчик этого не понимает.
Я никому ничего не доказываю. Говорят - делаю - получаю $.
-
-
скопировать нельзя взломать
-
-
спрятать нельзя слить
-
Клиент от NoMachine логинится на хост под общим юзером nx, у которого шеллом прописан /usr/bin/nxserver. После авторизации они общаются по протоколу nxserver и сервер уже сам проверяет авторизацию клиента. Видимо, сейчас он настроен так, что проверяет и наличие у клиента шелла. Как он это делает - через pam или ещё как-то, зависит от сервера и его конфигурации.
В любом случае, разрешение на логин клиента по ssh не требуется, поэтому можете смело запрещать его любым доступным методом.
Оффтопик(не удержался): Идея действительно бредовая, т.к. раз уж программер видит код, то код по-любому утекает. Его даже не надо скриншотить - все интересные идеи остаются у пргограммера в памяти :).
-
-
А, забыл сказать:
Для слиента от NoMachine, всё это безобразие, можно самостоятельно посмотреть в ~/.nx/temp/<циферка-с-номером-сессии>/runlog
другие файлы из этой директории тоже могут помочь.
-
Какая бредь... main, а про NDA заказчику рассказывал?
Или вон в качестве наглядной демонстрации слив кода устроить (пример для пхп)
1
2
3
4
5
6
7
|
<?php
echo "
?>
...
<?php
";
?> |
-
-
Я всё понимаю, я знаю, что это бред.
Не могу :(
Даже не зная php я смогу передать, что угодно по любому доступному мне протоколу(ICMP, DNS etc.), это не выполнимая задача тчк.
-
-
Позвольте поправить:
Это трудно-, очень трудновыполнимая задача :).
-
-
Невыполнимых задач не бывает ...
Подходит в обоих случаях.
|
|
|
Последние посты
|
|
Последние комментарии
|
|
Изменения
|
|
Черновики (все)
|
|
Избранное (всё)
|
|
|