Я переключился на другого пользователя с su
команда, и теперь я хочу создать файл/папку, но "разрешение, отклоненное" ошибка, появляется.
safi_test4@safi-VirtualBox:/home/safi$ su safi_test4
Password:
safi_test4@safi-VirtualBox:/home/safi$ whoami
safi_test4
safi_test4@safi-VirtualBox:/home/safi$ mkdir try
mkdir: cannot create directory `try': Permission denied
safi_test4@safi-VirtualBox:/home/safi$
Вы переключились на нового пользователя, но Вы все еще находитесь под контролем пользователя safi
корневой каталог. safi_test4
не имеет разрешения создать файлы в safi
корневой каталог.
Выполните следующую команду для переключения на safi_test4
корневой каталог:
cd
su safi_test4
но необходимо работать su safi
.Ваша подсказка вполне убедительно предполагает, что Вы начали как того же пользователя, с которым Вы стали su
:
safi_test4@safi-VirtualBox:/home/safi$
Конкретно:
@
символ, текст, который это показывает перед тем символом, является именем текущего пользователя.:
, сопровождаемый некоторым текстом, сопровождаемым a $
, тот текст между :
и $
обычно представляет текущий каталог. Кроме того, каталог называют /home/safi
вероятно, корневой каталог пользователя назвал safi
.Это должно сказать, что Вы, кажется, использовали cd
команда для ввода корневого каталога safi
, но затем Вы использовали a su
команда, которая не изменила Ваши идентификационные данные на safi
.
Принятие обычных полномочий установлено, safi_test4
не сможет создать файлы в корневом каталоге safi
. Кроме того, маловероятно, что Вы намеревались использовать su
взять идентификационные данные, которые Вы уже имели.
Использовать su
для принятия идентификационных данных другого пользователя необходимо передать имя пользователя, которому Вы хотите стать как аргумент su
, не имя пользователя Вы в настоящее время:
su safi
Хотя Вы могли бы рассмотреть использование этой команды вместо этого, которая выполнит оболочку входа в систему как safi
:
su - safi
Когда Вы делаете это, Вы получаете среду как то, что Вы получили бы, если Вы вошли в систему как safi
другими средствами (как на виртуальной консоли или через SSH). Это обладает дополнительным незначительным преимуществом, для которого Вы не обладаете отдельно cd
кому: safi
корневой каталог.
Обратите внимание на это, когда Вы будете использовать su
необходимо ввести пароль целевого пользователя. Таким образом, для su safi
следовать за Вами должно войти safi
пароль, нет safi_test4
пароль (если они, оказывается, не то же).
Как mchid ответ указывает, что можно использовать:
cd
измениться на корневой каталог текущего пользователя safi_test4
. Однако в моей системе это не работает из-за функции, которая мешает:
$ cd
cd: missing operand
Usage:
cd ~ Change to home directory. Equivelent to 'cd /home/$USER'
cd - Change to previous directory before last 'cd' command
cd .. Move up one directory level
cd ../.. Move up two directory levels
cd ../sibling Move up one directory level and change to sibling directory
cd /path/to/ Change to specific directory '/path/to/' eg '/var/log'
cd $OLDPWD Change back to previous directory (similar to "cd -").
В этом случае в моей системе я должен всегда вводить:
cd ~
Обратите внимание что постоянный клиент cd
управляйте также поддерживает использования, описанные выше.
cd
экран справкиВот то, как я добираюсь cd
экран справки, но быть предупрежденным некоторые люди подверг критике его. Отредактируйте Ваш ~/.bashrc
и вставленный в эти строки:
cd() {
if [[ $# -eq 0 ]] ; then
cat << 'EOF'
cd: missing operand
Usage:
cd ~ Change to home directory. Equivelent to 'cd /home/$USER'
cd - Change to previous directory before last 'cd' command
cd .. Move up one directory level
cd ../.. Move up two directory levels
cd ../sibling Move up one directory level and change to sibling directory
cd /path/to/ Change to specific directory '/path/to/' eg '/var/log'
cd $OLDPWD Change back to previous directory (similar to "cd -").
EOF
return
fi
builtin cd "$@"
} # cd ()