Автор Тема: alias въпрос  (Прочетена 1218 пъти)

yavorpap

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
alias въпрос
« -: Apr 09, 2009, 23:42 »
Имам следния въпрос: мога ли да сложа alias на всички команди, изпълнявани от даден юзер, т.е. един вид alias * или нещо такова...
Целта е например когато юзерът напише команда "ping 192.168.0.1", всъщност да се изпълнява нещо от сорта на "command -com=ping 192.168.0.1 " или нещо подобно. Естествено, нямам предвид да напиша alias за абсолютно всички команди.
Идеята на цялото нещо е когато някой се логне в ssh сървър, командите, които пише да не се изпълняват наистина, а да се обработват от друга програма преди това.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: alias въпрос
« Отговор #1 -: Apr 10, 2009, 14:47 »
Не съм съвсем удовлетворен от това, което скалъпих, но може да е нещо такова

Цитат
`ls /usr/bin | while read i
do
    echo "alias $i=mc"
done`

Това го слагаме в .bashrc файла. В примера листвам всички файлове в /usr/bin и задавам alias на имената им да сочат към mc. Поради някаква неизвестна за мен причина, ако оградим mc с единични кавички (както по принцип се пише alias), като краен резултат alias-ът придобива няколко единични кавички и наклонени черти. Когато командата е от една дума (както mc), няма проблем, пишем без кавички, но ако командата се състои от няколко думи, става сакатлък. Ето защо, ако командата ще съдържа повече от една дума, може тази команда да се сложи в един скрипт (например /bin/prqkori) и тогава вместо mc от примера пишем prqkori. Та така с тази идея ;)

P.S.: И все пак ти препоръчвам да си опишеш alias-ите един по един. Или да използваш това, което ти давам, но да листваш папка, в която си си направил symlink-ове само към нужните приложения. Например, правиш си една папка /usr/aliases и в нея да направиш symlink-ове само към нужните файлове от /bin, /usr/bin, /sbin и /usr/sbin. Така, в .bashrc ще ти седи само този цикъл, а това кои команди ще имат alias и кои не ще се определя от това кои команди имат symlink в /usr/aliases. Имай предвид, че alias-ите, които са описани в .bashrc (чрез цикъла) се предефинират при влизането на потребителя. Т.е., наличните alias-и от цикъла ще се генерират автоматично само веднъж (когато потребителят влезе) и, ако искаш да се обновят автоматично (например при генерална промяна в списъка от symlink-ове в /usr/aliases), потребителят трябва да излезе и пак да влезе. Разбира се, можеш да използваш свободно командите alias и unalias и извън .bashrc.

P.P.S: А, и още нещо. Нали се сещаш, че ако не промениш правата на файла .bashrc, потребителят може съвсем спокойно да махне alias-ите :) Като промениш правата на файла, потребителят може пък да изтрие файла и да си го създаде наново без alias-и, т.е., за да го защитиш, трябва да промениш правата и на домашната папка на потребителя. Това, естествено, няма да го спре да промени отново alias-ите, ако иска. И... отидохме към обсъжданията в една друга тема ;D Така че се надявам да не държиш на стабилността и сигурността в този случай ;)
« Последна редакция: Apr 10, 2009, 17:10 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
..x11/locale/locale.alias Правописна грешка?
Хардуерни и софтуерни проблеми
0xAF 13 5654 Последна публикация May 11, 2006, 11:25
от ray
Nat и alias
Системни настройки
bozho 6 1671 Последна публикация Jul 01, 2006, 17:29
от Hapkoc
PostFix - Reply from alias
Настройка на програми
b2l 8 1270 Последна публикация Oct 27, 2010, 00:02
от morbid_viper