Автор Тема: скриптик  (Прочитано 3165 раз)

ska

  • Гость
скриптик
« : 29.08.2011 14:58:00 »
Возникла необходимость, чтобы при заходе пользователя в систему на рабочем столе у него создавались ссылки, скажем, на пару определенных директорий. Сразу подумал про скрипт. Вроде ничего сложного, но хотелось бы узнать все-таки мнение знатоков, не коряво ли?
#! /bin/bash

if [[  -L /home/$USER/Desktop/www && -L /home/$USER/Desktop/tmp ]]
then
exit 0 #Файлы существуют и являются ссылками, поэтому здесь выходим"

else
#Иначе ссылки нужно создать
ln -s /var/www /home/$USER/Desktop/www
ln -s /var/tmp /home/$USER/Desktop/tmp
fi
И еще вопрос. Это дело должно работать на легком линуксе. Я прав, что для автозапуска его надо покласть в /etc/rc.d/init.d и добавить ссылку на него в /etc/rc.d/rc5.d?

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: скриптик
« Ответ #1 : 29.08.2011 18:42:43 »
точно не в
/etc/rc.d/init.d и добавить ссылку на него в /etc/rc.d/rc5.d?

Надо глядеть где в xfce автозагрузка...
типа так...
http://dendroudnotes.blogspot.com/2009/05/xfce.html

DdShurick

  • Гость
Re: скриптик
« Ответ #2 : 29.08.2011 20:25:22 »
#! /bin/bash
[ ! -h ~/Desktop/www ] && ln -s /var/www ~/Desktop/www
[ ! -h ~/Desktop/tmp ] && ln -s /var/tmp ~/Desktop/tmp
Как запустить в xfce.

ska

  • Гость
Re: скриптик
« Ответ #3 : 30.08.2011 10:24:43 »
точно не в
/etc/rc.d/init.d и добавить ссылку на него в /etc/rc.d/rc5.d?

Надо глядеть где в xfce автозагрузка...
типа так...
http://dendroudnotes.blogspot.com/2009/05/xfce.html
Там речь идет про персональную настройку, а мне нужна глобальная. Т.е. для всех входящих пользователей. Где порыть?

ska

  • Гость
Re: скриптик
« Ответ #4 : 30.08.2011 10:42:02 »
Вот в гугле нарыл, надо будет проверить
Цитировать
It's not really clear what you are trying to accomplish. You appear to be trying to place the script in the rc5.d directory which indicates that you want the script to run on system startup, but then it looks like you are also trying to run it from xfce's user-specific autostart. Does this script need to be run at system startup or at the user login level?

If at system startup, then I suggest:
1. move file to /usr/local/bin
2. make sure file is executable
3. remove link in /etc/rc5.d
4. add line to /etc/rc.local just before "exit 0" to execute the script
Code:

.....
/usr/local/bin/check.sh
exit 0

If at user startup, then:
1. remove link in /etc/rc5.d
2. make sure file is executable
3. keep entry in xfce autostart

ska

  • Гость
Re: скриптик
« Ответ #5 : 30.08.2011 14:30:08 »
Все-таки непонятно. Если писать в /etc/rc.local, то скрипт будет запускаться до входа пользователя в систему. Если так, то это мне тоже не совсем подходит. Дело в том, что в названии каталогов будут логины пользователей и в скрипте просто необходима примерно такая запись ln -s /mnt/share/$USER   ~/Desktop/$USER Это значит, что всякий пользователь должен сначала войти в систему и потом должен сработать скрипт.
Как это можно сделать?

Оффлайн Карлсон

  • Участник
  • *
  • Сообщений: 1 699
Re: скриптик
« Ответ #6 : 30.08.2011 14:40:09 »
Как это можно сделать?

Как-нить через PAM?

DdShurick

  • Гость
Re: скриптик
« Ответ #7 : 30.08.2011 17:26:49 »
 Даю дурной совет, но зато работает. В каждой $HOME есть скриптик .xprofile. Допишите туда нужные для создания ссылок строки и они исполнятся.

Оффлайн Карлсон

  • Участник
  • *
  • Сообщений: 1 699
Re: скриптик
« Ответ #8 : 30.08.2011 17:50:01 »
Даю дурной совет, но зато работает. В каждой $HOME есть скриптик .xprofile. Допишите туда нужные для создания ссылок строки и они исполнятся.

Или написать скриптик на основе for name in `ls /home`, который создаст оптом всем юзерам нужные файлики, и лишит юзеров права их удалять. Один раз запустить от рута, и до следующего adduser можно расслабиться.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: скриптик
« Ответ #9 : 30.08.2011 19:14:21 »
Или написать скриптик на основе for name in `ls /home`,
И в крон раз в минуту :)

Оффлайн Карлсон

  • Участник
  • *
  • Сообщений: 1 699
Re: скриптик
« Ответ #10 : 30.08.2011 19:32:59 »
И в крон раз в минуту :)

Зачем?

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: скриптик
« Ответ #11 : 30.08.2011 19:40:17 »
И в крон раз в минуту :)
Зачем?
Чтобы не забыть после аддюзер запустить ;)

Оффлайн Карлсон

  • Участник
  • *
  • Сообщений: 1 699
Re: скриптик
« Ответ #12 : 30.08.2011 19:47:15 »
Чтобы не забыть после аддюзер запустить ;)

Давно уже придуман incrond :)

Или /etc/skel (правда не уверен на счет прав соответствующих).

ska

  • Гость
Re: скриптик
« Ответ #13 : 01.09.2011 13:05:52 »
Вот так получилось
for name in `ls /home`; do cd /home/$name; cp ~/scriptik .;chown $name scriptik; done
проверьте на корявость. И еще в этой строке не нравится часть с копированием. Хотелось бы в этом скрипте создавать scriptik (который типа xprofile) с тем содержимым, которое выше обсуждалось. Подскажите команду, которая создает файл с некоторым содержимым.
Я подумал насчет echo но чего-то не получается. Т.е. на терминал вывести можно, а как это все целиком отправить в один файл?
~]$ echo "#! /bin/sh"; echo bla bla; echo bla bla
#! /bin/sh
bla bla
bla bla


~]$ echo "#! /bin/sh"; echo bla bla; echo bla bla > scriptik
#! /bin/sh
bla bla

в итоге скриптик имеет только последнее бла бла )
« Последнее редактирование: 01.09.2011 13:25:49 от ska »

Оффлайн andrew_b

  • Участник
  • *
  • Сообщений: 553
Re: скриптик
« Ответ #14 : 01.09.2011 13:22:53 »
for name in `ls /home`; do install -o $name ~/scriptik $/home/$name; done

Как-то так...