#linux #bash Zmienna $USER zwraca nazwę użytkownika. W trybie root'a zwraca ona "root". Jak w trybie root'a zwrócić nazwę użytkownika z poziomu Terminala, gdy jestem normalnie zalogowany w systemie na tego użytkownika?
@look997 yyy nie rozumiem... User przechowuje obecnego użytkownika obojętnie na jakie konto zrobisz su. Żeby wyświetlić użytkowników daj who albo tylko "w"
@look997: kombinujesz. Jak jesteś rootem to jesteś rootem, a nie użytkownikiem z którego wpisałeś "su". Zwraca Ci prawidłowo, terminal masz w kontekście użytkownika root. Chcesz mieć swojego usera, to zaloguj się na swojego usera.
@look997 możesz też zrobić case na zmienna $USER. Ale dalej nie do końca ogarniam tego twojego opisu. Chodzi Ci żeby montować block device jednolinijkowcem obojętnie jaki użytkownik? Chodzi co o to że nie masz na użytkowniku grupy wheel i nie możesz zrobić sudo czy że z roota dajesz sudo?
Standardowo system Ubuntu/Mint montuje partycje do /media/username/nazwapartycji. Czy zamontowanie do /media/nazwapartycji będzie w jakichś sposób kolidowała z ustawieniami jakichkolwiek programów na Linuksa? Teraz tak zrobiłem żeby mieć problem z głowy ale
@look997: Tak da się zmienić default mount ale to wymaga nowego rula w udev. Ubuntu korzysta z udisk2 i generalnie ścieżka jest hardkodowana ale możesz wymusić przez udev. Nie chodzi o montowane partycje ale że wielu użytkowników może sobie swoje własne USB montować i nie korzystają ze swoich nawzajem... Ubuntu to nie jest serwerowy system tylko dekstopowy. Jakbyś wyjaśnił o co dokładnie Ci chodzi było by mi o jakieś 200 razy łatwiej. (Wysokopoziomo opisz do czego zmierzasz).
Chodzi Ci może o to, że jak uruchamiasz skrypt z sudo to zmienna user zwraca Ci zawsze root a ty chcesz wyciągnąć prawdziwą
Zmienna $USER zwraca nazwę użytkownika. W trybie root'a zwraca ona "root". Jak w trybie root'a zwrócić nazwę użytkownika z poziomu Terminala, gdy jestem normalnie zalogowany w systemie na tego użytkownika?
Ale pewnie chcesz użytkownika procesu rodzica, ew. dziadka: http://stackoverflow.com/questions/30928112/how-to-find-out-the-user-of-parent-shell-inside-a-child-shell
Jedynie może używam nieodpowiednich określeń.
Do tej pory używałem tego tak:
sudo echo "/dev/sda6 /media/nazwa/Media ext4 defaults,user 0 0" >>
#!/bin/bash
U="$USER"
if [ "$U" = root ] ; then echo 'Bez sudo, jełopie!' ; exit 1 ; done
sudo echo "/dev/sda6 /media/nazwa/Media ext4 defaults,$U 0 0" >> /etc/fstab
To może wycofuję się z pierwszego pytania.
I zadam inne.
Standardowo system Ubuntu/Mint montuje partycje do /media/username/nazwapartycji.
Czy zamontowanie do /media/nazwapartycji będzie w jakichś sposób kolidowała z ustawieniami jakichkolwiek programów na Linuksa? Teraz tak zrobiłem żeby mieć problem z głowy ale
To nic nie zwraca.
@look997: przetestuj:
sudo bash -c 'echo $SUDO_USER'
sudo env
I wklej wynik.
Ubuntu korzysta z udisk2 i generalnie ścieżka jest hardkodowana ale możesz wymusić przez udev.
Nie chodzi o montowane partycje ale że wielu użytkowników może sobie swoje własne USB montować i nie korzystają ze swoich nawzajem... Ubuntu to nie jest serwerowy system tylko dekstopowy.
Jakbyś wyjaśnił o co dokładnie Ci chodzi było by mi o jakieś 200 razy łatwiej. (Wysokopoziomo opisz do czego zmierzasz).
Chodzi Ci może o to, że jak uruchamiasz skrypt z sudo to zmienna user zwraca Ci zawsze root a ty chcesz wyciągnąć prawdziwą
sudo env