Как создать файл, который может прочитать только sudo?

У меня возникла та же проблема, что и у OP. Я выполнил

git clone https://github.com/zoltanp/xrandr-invert-colors.git

. Затем я установил одну зависимость, отмеченную в README, построил и установил ее, и она отлично работает. Задача решена.

Я посмотрел исходный код. Основная часть работы выполняется с помощью вызова библиотеки xcb для установки гамма-изменения. Код, по сути, перебирает количество подключенных экранов, создает гамма-кривую, инвертирует ее и устанавливает на этом экране. Очень просто, и, насколько мне известно, никакая другая программа для X не делает этого.

7
13.07.2018, 04:21
3 ответа

Обратите внимание, что sudoне является синонимом root/superuser. На самом деле, команда sudoпозволяет выполнять команды практически любому пользователю, как указано в политике безопасности :

.
$ sudo whoami
root
$ sudo -u bob whoami
bob

Я предполагаю, что вы хотели создать файл, который может прочитать только rootпользователь:

# Create the file
touch file

# Change permissions of the file
# '600' means only owner has read and write permissions
chmod 600 file

# Change owner of the file
sudo chown root:root file

Когда вам нужно отредактировать содержимое файла:

# Replace 'nano' with your prefered editor
sudo nano file

Посмотрите, как только root может прочитать файл:

$ cat file
cat: file: Permission denied
$ sudo cat file
foo bar baz
27
27.01.2020, 20:13

Разобрался:

echo 'hello world' > test
sudo chown root test
sudo chmod 600 test
sudo cat test

В другом терминале, если вы делаете это без sudo:

> cat test
cat: test: Permission denied
3
27.01.2020, 20:13

С тройником

$ echo "some text" | sudo tee tmpfile
some text
$ sudo chmod 700 tmpfile 
$ cat tmpfile
cat: tmpfile: Permission non accordée
$ sudo cat tmpfile
some text

Для добавления:

$ echo "text appened" | sudo tee -a tmpfile
$ sudo cat tmpfile
somme text
text appened
$ sudo rm tmpfile
1
27.01.2020, 20:13

Теги

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