Bash: отказано в разрешении на запись в файл

9014
Sam

Я следовал этому руководству по «Как создавать файлы Linux Proc в программе на C с использованием LKM».

Я успешно создал свой модуль и загрузил его. Теперь я хочу отразить мой файл proc, чтобы убедиться, что вызывается метод, который должен быть вызван.

Я пытался:

$ echo "hello" > /proc/procEntry123 # But it says permission is denied! $ sudo echo "hello" > /proc/procEntry123  # Same error message. 

Как я могу повысить привилегии, чтобы повторить к этому файлу? Я единственный пользователь и администратор в этой системе.

6
«но я sudo», нет, на самом деле вы `su` супер пользователь. Это означает что-то вроде «Возьми это действие от имени суперпользователя», поскольку вторая половина - это «делай», как в «делай это, делай то» TheZ 11 лет назад 0

1 ответ на вопрос

13
grawity

Но это говорит, что разрешение отказано!

Это, вероятно, говорит так, потому что вы устанавливаете ограничительные права при звонке create_proc_entry(). (0644 переводится как «u = rw, go = r», что только дает права на запись владельцу, который по умолчанию имеет значение root.)

Я поставил "sudo" перед ним - то же самое сообщение.

Перенаправления, такие как >или |выполняются запущенной оболочкой перед ее вызовом sudo.

Вы должны либо использовать sudo sh -c "echo blah > /proc/blah", либо запустить корневую оболочку с помощью sudo -s.

Я единственный пользователь - это моя личная машина!

Это не имеет значения в Linux. Права доступа к файлам будут применяться независимо от того, кто использует компьютер.

Если вы не хотите этого, либо войти в систему корня, или использовать, pam_capчтобы дать себе cap_dac_overrideвозможность - но любой метод будет вызывать проблемы рано или поздно.

Нет, не предлагайте неопытным войти в систему как root. Это рецепт катастрофы! Darth Android 11 лет назад 2
@DarthAndroid: Если они могут написать модуль ядра, у них должно быть достаточно здравого смысла, чтобы этого не делать. grawity 11 лет назад 0
Но проблема не в том, что вы предлагаете это опытному пользователю, а в том, что все, их брат и их собака, которые посещают этот пост, увидят, что вы предложили просто проявить осторожность и войти в систему как root. Уже существует 23 мнения по этому вопросу, поэтому, по сути, сейчас 23 человека могут подумать, что это нормально. :) Просто мысль ... С учетом сказанного, многие люди будут входить в систему как root независимо от того, что мы им скажем, так что я думаю, это не имеет большого значения ... jmort253 11 лет назад 2
Привет, ребята - я chmod 777'd файл proc, и это было решено. Это упражнение было чисто экспериментальным, поэтому не имеет значения, что файл для всех - rw. Спасибо за вашу помощь! Sam 11 лет назад 0

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