Не удалось дать разрешение через sudoers скрипту, обращающемуся к / dev / tty13

Это может помочь использовать утилиту locate ➜ ~ locate debian.cnf /etc/texmf/texmf.d/00debian.cnf

0
задан 11 July 2017 в 09:58

6 ответов

Вам нужно использовать sudo для правильного правила sudoers. Либо:

Использовать текущее правило sudoers и запустить sudo /home/abc/ak.sh Использовать другое указанное вами правило, но с абсолютным путем для cat следующим образом: abc ALL=NOPASSWD: /bin/cat /dev/tty13 и запустить sudo cat /dev/tty13 в скрипте.
1
ответ дан 22 May 2018 в 20:40
  • 1
    Очень благодарен вам. – Aquarius_Girl 11 July 2017 в 10:10
  • 2
    Я думаю, что позволить sudo cat вообще работать с sans-паролем - это проблема безопасности. Лучше просто освободить скрипт, не так ли? – Lew Rockwell Fan 11 July 2017 в 10:15
  • 3
    @LewRockwellFan, поскольку sudo проверяет аргументы, я думаю, что в любом случае все в порядке, в любом случае. – muru 11 July 2017 в 10:16
  • 4
    @muru Комментарии не содержат формат, поэтому я отредактирую свои рассуждения в ответ, который я излишне разместил. Смотри ниже. – Lew Rockwell Fan 11 July 2017 в 10:37

Вам нужно использовать sudo для правильного правила sudoers. Либо:

Использовать текущее правило sudoers и запустить sudo /home/abc/ak.sh Использовать другое указанное вами правило, но с абсолютным путем для cat следующим образом: abc ALL=NOPASSWD: /bin/cat /dev/tty13 и запустить sudo cat /dev/tty13 в скрипте.
1
ответ дан 18 July 2018 в 10:27

Вам нужно использовать sudo для правильного правила sudoers. Либо:

Использовать текущее правило sudoers и запустить sudo /home/abc/ak.sh Использовать другое указанное вами правило, но с абсолютным путем для cat следующим образом: abc ALL=NOPASSWD: /bin/cat /dev/tty13 и запустить sudo cat /dev/tty13 в скрипте.
1
ответ дан 24 July 2018 в 19:34

Предполагая, что ваш метод освобождения паролей работает так же, как изменение sudoers, вам нужно вызвать SCRIPT с sudo, а не командой IN script. Или измените sudoers. Другими словами:

sudo /home/abc/ak.sh

- это то, что вы освободили от необходимости вводить пароль, а не cat. Вы все еще должны использовать sudo, но если вы это сделаете правильно, вам не потребуется вводить пропуск.

@muru

# # # # # # # # # # # # # # # # # # # # #

Почему мне кажется лучше, чтобы пароль был освобожден от скрипта СОДЕРЖАНИЕ команды cat, а не самой кошки:

$ ls / | grep secrets
secrets_root_does_not_want_to_share_.txt
$ # hmmm, that looks interesting . . .
$ cat /secrets_root_does_not_want_to_share_.txt
cat: /secrets_root_does_not_want_to_share_.txt: Permission denied
$ # Curses! My evil plans are foiled because:
$ stat /secrets_root_does_not_want_to_share_.txt | grep 'Access: ('
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
$ # But wait! I'm pass exempted! So:
$ sudo cat /secrets_root_does_not_want_to_share_.txt
Oh, my. Sensitive stuff is exposed to ordinary users.
[d5 ] Исключение пароля sudo cat не так опасно, как, например, пароль, освобождающий sudo echo, но мне кажется, что это довольно плохая практика.

# # # # # # # # # # # # # # # # # # # # #

Добавлено позже, чтобы рассказать о скептицизме Муру относительно эквивалентности sudo cat, когда пароль не истек от предыдущего использования sudo до sudo cat, когда кошка был освобожден паролем:

Я добавил правило к началу раздела освобождения моего пропуска в / etc / sudoers, например:

me THIS_LOCAL_SYS=(ALL)NOPASSWD:/bin/cat, . . . [many other rules, separated by commas]

Затем в новом терминале: [!d9 ]

