Pozwolicie, że wyraże swoją opinię, albo załużmy nowy temat do dyskusji o bezpieczeństwie ...
Nie wiem czy się zgodzisz, ale czytałem1 jakiś czas temu, że lepiej unikać dziś w nowoczesnych środowiskach stosowania aliasów. Dlaczego?
Ponieważ lepiej napisać niewielki skrypt bash. Plusy skryptu to m. in. łatwa możliwość odnalezienia go w przyszłości w celu edycji lub usunięcia np. poleceniem type czy which. Miejsc gdzie zdefiniowane są natomiast aliasy jest kilka w systemie, zaczynając od zmiennych wbudowanych BASH_ALIASES po pliki /etc/bashrc oraz ~/.bashrc. Jeśli chcemy zlokalizować gdzie jest konkretny alias to pojawia się problem.
Wszystko zależy od systemu, ale ze znalezieniem aliasu nie powinno być problemu, bynajmniej jeśli mówimy o tych robionych przez użytkownika.
Aktywna powłoka
bash , więc -->
~/.bashrc ( ewentualnie dla root
/root/.bashrc ,
a nie żadne /etc ! ponieważ przy aktualizacji system nadpisze plik )
SPROSTOWANIE
Przepraszam, jeżeli chodzi o aliasy dla wszystkich użytkowników to chyba masz racje, czyli konfiguracja aliasów będzie w /etc/ ...
( choc mam dylemat ... później dopiszę ... )
============================={
( Ciąg dalszy ...Nie posiadam pliku
/etc/bashrc $ ls /etc/bashrc
ls: nie ma dostępu do '/etc/bashrc': Nie ma takiego pliku ani katalogu
ale jest /etc/bash.bashrc
$ locate bashrc
/etc/bash.bashrc
/etc/skel/.bashrc
/home/tele/.bashrc
...
Według poradników w intrenecie
/etc/bashrc (system; interactive non-login; functions and aliases)
/etc/profile (system; interactive login; environment variables)
~/.bashrc (user; interactive non-login; functions and aliases)
~/.bash_profile (user; interactive login; environment variables)
Debian
Jedyny, jeden alias znalazłem w ~/.bashrc
pliki użytkownika są kopiowane z /etc/skel/.bashrc
i należy od do bash
dpkg -S /etc/skel/.bashrc
bash: /etc/skel/.bashrc
PCLinuxOS
Zawiera wiecej aliasów i są one w /etc/profile.d/60alias.sh ( locate alias )
i również należy on do pakietu bash ( rpm -qf /sciezka/plik )
Czyli to prawda, że nie ma jednego ustalonego miejsca, ale jest to do odnalezienia.
A co do bezpieczeństwa ...
Może lepiej by było gdyby
/home/uzytkownik/
├── pliki_uzytkownika/ ( nie powinny miec prawa wykonywalnosci )
│
└── pliki_tymczasowe/ ( nie powinny mieć prawa modyfikacji bez podania hasła, oprócz programu przez który zostały stworzone, i bez prawa wykonywalnosci )
Przy pisaniu programów, użytkownik mógłby sobie stworzyć specjalny folder z odpowiednimi uprawnieniami
lub podawałby za kazdym razem haslo użytkownika żeby uruchomić pisany program.
Chociaz tak naprawdę wszystkie pliki tymczasowe powinny być w /tmp
a konfiguracyjne w /etc
Przy aktualizacji systemu, system spyta się czy nadpisać plik w /etc/ , lub go automatycznie pozostawi.
Ale czasami można coś niechcący kliknąć,
dlatego w przypadku bardzo ważnych własnych konfiguracji, warto mieć kopię zapasową.
Chciałbym jeszcze wrócić do " /etc/profile.d/ "
Mnie to trochę zaskoczyło, że jest to polecane.
Podejrzewam, że pierwszą dystrybucją z takim podejsciem była Mandriva i jest to na swój sposób wygodne,
ponieważ możemy tworzyć własne, nowe pliki konfiguracujne i bez problemu kopiować i wklejać do nowego systemu bez obawy nadpisania czegoś.
Oczywiście każdy może mieć inne zdanie, czy lepiej kopiować tylko aliasy, czy pliki z aliasami.
)===================================}
Listę aliasów można sprawdzić, choć to prawda, że nie pokaże ścieżek do plików ( trzeba sobie poszukać jak ktoś gdzieś upakował nie wiadomo gdzie ( find, grep ))
Nie będę polemizować co lepsze alias, czy skrypt, bo to są dywagacje nt. wyższości świąt Wielkiej Nocy nad Bożego Narodzenia,
Zgadzam się. Oby tylko bezpiecznie:
- odpowiednie uprawnienia
- nie kolidujace miejsce
- nie kolidujaca nazwa
- ( i może nie jakaś komenda dająca szczególne uprawnienia )
Współczesne systemy często w PATH mają nawet ustawione ~/bin/ (jeśli nawet nie ma, to łatwo to ustawić). I to jest właściwe miejsce wg mnie na takie skrypty.
Też tak myślałem, instalując programy, dopóki nie stwierdziłem, że da się je nadpisać.
Aczkolwiek w katalogu domowym mamy także ~/.bashrc i inne, więc chyba nie robi to różnicy pod względem bezpieczeństwa, więc nie zamierzam nikomu zabraniać.
Dla uzytkownika i tak wygodniej, a inny użytkownik ( oprócz root ) od ręki nie uruchomi. ( a bynajmniej nie powinien )