Bawię się z Linuksem i zaczynam korzystać z terminala. Próbuję utworzyć foldery w katalogu głównym systemu plików, do którego mój zwykły użytkownik nie ma uprawnień.
Podczas biegu su root mkdir u01
; Zostałem poproszony o podanie poświadczeń, a następnie Terminal zwraca błąd „Nie można wykonać pliku binarnego”
Jeśli ucieknę su root
i wtedy mkdir u01
, polecenie działa dobrze.
Jakieś pomysły?
Jestem na Oracle Linux 6.5
locate mkdir
? Pytam, ponieważ w jednym przypadku możesz spróbować uruchomić plik binarny o nazwie mkdir, aw przypadku su możesz użyć wewnętrznego polecenia powłoki.Odpowiedzi:
Problemem jest twoje wezwanie do
su
.Prawidłowa składnia wykonywania polecenia jako inny użytkownik to:
Zanotuj cytaty wokół polecenia; ważne jest, aby pozostałe argumenty polecenia były poprawnie wykonywane.
źródło
Ogólnie rzecz biorąc, „normalny” użytkownik nie powinien mieć możliwości tworzenia plików lub folderów w katalogu głównym systemu plików. Dopuszczenie tego prowadzi do wszelkiego rodzaju problemów związanych z bezpieczeństwem.
Gdy uruchomisz „su root mkdir u01”, system poprosi Cię o hasło roota. To, co prawdopodobnie powinieneś uruchomić, to „sudo mkdir u01”, który zapyta cię o twoje normalne hasło użytkownika. Zauważ, że zakłada to, że sudo jest poprawnie skonfigurowane, aby to umożliwić.
źródło
Jeśli masz
sudo
prawidłowo skonfigurowany, jest to właściwy sposób na utworzenie tego katalogu:Jeśli sudo nie działa z jakiegoś powodu (lub nawet nie jest zainstalowane - mało prawdopodobne, ale możliwe), możesz użyć
su
z parametrem polecenia-c
, lubię to:(zauważ, że komenda musi być cytowana, aby mogła być poprawnie przekazana do
su
).Ważna różnica między używaniem
sudo
vssu
: po wyświetleniu monitu o hasłosudo
potrzebuje hasła do konta użytkownika, alesu
potrzebuje hasła do konta roota. W wielu dystrybucjach Linuksa (w szczególności rodzina Ubuntu / Debian) hasło do konta roota nie może być nigdy przypisane, więcsu
może się nie powieść (chyba że wcześniej przypiszesz hasło do konta root).źródło