$ # Demonstrating that password is not un-expired from previous use of sudo:
$ sudo ls /root
[sudo] password for j: 
$ stat /secrets_root_does_not_want_to_share_.txt|grep 'Access: ('
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
$ cat /secrets_root_does_not_want_to_share_.txt 
cat: /secrets_root_does_not_want_to_share_.txt: Permission denied
$ # And rightly so, but with pass exempted sudo:
$ sudo cat /secrets_root_does_not_want_to_share_.txt 
Oh, my. Sensitive stuff is exposed to ordinary users.
$ 

Итак, да, они эквивалентны, как и должно быть; да, я понимаю, как работает sudo - я только редактировал этот файл несколько сотен раз; и да, пароль, освобождающий plain / bin / cat, вместо скрипта, содержащего cat, является необоснованной практикой с точки зрения безопасности. Опять же, не катастрофическая глупость, что пароль, освобождающий sudo echo или sudo vi, был бы, но все же плохая идея.

-1
ответ дан 22 May 2018 в 20:40
  • 1
    Каковы правила ваших судей? – muru 11 July 2017 в 10:46
  • 2
    Я не переделывал судей. Я имитировал его, используя sudo раньше в терминале. Я не вижу, как это будет иначе. Вы говорите, что это не сработает так же? Кстати, я должен был бы grepped этот stat, чтобы удалить ненужные строки. Собираюсь сделать это сейчас. – Lew Rockwell Fan 11 July 2017 в 10:52
  • 3
    пожимают плечами. Если вы на самом деле не протестировали то, что вы написали, мне все равно, что вы предполагаете, может случиться. – muru 11 July 2017 в 10:55
  • 4
    Кажется, вы действительно не знаете, как работают правила sudoers. См. Например, unix.stackexchange.com/q/178069/70524 . – muru 11 July 2017 в 11:00
  • 5
    @muru. Вы на самом деле утверждаете, что результат sudo cat с sudo-освобождением будет отличаться от sudo cat, когда предыдущий ввод пароля не истек? Шутки в сторону? Хотите сделать реп? Я предлагаю сделать ставку на всех моих представителей. Даже шансы. Занна может держать нас честными. – Lew Rockwell Fan 11 July 2017 в 11:04

Предполагая, что ваш метод освобождения паролей работает так же, как изменение sudoers, вам нужно вызвать SCRIPT с sudo, а не командой IN script. Или измените sudoers. Другими словами:

sudo /home/abc/ak.sh

- это то, что вы освободили от необходимости вводить пароль, а не cat. Вы все еще должны использовать sudo, но если вы это сделаете правильно, вам не потребуется вводить пропуск.

@muru

# # # # # # # # # # # # # # # # # # # # #

Почему мне кажется лучше, чтобы пароль был освобожден от скрипта СОДЕРЖАНИЕ команды cat, а не самой кошки:

$ ls / | grep secrets secrets_root_does_not_want_to_share_.txt $ # hmmm, that looks interesting . . . $ cat /secrets_root_does_not_want_to_share_.txt cat: /secrets_root_does_not_want_to_share_.txt: Permission denied $ # Curses! My evil plans are foiled because: $ stat /secrets_root_does_not_want_to_share_.txt | grep 'Access: (' Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) $ # But wait! I'm pass exempted! So: $ sudo cat /secrets_root_does_not_want_to_share_.txt Oh, my. Sensitive stuff is exposed to ordinary users.

Исключение пароля sudo cat не так опасно, как, например, пароль, освобождающий sudo echo, но мне кажется, что это довольно плохая практика.

# # # # # # # # # # # # # # # # # # # # #

Добавлено позже, чтобы рассказать о скептицизме Муру относительно эквивалентности sudo cat, когда пароль не истек от предыдущего использования sudo до sudo cat, когда кошка был освобожден паролем:

Я добавил правило к началу раздела освобождения моего пропуска в / etc / sudoers, например:

me THIS_LOCAL_SYS=(ALL)NOPASSWD:/bin/cat, . . . [many other rules, separated by commas]

Затем в новом терминале:

$ # Demonstrating that password is not un-expired from previous use of sudo: $ sudo ls /root [sudo] password for j: $ stat /secrets_root_does_not_want_to_share_.txt|grep 'Access: (' Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) $ cat /secrets_root_does_not_want_to_share_.txt cat: /secrets_root_does_not_want_to_share_.txt: Permission denied $ # And rightly so, but with pass exempted sudo: $ sudo cat /secrets_root_does_not_want_to_share_.txt Oh, my. Sensitive stuff is exposed to ordinary users. $

