Разрешение отрицало создавать каталог после переключающегося пользователя

Я переключился на другого пользователя с 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$

screenshot of the terminal showing the problem

0
задан 21 October 2019 в 00:11

3 ответа

Вы переключились на нового пользователя, но Вы все еще находитесь под контролем пользователя safi корневой каталог. safi_test4 не имеет разрешения создать файлы в safi корневой каталог.

Выполните следующую команду для переключения на safi_test4 корневой каталог:

cd
5
ответ дан 22 December 2019 в 00:16

Вы работаете su safi_test4 но необходимо работать su safi.

Ваша подсказка вполне убедительно предполагает, что Вы начали как того же пользователя, с которым Вы стали su:

safi_test4@safi-VirtualBox:/home/safi$

Конкретно:

  • Хотя это может быть настроено иначе, обычно когда приглашение оболочки запускается с текста, сопровождаемого a @ символ, текст, который это показывает перед тем символом, является именем текущего пользователя.
  • Когда подсказка заканчивается в a :, сопровождаемый некоторым текстом, сопровождаемым 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пароль (если они, оказывается, не то же).

3
ответ дан 22 December 2019 в 00:16

Как 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 ()
0
ответ дан 22 December 2019 в 00:16

Другие вопросы по тегам:

Похожие вопросы: