Dlaczego nie mogę cd do katalogu?

14

Używam Ubuntu 10.04.2 LTS. Dlaczego nie mogę cdwejść do /var/wwwkatalogu?

david@ubuntu:/var$ pwd
/var

david@ubuntu:/var$ ls -l
drwxrwxr-- 13 root root  4096 2011-02-26 21:53 www

david@ubuntu:/var$ cd www
-bash: cd: www: Permission denied

david@ubuntu:/var$ sudo cd www
sudo: cd: command not found
davidjhp
źródło
2
cdjest wbudowaną powłoką, więc sudonie można jej używać.
Wstrzymano do odwołania.
I nawet gdyby można go było wykorzystać, byłoby to bezcelowe. Zasadniczo nie ma sposobu, aby inny proces zmienił katalog roboczy, więc cokolwiek cdplik wykonywalny mógłby zrobić, nie mógł zmienić cwd procesu powłoki.
David Schwartz,

Odpowiedzi:

13

Potrzebujesz uprawnień do wykonania cd do katalogu.

sudo chmod o+x /var/www
Cakemox
źródło
3
Trochę wyjaśnienia: w powyższym przykładzie zarówno root (użytkownik), jak i root (grupa) mają ustawiony bit wykonania. Tak więc członkowie grupy root mogą cd na www. Użytkownik David nie może cd, ponieważ nie jest uwzględniony w członkach grupy głównej. Możesz to sprawdzić, przeglądając zawartość / etc / group
adamo
1

Jest jakiś powód, dla którego „inni” nie mogą wchodzić do katalogu, prawda? Sugerowałbym więc, aby uzyskać dostęp do roota, aby wejść do tego katalogu, zrobić kilka rzeczy i zostawić go, upuszczając powłokę sudo.

sudo -i 
cd /var/www
# do your thing
cd -
exit
nieznany użytkownik
źródło
1

Jeszcze trochę informacji, rozsądnie byłoby stworzyć użytkownika i grupę internetową dla swojego systemu i nie mieć usług działających jako root. Następnie możesz również dodać użytkowników do tej grupy, jeśli to konieczne i nie przyznawać uprawnień roota.

Mikrofon
źródło