Итак, да, они эквивалентны, как и должно быть; да, я понимаю, как работает sudo - я только редактировал этот файл несколько сотен раз; и да, пароль, освобождающий plain / bin / cat, вместо скрипта, содержащего cat, является необоснованной практикой с точки зрения безопасности. Опять же, не катастрофическая глупость, что пароль, освобождающий sudo echo или sudo vi, был бы, но все же плохая идея.

-1
ответ дан 18 July 2018 в 10:27

Предполагая, что ваш метод освобождения паролей работает так же, как изменение sudoers, вам нужно вызвать SCRIPT с sudo, а не командой IN script. Или измените sudoers. Другими словами:

sudo /home/abc/ak.sh

- это то, что вы освободили от необходимости вводить пароль, а не cat. Вы все еще должны использовать sudo, но если вы это сделаете правильно, вам не потребуется вводить пропуск.

@muru

# # # # # # # # # # # # # # # # # # # # #

Почему мне кажется лучше, чтобы пароль был освобожден от скрипта СОДЕРЖАНИЕ команды cat, а не самой кошки:

$ ls / | grep secrets secrets_root_does_not_want_to_share_.txt $ # hmmm, that looks interesting . . . $ cat /secrets_root_does_not_want_to_share_.txt cat: /secrets_root_does_not_want_to_share_.txt: Permission denied $ # Curses! My evil plans are foiled because: $ stat /secrets_root_does_not_want_to_share_.txt | grep 'Access: (' Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) $ # But wait! I'm pass exempted! So: $ sudo cat /secrets_root_does_not_want_to_share_.txt Oh, my. Sensitive stuff is exposed to ordinary users.

Исключение пароля sudo cat не так опасно, как, например, пароль, освобождающий sudo echo, но мне кажется, что это довольно плохая практика.

# # # # # # # # # # # # # # # # # # # # #

Добавлено позже, чтобы рассказать о скептицизме Муру относительно эквивалентности sudo cat, когда пароль не истек от предыдущего использования sudo до sudo cat, когда кошка был освобожден паролем:

Я добавил правило к началу раздела освобождения моего пропуска в / etc / sudoers, например:

me THIS_LOCAL_SYS=(ALL)NOPASSWD:/bin/cat, . . . [many other rules, separated by commas]

Затем в новом терминале:

$ # Demonstrating that password is not un-expired from previous use of sudo: $ sudo ls /root [sudo] password for j: $ stat /secrets_root_does_not_want_to_share_.txt|grep 'Access: (' Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) $ cat /secrets_root_does_not_want_to_share_.txt cat: /secrets_root_does_not_want_to_share_.txt: Permission denied $ # And rightly so, but with pass exempted sudo: $ sudo cat /secrets_root_does_not_want_to_share_.txt Oh, my. Sensitive stuff is exposed to ordinary users. $

Итак, да, они эквивалентны, как и должно быть; да, я понимаю, как работает sudo - я только редактировал этот файл несколько сотен раз; и да, пароль, освобождающий plain / bin / cat, вместо скрипта, содержащего cat, является необоснованной практикой с точки зрения безопасности. Опять же, не катастрофическая глупость, что пароль, освобождающий sudo echo или sudo vi, был бы, но все же плохая идея.

-1
ответ дан 24 July 2018 в 19:34
  • 1
    Каковы правила ваших судей? – muru 11 July 2017 в 10:46
  • 2
    Я не переделывал судей. Я имитировал его, используя sudo раньше в терминале. Я не вижу, как это будет иначе. Вы говорите, что это не сработает так же? Кстати, я должен был бы grepped этот stat, чтобы удалить ненужные строки. Собираюсь сделать это сейчас. – Lew Rockwell Fan 11 July 2017 в 10:52
  • 3
    пожимают плечами. Если вы на самом деле не протестировали то, что вы написали, мне все равно, что вы предполагаете, может случиться. – muru 11 July 2017 в 10:55
  • 4
    Кажется, вы действительно не знаете, как работают правила sudoers. См. Например, unix.stackexchange.com/q/178069/70524 . – muru 11 July 2017 в 11:00
  • 5
    @muru. Вы на самом деле утверждаете, что результат sudo cat с sudo-освобождением будет отличаться от sudo cat, когда предыдущий ввод пароля не истек? Шутки в сторону? Хотите сделать реп? Я предлагаю сделать ставку на всех моих представителей. Даже шансы. Занна может держать нас честными. – Lew Rockwell Fan 11 July 2017 в 11:04

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

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