Форум русскоязычного сообщества Ubuntu


Автор Тема: права на /dev/console  (Прочитано 1566 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2680
    • Просмотр профиля
права на /dev/console
« : 28 Августа 2021, 15:40:42 »
Здравствуйте!

Почему в Ubuntu-20.04 праа на /dev/console - 620 ?
Если я сделаю 660, произойдёт нечто страшное? Или ничего?
Пётр.

shamanhuev

  • Гость
Re: права на /dev/console
« Ответ #1 : 28 Августа 2021, 15:48:35 »
Если я сделаю 660
Делай уже сразу 666.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2680
    • Просмотр профиля
Re: права на /dev/console
« Ответ #2 : 28 Августа 2021, 15:52:16 »
shamanhuev, мне хватит и 660, я в группе tty. А 1-й вопрос?
Пётр.

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5513
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Re: права на /dev/console
« Ответ #3 : 28 Августа 2021, 17:23:12 »
Peter_I, cделайте. Нам потом расскажете.

PS. Ubuntu 20.04 Server:
ll /dev/console
crw------- 1 root root 5, 1 Jul 24 21:45 /dev/console
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2680
    • Просмотр профиля
Re: права на /dev/console
« Ответ #4 : 28 Августа 2021, 19:01:57 »
С /dev/console возникли трудности. У меня xubuntu-20.04, /dev/console принадлежит root:tty и имеет права 620.
Я вставил в /etc/rc.local команду
/usr/bin/chmod 0660 /dev/consoleно после загрузки системы у /dev/console остаются права 620, хотя rc.local исполняется.
Другая странность - если эти права установить вручную, всё равно от пользователя не исполняется из программы
ioctl(fd, KDMKTONE, na)
где na установлена как надо, пишет, нет прав, а от root исполняется. Я в группе tty, но это не первичаня группа.



Пётр.

Оффлайн F12

  • Старожил
  • *
  • Сообщений: 3147
    • Просмотр профиля
Re: права на /dev/console
« Ответ #5 : 28 Августа 2021, 19:35:55 »
Peter_I, загрузись с LiveUSB примонтируй диск/раздел на котором стоит твоя xubuntu 20.04 и загляни в /dev, думаю, будешь удивлен ...
... ну или поймешь почему "после загрузки системы у /dev/console остаются права 620" ::)

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2680
    • Просмотр профиля
Re: права на /dev/console
« Ответ #6 : 28 Августа 2021, 21:49:44 »
F12, я не стал этого делать, я просто стал давать команду chmod с задержкой и права сделались 660.
А всё же почему из программы от пользователя и при этом не срабатывает ioctl(fd, KDMKTONE, na)?
Система пишет, что операция не позволена. 666 ещё не пробовал.
Пётр.

Оффлайн F12

  • Старожил
  • *
  • Сообщений: 3147
    • Просмотр профиля
Re: права на /dev/console
« Ответ #7 : 28 Августа 2021, 22:01:42 »
/dev/console - Символьное устройство (inode/chardevice)

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5513
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Re: права на /dev/console
« Ответ #8 : 28 Августа 2021, 22:14:19 »
Peter_I, объясните, что вы хотите сделать? (Подсказываю - это НЕ смена прав на dev/console)
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2680
    • Просмотр профиля
Re: права на /dev/console
« Ответ #9 : 28 Августа 2021, 22:42:21 »
F12, и что? На другом компьютере в другой Linux я в /etc/rc.local командой chmod менял права на /dev/hidrawx
и это выполнялось сразу. Потом стал устанавливать их в правиле udev.


Пользователь добавил сообщение 28 Августа 2021, 22:45:01:
ALiEN175, я бы хотел, чтобы программа с вызовом ioctl(fd, KDMKTONE, na) выполнялась от пользователя,
а сейчас она работает только от root, хотя я в группе tty и права на /dev/console 660.
« Последнее редактирование: 28 Августа 2021, 22:45:01 от Peter_I »
Пётр.

Оффлайн F12

  • Старожил
  • *
  • Сообщений: 3147
    • Просмотр профиля
Re: права на /dev/console
« Ответ #10 : 28 Августа 2021, 23:18:20 »
и что?
- погугли на тему символьных устройств и зачем в каталоге /dev нужны файлы им соответствующие

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2680
    • Просмотр профиля
Re: права на /dev/console
« Ответ #11 : 28 Августа 2021, 23:21:40 »
F12, это слишком общая тема. Читать можно из тех и из других, из /dev/hidrawx, например.
Пётр.

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5513
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
Re: права на /dev/console
« Ответ #12 : 28 Августа 2021, 23:38:42 »
чтобы программа с вызовом ioctl
Ближе, но неверно. Делаем следующую итерацию. Подсказка: хочу сделать то и то.
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн valrust

  • Активист
  • *
  • Сообщений: 363
    • Просмотр профиля
Re: права на /dev/console
« Ответ #13 : 28 Августа 2021, 23:48:13 »
С помощью chmod изменяются права на файл и эти права влияют только на запись (write) в это устройство или чтение (read) из него данных.

Системный вызов ioctl не делает записи или чтения из устройства, он передает команду драйверу устройства и для него права установленные на файл устройства не имеют никакого значения.

Что бы процесс мог выполнить системный вызов ioctl у него должны быть специальные привилегии. Все доступные привилегии описаны в man 7 capabilities.

Когда запускаем процесс от пользователя root, то у этого процесса есть все привилегии. Некоторым программа можно установить определенные привилегии с помощью команды setcap (man 8 setcap).

Для общего понимания привилегий процессов в Linux можно поискать статью "В двух словах о привилегиях Linux (capabilities)".

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2680
    • Просмотр профиля
Re: права на /dev/console
« Ответ #14 : 29 Августа 2021, 09:42:11 »
valrust, благодарю за пояснения. Этот /dev/console сначала ещё надо открыть в программе вызовом open(),
достаточно на чтение, поэтому мне и потребовалось изменить права на 660.
О существовании capabilities я знаю, но я не помню, приходилось ли мне в Ubuntu ими интересоваться.
В Astra Linux я читал их описание, в т.ч. недавно, но, кажется, реально применять не потребовалось.
Да, если ioctl требуются права, их надо дать, попробую почитать этот man.


Пользователь добавил сообщение 29 Августа 2021, 10:41:12:
А почему нет "man cap_set/get_proc"?
apt-cache search его тоже не находит.
« Последнее редактирование: 29 Августа 2021, 10:41:12 от Peter_I »
Пётр.

 

Страница сгенерирована за 0.216 секунд. Запросов: 25.